PHP执行官被ISP阻止

时间:2013-08-12 10:22:59

标签: php exec

我正在尝试从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,询问是否阻止了网页套接字或是否需要打开端口。

其他人是否有此问题或对此问题的任何见解?

3 个答案:

答案 0 :(得分:2)

  

有没有其他方法可以做到这一点?

还有systemshell_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