Предотвращение смерти встроенного сервера Symfony2

я использую bin/console server:run (или же app/console для структуры каталогов Sf2) для разработки приложений с использованием Symfony2. К сожалению, на нескольких системах он в конечном итоге умирает (обычно из-за ошибки).

Я пробовал несколько версий PHP и операционных систем (5.5, 5.6 в Ubuntu 14.10 и 15.04, OS X 10.9 и 10.10).

Я сообщил об ошибках и продолжаю работать, но меня раздражает, что мне приходится время от времени перезагружать сервер вручную.

Я пытался сделать что-то вроде этого в качестве моей «цели сборки»:

until bin/console server:run -v; do \
sleep 1; \
done

Но, к сожалению, это работает только иногда (мне еще предстоит определить причину, по которой не удается перезапустить сервер).

Можете ли вы порекомендовать другой способ поддерживать этот сервер предпочтительно без изменения глобальных сервисов / демонов?

4

Решение

Вы можете использовать некоторое контролирующее программное обеспечение, чтобы гарантировать, что процесс всегда запущен. Проверьте супервизор (http://supervisord.org/)

Вам нужно будет указать похожую задачу для запуска:

[program:server] command=bin/console server:run -v
directory=/var/www/symfony-dir
autostart=true
autorestart=true

Больше информации о флагах и примерах на http://supervisord.org/configuration.html#program-x-section-settings

И, как вы сказали, встроенный сервер не должен использоваться в производстве 🙂

1

Другие решения

Мне удалось заставить это работать с помощью forever.js.

В этом не было ничего фантастического, просто

forever start server.sh # sh contains bin/console server:run -v

Этот вопрос оказался очень полезным, так как я мог бы также включить сборочные часы и пару других вещей.

1

По вопросам рекламы [email protected]