PHP Socket服务器作为服务运行


PHP Socket server run as service

我已经创建了PHP套接字服务器,并通过命令提示符在localhost(127.0.0.1)中启动了它。即

C: ' php server.php xampp ' php '

在本地运行良好。但我的问题是,我必须在域服务器上运行这个server.php文件。我已经将server.php文件复制到web主机目录(http://example.com/server.php),并将IP地址更改为PHP文件中的域IP地址。现在的问题是,当我在浏览器中运行文件,如

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

套接字服务器正常启动,并在5分钟内被浏览器自动停止(错误500)。如何通过命令提示符运行server.php文件?帮助需要。

谢谢。

不能通过HTTP调用来启动服务器。假设您使用的是Apache,会发生以下情况:一个Apache工作线程接收您的请求并启动底层PHP脚本。然后,根据您的php.ini设置,脚本将在一定时间(max_execution_time)后终止。

为了使它以您期望的方式工作,PHP脚本将不得不分叉自己启动一个新的会话(通过posix_setsid())。这将要求工作线程以root身份运行,尽管这是一个绝对的安全问题。

如果您可以访问服务器(通过SSH),则可以像在本地启动服务器一样启动服务器,除非—如果您没有root权限—PHP脚本无法侦听特权端口(ports <= 1024)

你要做的是启动php脚本作为一个服务器,当你使用你的web浏览器访问它,服务器被称为http服务器(apache或其他)。

http服务器然后调用php模块启动你的脚本。由于请求有最大执行时间,您不能让它作为服务器运行! 如果您在服务器上有足够的权限,您可以创建一个php脚本来启动服务器,使用服务器端程序执行。