2013-08-12 78 views
0

我想从git的枢纽实现以下聊天HTML5: https://github.com/ivanph/Chat-HTML5PHP的exec被阻止ISP

我已经上传的一切我的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 <[email protected]> 
* @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,询问websockets是否被阻止或者是否需要端口打开。

其他人有这个问题或对这个问题的任何见解?

+1

一般情况下,是的。您应该使用其他类型的托管(例如VPS)。 –

+2

ISP!=主机提供商。同样出于安全原因,他们无法为您提供这样的功能,您将需要一个VPS或专用服务器。 – HamZa

+2

你可以提供'$ ip'作为静态数据 – Matthijs

回答

2

Is there an alternative way to do this ?

也有systemshell_exec,但我认为这出于同样的原因被禁用。

正如在评论中指出的那样,您也可以只提供您的服务器的静态IP,而不是让脚本确定它。但是,套接字的机会也会被禁用,所以不要把你的希望过高。

Do all Isp's block this ?

大多数主机提供商都这样做。很显然,托管服务不希望您在shell上运行可能会重新配置计算机的任意命令。

What can I do?

获得付费托管,让您exec。想到VPS或专用服务器。

0

我可以尝试找到一种方法来检测PHP中的良好监听地址以避免这种怪物。 (解决方法可能是$ip = '0';)您的下一个问题将是:Fatal error: Call to undefined function socket_create() why is my ISP so mean?exec()由于充分的原因在共享主机上被阻止,您将不被允许使用create_socket()创建套接字。

没有任何主机会在他们的共享服务器上想要这样的东西。你必须得到你自己的系统,但是你不希望这个代码运行在它上面。这是因为你不想在任何地方运行这个代码,除非你试图改进它。但是,接下来你会改进一个基于PHP构建的解决方案。而那会很伤心

如果你真的想使用它,可以获得一个便宜的虚拟服务器。我不推荐它。看起来有人正试图使用​​PHP来完成它不打算做的任务。如果您在不了解相关问题的情况下得到了这么多,我建议您远离它。如果您必须在本地主机上尝试,那么您不会伤害其他人。

0

问题是ISP阻止所有端口。他们现在已经为我开了口岸。

干杯

SteveW