2015-01-22 4 views
0

У меня есть это приложение PHP, запуск которого действительно сложный. Я вдохновлен тем, как работает nodejs (приложение работает вживую и обслуживает клиентов без нагрузки и разгрузки, например PHP).как запустить php-скрипт как daemon

Для каждого запроса apache загружает скрипт, создает экземпляры классов и объектов (из-за чего многие из них запускаются с интенсивным использованием ресурсов) и выполняет его, затем выгружает (что представляет собой отходы) и повторяет тот же процесс для следующий запрос.

В Nodejs скрипт загружается в память на весь сеанс, а код выполняется от начала до конца для каждого запроса, загрузка сценария для каждого запроса и его разгрузка в конце запроса не производится.

Можно ли выполнить то же самое с помощью linux daemon. Я буду развертывать его на AWS Elasticbeanstalk.

Пример PHP код

<?php 
echo "Hello " . $_SERVER["REMOTE_ADDR"]; 
//followed by a series of instantiation of several classes and objects at startup 
//would like to have them instantiated only once, keep in memory and then executed 
//based on the URL onwards from there 
//just like how nodejs works 
?> 
+1

Если запуск сложно, я бы хранить состояние в сеансе, базы данных, текстовый файл, и т.д .. Тем не менее, кажется, все возможно: https://github.com/shaneharter/PHP-Daemon – jeroen

+0

hi Jeroen, это не состояние, это на самом деле создание классов и объектов и их взаимосвязь, поэтому стартап является вычислительно тяжелым, вместо этого я хотел бы, чтобы инстанцирование выполнялось только один раз, и запрос на основе url, выполненный оттуда, интересно, является ли пример nodejs и как он работает, дает идею –

+0

Это намного проще в nodejs, поскольку это в основном apache и ph p в одном; он запускает собственный веб-сервер, обрабатывает запросы и т. д. Заметьте, что с php и apache php не получает HTTP-запросы, apache делает. – jeroen

ответ

-2

Может быть, эта страница может помочь вам: PHP Command line usage:

php -f somefile.php 

тогда, возможно, вам нужно создать Баш скрипт и добавить к демону. как объяснено in this page

С уважением

Phoenixzero

+1

Выполняется из командной строки; это не то же самое, что работать как демон. – Keelan

+0

@CamilStaps. Ты прав. Необходимо расширить мой ответ. Просто вам нужно создать хэш-скрипт и добавить его к демону. http://stackoverflow.com/questions/19233529/run-bash-script-as-daemon – PhoenixzeroX

+0

Привет @PhoenixzeroX будет ли он поддерживать скрипт, загруженный в память, т.е. все мои объекты будут выполняться один раз или будут создаваться объекты в памяти каждый раз для каждого запроса –

Смежные вопросы