持久的PHP套接字服务器

时间:2011-12-18 06:32:26

标签: php apache sockets

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

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

1 个答案:

答案 0 :(得分:2)

您几乎肯定无法成功运行Apache的持久进程。它旨在阻止该场景(尽管如果你可以进入fork(2)系统调用,它可能是可行的)。我不建议尝试它。

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

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

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