16

如何在不使用命令行的情况下按照这样的教程进行操作?

http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/

我需要能够使用 websockets 但有一个共享服务器并且无法访问命令行。

我不能简单地从浏览器运行脚本,如果在我关闭浏览器/断开互联网连接时脚本会停止运行。

4

3 回答 3

18

假设您的共享主机提供商支持 crontab 和 cron 作业(大多数都支持),请将以下作业添加到 crontab:

@reboot nohup php /path/to/server.php 2>&1 >/dev/null &

此外,您需要立即启动它,因此只需在浏览器中创建以下 PHP 文件并访问它一次:

<?php shell_exec('nohup php /path/to/server.php 2>&1 > /dev/null &');?>

这应该够了吧。希望您的共享主机提供商允许进行execve()调用。祝你好运!

于 2013-02-22T20:29:17.573 回答
1

那么尝试在浏览器上运行 Server.php。大多数时候 php-cli-script 在浏览器上也可以正常工作(直到使用一些仅命令行功能,如 argv/argc 等)。在另一个浏览器的其他浏览器选项卡上,您可以运行通常的 URL,如给定教程中的屏幕截图。

一件重要的事情,请检查您的共享服务器上是否启用了套接字和其他必需的扩展。

于 2013-02-15T09:19:33.167 回答
1

@reboot直到刚才我才知道 CRON 的指令,所以@Octav O 解决方案可能要好得多。但是在测试时,我发现以下代码(在Saran 的 websocket 教程中找到)非常有用。

将其保存在与...websocket_launch.sh相同的目录中server.php

PID=`ps -aef | grep "server.php" | grep -v grep | awk '{print $2}'`
if [ -z $PID ]
then
    #echo "Launching now"
    nohup php server.php > error_log &
else
    #echo "Running as PID $PID"
fi

...然后每分钟使用 CRON 运行 shell 脚本。该脚本检查 server.php 是否正在运行,如果没有,则启动它。

于 2014-05-22T07:43:16.213 回答