持久PHP套接字服务器


Persistent PHP socket server

我计划开发一个用PHP编写的服务器,可以为套接字请求提供服务。我使用一个免费的主机(Heliohost)进行测试,它有cPanel。到目前为止,我唯一能想到的让PHP脚本一直运行的方法是编写一个cron作业,运行一个bash脚本来检查ps,看看PHP是否已经运行,如果没有,启动它。

有更好的方法吗?也许是在HTTP请求上启动PHP线程并在请求得到服务后继续在Apache中运行的一种方法?

您几乎肯定不会成功地从Apache运行持久进程。它的设计目的是防止出现这种情况(尽管如果您可以访问fork(2)系统调用,这可能是可行的)。但我不建议你尝试。

更有意义的是,如果你使用一个主机提供商,让你能够编写自己的crontab(5)规范直接运行PHP解释器。然后,您可以在crontab(5)中添加一行,如:

@reboot /path/to/php /path/to/script.php

您的脚本可能应该执行通常的守护进程任务,以便cron(8)不会等待您的进程退出。