防止 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
我正在使用 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