За основу взят пример 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
Все настройки iptables, которые вы указали с помощью этих команд сохранятся только до перезагрузки.
- В Ubuntu выполните:
sudo /sbin/iptables-save
- А в RedHat или CentOS:
sudo /sbin/service iptables save
Прилагаемый в комплекте файл init/wsserver.service
необходимо скопировать в каталог /etc/systemd/system
cd /srv/ws
cp init/wsserver.service /etc/systemd/system/
И изменить в нем:
- WorkingDirectory на свою (использована /srv/ws)
- указать исполняемый php и абсолютные пути до скрипта в параметрах ExecStart, ExecStop, ExecReload (использован /usr/bin/php) - рекомендуется указать абсолютный путь
# путь установки php
which php
# или
locate -b '\php'
Перезапустить службу
systemctl enable --now wsserver
systemctl daemon-reload
Дальнейшее управление службой производится следующими командами:
systemctl status wsserver
systemctl stop wsserver
systemctl start wsserver
Посмотреть логи
journalctl -u wsserver
Ссылки по теме демонизации скриптов PHP