Предотвращение смерти встроенного сервера 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

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

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

2 ответа

Решение

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

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

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

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

Вы можете использовать некоторое контролирующее программное обеспечение, чтобы гарантировать, что процесс всегда запущен. Проверьте супервизор ( 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

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

Это старый вопрос, но у меня была такая же проблема с новым сервером Symfony 4 в Windows. Вот мое решение: https://gist.github.com/banasmat/ef87cd236e248b6287337b6ba30df5c0

Другие вопросы по тегам