我对套接字编程很陌生,但是用 php 做了大量的编码。我已经测试了一些套接字服务器示例代码,并且在 localhost 上运行良好。我使用 CLI 来运行服务器。但我担心的是如何在托管服务器上运行套接字服务器 .php 文件?托管服务提供商通常会授予 CLI 访问权限以运行服务器吗?如何确保我的服务器始终在运行?如果托管服务器重新启动,我的服务器会发生什么情况?万一我的服务器崩溃(无论什么原因),我必须手动运行它吗?有人可以帮忙吗?
2 回答
如果您谈论的是托管服务器,我希望您谈论的是共享托管。在这种情况下,即使您设法运行服务等,也很难保持稳定。我建议至少使用 VPS。这样您就可以在后台运行它,在重新启动时自动启动它,还可以安装软件来检查进程并在失败时重新启动它。
例如:在共享主机上无法测试重启启动是否有效。
我不知道您的提供商是否给您 ssh 访问权限。一些提供商会这样做,但这是托管服务器或根服务器。
然后您可以通过 CLI 运行您的脚本。
当您可以通过 CLI 运行服务器并且拥有足够的权限时,您可以将脚本插入到运行级别。还有一种叫做“ shebang ”的东西。有了这个,你可以让你的脚本直接使用 php 解释器并在没有 php 命令之前运行脚本。
php test.php or /usr/bin/php testScript.php
您可以使用 test.php 直接运行脚本或仅将脚本命名为testScript。
当您将脚本放入/usr/local/bin(对于 debian)时,您可以每次通过命令(如php )运行它命令一样每次通过命令运行它。
编辑:我忘记了一些东西。例如,对于此解决方案,您必须将 /etc/init.d/skeleton 复制到/etc/init.d/runPHPSocketServer并更改顶部的脚本值。然后您可以将其插入运行级别。
#: testScript or runPHPSocketServer start
当脚本位于可执行目录下时,您可以将其插入系统运行级别。
#: update-rc.d runPHPSocketServer defaults
所以你看到有一些解决方案,但对于大多数解决方案,你需要 ssh 访问。