我正在尝试从git hub实现以下chat-html5: https://github.com/ivanph/Chat-HTML5
我已将所有内容上传到我的ISP,但我发现ISP出于安全原因阻止了exec。
我打电话的文件是:
<?php
/**
* Main Script of phpWebSockets
*
* Run this file in a shell or windows cmd to start the socket server.
* Sorry for calling this daemon but the goal is that this server run
* as daemon in near future.
*
* @author Moritz Wutz <moritzwutz@gmail.com>
* @version 0.1
* @package phpWebSockets
*/
ob_implicit_flush(true);
require 'socket.class.php';
require 'socketWebSocket.class.php';
require 'socketWebSocketTrigger.class.php';
$ip = exec ("ifconfig|grep 'inet:'|grep -v '127.0.0.1' |cut -d: -f2 |awk '{ print $1}'");
$WebSocket = new socketWebSocket($ip,8000);
?>
有没有其他方法可以做到这一点?所有Isp都阻止这个吗?
我该怎么办?
嗨,大家好 谢谢你的回复。 我得到了脚本开发人员的回复。 我已将$ ip更改为我们网站的IP地址。我现在收到以下错误:
--2013-08-13 12:07:01-- http://www.wilsea.com/websockets2/startDaemon.php
Resolving www.wilsea.com... 188.64.188.21
Connecting to www.wilsea.com|188.64.188.21|:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2013-08-13 12:07:12 ERROR 500: Internal Server Error.
开发人员说这意味着端口(8000)正在使用中,所以我尝试了80 - 443 - 8080,但得到了同样的错误。
我已经通过电子邮件发送了ISP,询问是否阻止了网页套接字或是否需要打开端口。
其他人是否有此问题或对此问题的任何见解?
答案 0 :(得分:2)
有没有其他方法可以做到这一点?
还有system
和shell_exec
,但出于同样的原因,我认为这是禁用的。
如同评论中指出的那样,您也可以只提供服务器的静态IP,而不是让脚本确定它。但是,套接字也有可能被禁用,所以不要把你的希望太高。
所有Isp都阻止这个吗?
大多数托管服务提供商都这样做。显然托管服务不希望您在shell上运行可能重新配置机器的任意命令。
我该怎么办?
获得付费托管,可让您exec
。想到VPS或专用服务器。
答案 1 :(得分:0)
我可以尝试找到一种方法来检测PHP中的良好侦听地址,以避免这种怪异。 (解决方法可能是$ip = '0';
)您的下一个问题是:Fatal error: Call to undefined function socket_create() why is my ISP so mean?
。 exec()
在共享主机上有充分理由被阻止,您将无法使用create_socket()
创建套接字。
在其共享服务器上没有托管商会想要这样的东西。你必须得到自己的系统,但是你不希望这个代码在它上面运行。这是因为您不希望在任何地方运行此代码,除非您尝试改进它。但是,你将在改进基于PHP的沙子上的解决方案。 那会很难过。
如果您真的想要使用它,请获得便宜的虚拟服务器。我不推荐它。看起来有人正在尝试使用PHP来完成一项不是设计的任务。如果你在没有理解所涉及的问题的情况下已经走到这一步,我建议你远离它。如果必须,在localhost上试用,这样你就不会伤害别人。
答案 2 :(得分:0)
问题是ISP阻止了所有端口。他们现在为我打开了港口。
干杯
SteveW