Laravel веб-сокеты вызывают python ошибку сокета - PullRequest
0 голосов
/ 09 мая 2020

Я установил проект в ubuntu 18.04 с использованием amazon ec2. Я могу вручную протестировать сервер websocket, запущенный командой websockets:serve из моего каталога проекта. Теперь, когда я хочу запустить веб-сокеты, в docs сказано, что мне нужно установить 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

У меня нет supervisor.conf в моем каталоге /etc, файл supervisor.conf находится в /etc/supervisor/supervisor.conf так же, как и другие встречались.

Нужно ли мне создавать файл supervisor.sock? или супервайзер создаст его автоматически? Кроме того, мое второе средство, если я не могу решить эту проблему, - это запуск веб-сокетов с помощью cronjob. Это правильно?

В любом случае, если вы, ребята, получили представление об этом, пожалуйста, помогите. Спасибо ..

Ответы [ 3 ]

1 голос
/ 14 мая 2020

Просто удалите "cd" из команды

[program:websockets]
command=/usr/bin/php /var/www/html/Inventory/artisan websockets:serve
numprocs=1
autostart=true
autorestart=true
user=laravel-echo

Вы можете найти некоторые ссылки здесь

1 голос
/ 14 мая 2020
[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

Никогда не запускайте как root

Абсолютные пути и, конечно, следуйте руководству по настройке супервизора

Проверяйте журналы ошибок

Выполните сканирование netcat / портов на настроенный порт, чтобы не пропустить правила прокси / брандмауэра

ref: https://github.com/beyondcode/laravel-websockets/issues/304#issuecomment -590809667

0 голосов
/ 09 мая 2020

Мое временное решение, я просто использовал 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
...