PHP Socket сервер запускается как сервис - PullRequest
4 голосов
/ 13 декабря 2011

Я создал сервер сокетов PHP и запустил его на локальном хосте (127.0.0.1) через командную строку. * 1001 то есть *

C: \ xampp \ php \ php server.php

это нормально работает в localhost.bо моя проблема в том, что мне нужно запустить этот файл server.php на сервере домена. Я скопировал файл server.php в каталог веб-хоста (http://example.com/server.php) и изменил IP-адрес на IP-адрес домена в файле php. Теперь проблема заключается в том, что я запускаю файл в браузере, как

http://www.example.com/server.php

сервер сокетов запускается нормально и через 5 минут автоматически останавливается браузером (ошибка 500). Как я могу запустить этот файл server.php через командную строку. нужна помощь.

спасибо.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Вы не можете запустить сервер, вызвав его через HTTP. Предполагается, что вы используете Apache, вот что происходит: рабочий поток Apache принимает ваш запрос и запускает базовый сценарий PHP. Затем, в зависимости от настроек php.ini, сценарий завершается через определенное время (max_execution_time).

Для того, чтобы это работало так, как вы ожидали, PHP-скрипт должен сам форкнуть и , чтобы начать новый сеанс (через posix_setsid()). Это потребует, чтобы рабочие потоки запускались от имени пользователя root, хотя это абсолютная проблема безопасности .

Если у вас есть доступ к серверу (через SSH), его можно запустить так же, как локально, за исключением того, что - если у вас нет привилегий root - скрипт PHP не может прослушивать привилегированные порты (порты < = 1024).

0 голосов
/ 13 декабря 2011

Что вы хотите сделать, это запустить скрипт php в качестве сервера, и при доступе к нему через веб-браузер сервер называется http-сервером (apache или любым другим).

Затем http-сервер вызывает модуль php, который запускает ваш скрипт. Поскольку запрос имеет максимальное время выполнения, вы не можете заставить его работать как сервер!

Что вы можете сделать, если у вас достаточно прав на сервере, - это создать php-скрипт, который запустит сервер, используя выполнение серверной программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...