防止 Symfony2 内置服务器死机

Keeping Symfony2 built-in server from dying

我正在使用 bin/console server:run(或 app/console 用于 Sf2 目录结构)来开发使用 Symfony2 的应用程序。不幸的是,在多个系统上它最终会死掉(通常是因为段错误)。

我已经尝试了多个 PHP 版本和操作系统(Ubuntu 14.10 和 15.04 上的 5.5、5.6,OS X 10.9 和 10.10)。

我报告了错误并继续工作,但我很生气我必须时不时地手动重启服务器。

我试图做这样的事情作为我的 'build target':

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

但不幸的是它有时会起作用(我还没有确定它无法重新启动服务器的原因)。

你能推荐另一种方法来更好地保持此服务器运行而无需修改全局 services/deamons 吗?

您可以使用一些监控软件来确保进程始终运行。查看 supervisord (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

正如您所说,内置服务器不应在生产中使用:)

我设法通过使用 forever.js 来实现它。

没什么特别的,只是

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

This question 证明非常有帮助,因为我还可以包括 assetic watch 和其他一些东西。

这是一个老问题,但我在 Windows 上的新 Symfony 4 服务器上遇到了同样的问题。 这是我的解决方案:https://gist.github.com/banasmat/ef87cd236e248b6287337b6ba30df5c0