如何在没有shell访问的情况下启动PHP脚本?

时间:2013-02-21 09:00:42

标签: php sockets shell

我想启动一个使用websockets进行自定义聊天的项目。当然,我已经拥有一个简单的PHP + MySQL服务器,我想从此开始。所以我发现了这个:https://github.com/Flynsarmy/PHPWebSocket-Chat

在php上运行websocket服务器。在我的本地(Mac)机器上,它已经运行了。但我不知道如何在服务器上启动此脚本。因为我没有任何Shell访问权限?

这是我使用的服务器: http://www.1blu.de/webhosting/homepagepakete/power/

感谢您的帮助!

菲利克斯

2 个答案:

答案 0 :(得分:1)

您将需要shell访问权限。与您的托管服务联系并询问他们是否提供shell访问权限(虽然它看起来不像是允许的,或者他们可能会提前说出来)。如果没有,你将不得不寻找新的服务。

答案 1 :(得分:0)

WebSocket是一种使用自定义协议将初始HTTP兼容连接转换为全双工套接字的协议。

有两种方法可以做到这一点。选项1是使用像Apache这样的标准HTTP服务器来接受初始HTTP连接。然后,您可以使用此HTTP服务器中的Websocket支持从业务代码升级到Websocket。这是在像Tomcat或JBoss这样的服务器中完成的。

选项2是打开自己的服务器套接字,实质​​上是在PHP中创建自己的HTTP服务器。您自己实现了一个非常有限的HTTP子集,并尝试升级到WebSocket的每个连接。这就是PHPWebsocket库的功能。

选项1与PHP不兼容。每个Web服务器都使用PHP生成HTML内容。目前没有网络服务器支持将当前HTTP连接升级到Websocket。

选项2与GoDaddy或1Blu等托管服务提供商不兼容。它没有任何意义:你正在尝试实现自己的网络服务器,但已经在这些机器上运行了一个网络服务器!

长话短说:只要Apache中没有本地WebSocket支持,可以将控制权转发给PHP,就会陷入困境。有关攻击问题的不同方法,请参阅websockets apache server compatibility