【发布时间】:2015-10-02 04:34:57
【问题描述】:
那么 php artisan serve 到底在做什么呢?我目前在 apache 上启动并运行了一个站点,我正在尝试建立一个 websocket 框架以进行实时聊天。 websocket 是一个在后台运行并监听事件的 php 守护进程,参见包here。
所以我使用的是命令
php artisan serve brainsocket:start --port=8080
启动服务器并且一切正常,但这仅在我打开终端并且我已经阅读了 3-4 篇关于 artisan serve 不用于生产的帖子时才有效。那么如何在没有 php artisan serve 的情况下在 8080 端口上运行 laravel 包启动功能,并且在我关闭终端后它会持续存在呢?
【问题讨论】:
-
> /dev/null 2>&1 &可能会帮助您入门。 -
并在命令前加上
nohup,以便在您断开连接后停止运行。您还应该查看诸如 upstart 或 supervisord 之类的服务监视器以在它崩溃时重新启动它。另外,不要忘记在部署脚本中添加一些内容,以便在代码更改时重新启动这些服务。 -
是什么阻止您在端口 8080 上使用 apache?
-
@Brett,很多。 WebSockets 不是 Web 服务器。完全不同的范式。
-
是的,supervisord 也是我的建议。快速浏览一下。它易于安装和使用,如果发生任何事情,它还会负责重新启动服务(websocket)。
标签: php laravel websocket daemon laravel-artisan