在没有命令行的情况下设置websocket



如何在不使用命令行的情况下完成这样的教程?

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

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

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

假设您的共享托管提供商支持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()调用。祝你好运

请尝试在浏览器上运行Server.php。大多数时候,php-cli脚本在浏览器上也能很好地工作(直到使用一些仅限命令行的功能,如argv/argc等)。在浏览器的另一个选项卡上,在另一个浏览器中,您可以运行给定教程中常见的类似url的屏幕截图。

重要的一点是,请检查套接字和其他所需的扩展是否已在共享服务器上启用。

直到现在我才知道CRON的@reboot指令,所以@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是否正在运行,如果没有,则启动它。

相关内容

  • 没有找到相关文章

最新更新