2013-08-12 109 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