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