gotzmann / comet

Modern PHP framework for building blazing fast REST APIs and microservices
MIT License
661 stars 52 forks source link

проблема с Workerman #1

Closed ph1ex0n closed 4 years ago

ph1ex0n commented 4 years ago

что бы это могло значить? права -rw-rw-r-- Worker.php

Fatal error: Uncaught Exception: Permission denied in public_html/comet.api/vendor/workerman/workerman/Worker.php:2235 Stack trace:

0 public_html/comet.api/vendor/workerman/workerman/Worker.php(1524): Workerman\Worker->listen()

1 public_html/comet.api/vendor/workerman/workerman/Worker.php(1371): Workerman\Worker::forkOneWorkerForLinux()

2 public_html/comet.api/vendor/workerman/workerman/Worker.php(1345): Workerman\Worker::forkWorkersForLinux()

3 public_html/comet.api/vendor/workerman/workerman/Worker.php(1675): Workerman\Worker::forkWorkers()

4 public_html/comet.api/vendor/workerman/workerman/Worker.php(1624): Workerman\Worker::monitorWorkersForLinux()

5 public_html/comet.api/vendor/workerman/workerman/Worker.php(548): Workerman\Worker::monitorWorkers()

6 public_html/comet.api/vendor/got in public_html/comet.api/vendor/workerman/workerman/Worker.php on line 2235

worker[Comet v0.3.2:14356] exit with status 65280 worker[Comet v0.3.2:14357] exit with status 65280 worker[Comet v0.3.2:14359] exit with status 65280 Workerman[app.php] has been stopped

gotzmann commented 4 years ago

Подозреваю, причиной может быть лог, который пишет Workerman в DEBUG режиме. Проверьте права на запись ./vendor/gotzmann/comet/vendor/workerman/workerman.log Также хотелось бы понять, проявляется ли проблема, если стартовать сервер с флагом -d $ php app.php start -d

gotzmann commented 4 years ago

Хотя заглянул в код, исключение возникает при попытке открыть сокет для прослушки: // Create an Internet or Unix domain server socket. Видимо, указан некорректный хост или порт для Comet - по умолчанию это http://localhost:80, который уже может быть занят каким-либо сервисом.

gotzmann commented 4 years ago

Еще один момент - в Unix порты ниже 1024 требуют особых прав, то есть приложение надо запускать через sudo или от имени пользователя root, если требуется 80 порт.

ph1ex0n commented 4 years ago

Проверьте права на запись ./vendor/gotzmann/comet/vendor/workerman/workerman.log

No such file or directory

$ php app.php start -d

практически без изменений

ph1ex0n commented 4 years ago

Хотя заглянул в код, исключение возникает при попытке открыть сокет для прослушки: // Create an Internet or Unix domain server socket. Видимо, указан некорректный хост или порт для Comet - по умолчанию это http://localhost:80, который уже может быть занят каким-либо сервисом.

я запускаю на впс где поменять порт, подскажите ps увидел

ph1ex0n commented 4 years ago

Еще один момент - в Unix порты ниже 1024 требуют особых прав, то есть приложение надо запускать через sudo или от имени пользователя root, если требуется 80 порт.

запустился под рутом

gotzmann commented 4 years ago

ОК, в примерах изменил порт на 8080, видимо, буду менять и порт по умолчанию для самого фреймворка. Сам я запускал примеры либо под Windows, либо в контейнерах Docker (там по умолчанию все под root-ом) и не знал о проблемах.