За основу взят пример SimpleAsemblyWebsoket, основанный на Workerman.
Дополнительные материалы:
- Разработать инструмент для поднятия websocket-сервера и работы с ним
- Обмен сообщениями между frontend и backend
- PHP 7.2+
- Модули PHP
- posix
- socket
- iptables -I INPUT 10 -p tcp --dport 8089 -j ACCEPT
- iptables -I INPUT 10 -p tcp --dport 8099 -j ACCEPT
Прилагаемый в комплекте файл init/wsserver.service
необходимо скопировать в каталог /etc/systemd/system
cd /srv/ws
cp init/wsserver.service /etc/systemd/system/
systemctl enable --now wsserver
И изменить в нем
- WorkingDirectory на свою (использована /srv/ws)
- указать исполняемый php в параметре ExecStart (использован /opt/php81/bin/php) - рекомендуется указать абсолютный путь
Перезапустить службу
systemctl daemon-reload
Дальнейшее управление службой производится следующими командами:
systemctl status wsserver
systemctl stop wsserver
systemctl start wsserver
Посмотреть логи
journalctl -u wsserver
Ссылки по теме демонизации скриптов PHP