我使用amazonec2在ubuntu 18.04中安装了一个项目。我可以从我的项目目录中手动测试通过websockets:serve
命令运行的websocket服务器。现在我想运行websocket,文档说我需要安装supervisor
,我就是这么做的。我在/etc/supervisor/conf.d/websockets.conf
中创建了一个配置文件,它有这个配置
[program:websockets]
command=usr/bin/php cd /var/www/html/Inventory/artisan websockets:serve
numprocs=1
autostart=true
autorestart=true
user=laravel-echo
当我做supervisorctl update
时,我得到的是
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 228
当我也做sudo supervisorctl status
时,我得到的是
unix:///var/run/supervisor.sock no such file
我的/etc
目录中没有supervisor.conf
,supervisor.conf
文件和其他文件一样位于/etc/supervisor/supervisor.conf
中。
我需要创建一个supervisor.sock
文件吗?或者主管会自动创建它?此外,如果我不能解决这个问题,我的第二个办法是通过cronjob运行websocket。这样做对吗?
不管怎样,如果你们对此有想法,请帮忙。谢谢
只需从命令中删除"cd">
[program:websockets]
command=/usr/bin/php /var/www/html/Inventory/artisan websockets:serve
numprocs=1
autostart=true
autorestart=true
user=laravel-echo
你可以在这里找到一些参考文献
[program:laravel-websocket]
command=/path/to/your/php /var/www/vhosts/path/to/yout/artisan websockets:serve
autostart=true
autorestart=true
user=your_user
stderr_logfile=/var/log/supervisor-laravel.websocket.err.log
stdout_logfile=/var/log/supervisor-laravel.websocket.out.log
从不作为根运行
绝对路径,当然也遵循supervisor配置指南
检查错误日志
在配置的端口上进行网络猫/端口扫描,以确保您不会错过代理/防火墙规则
参考:https://github.com/beyondcode/laravel-websockets/issues/304#issuecomment-590809667
我的临时解决方案,我只是使用cron每年运行一次websockets:serve
。
51 16 9 5 * cd /var/www/html/Inventory/ && php artisan websockets:serve >> /dev/null 2>&1 >> /var/www/html/Inventory/websockets.log