Веб-сокеты Laravel вызывают ошибку сокета Python

Я установил проект в 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. Это правильно?

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


person draw134    schedule 09.05.2020    source источник
comment
проверьте это docs.beyondco.de/laravel-websockets/1.0/basic-usage/   -  person flakerimi    schedule 14.05.2020


Ответы (3)


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

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

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

person Dilson Rainov    schedule 14.05.2020
comment
Комментарии не подлежат расширенному обсуждению; этот разговор был перемещен в чат. - person Samuel Liew♦; 15.05.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 / port на настроенном порту, чтобы убедиться, что вы не пропустите правила прокси / брандмауэра.

ссылка: https://github.com/beyondcode/laravel-websockets/issues/304#issuecomment-590809667

person flakerimi    schedule 14.05.2020
comment
мой каталог не подходит для веб-сокетов: serve? я указал на это в правильном каталоге - person draw134; 14.05.2020
comment
вы можете перезапустить сервер? - person flakerimi; 14.05.2020
comment
я могу запускать веб-сокеты. это просто проблема руководителя. - person draw134; 14.05.2020
comment
github.com/Supervisor/supervisor/issues/ - person flakerimi; 14.05.2020
comment
если вы перезапустите, он запустит супервизор и запустит веб-сокеты от супервизора, затем вы проверите журналы - person flakerimi; 15.05.2020
comment
рад, что вы это исправили :) - person flakerimi; 15.05.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
person draw134    schedule 09.05.2020