2013-02-21 125 views
0

我想開始一個項目,使用websockets進行自定義聊天。當然,我已經有了一個簡單的PHP + MySQL服務器,並且我想從此開始。所以我發現這個:https://github.com/Flynsarmy/PHPWebSocket-Chat如何在沒有shell訪問權限的情況下啓動PHP腳本?

在php之上運行一個websocket服務器。在我的本地(Mac)機器上,它已經在運行。但我不知道如何在服務器上啓動這個腳本。因爲我沒有任何Shell訪問?

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

感謝您的幫助!

Felix

+2

我不確定共享主機甚至會允許您運行套接字。我建議檢查1blu支持。 – 2013-02-21 09:01:52

回答

1

您將需要shell訪問權限。與您的託管服務聯繫並詢問他們是否提供外殼訪問(儘管看起來不像他們允許,或者他們可能會提前說)。如果沒有,你必須找到一項新的服務。

+0

大多數託管公司都會提供「專用服務器」,您可以在其中控制整個服務器的虛擬接口。我認爲這就是Felix應該瞄準的目標:) – 2013-02-21 09:34:29

+0

即使有shell訪問權限,他的解決方案也無法正常工作。託管提供商已經在運行HTTP服務器;你不能從PHP內部實現你自己的HTTP服務器,並禁用託管服務提供商的服務器... – parasietje 2013-02-21 09:35:48

+0

@parasietje這不是他想做的,他想使用websockets。 – 2013-02-21 09:37:41

0

WebSocket是一種協議,它使用自定義協議將初始HTTP兼容連接轉換爲全雙工套接字。

有兩種方法可以做到這一點。選項1是使用像Apache這樣的標準HTTP服務器來接受初始HTTP連接。然後,您可以使用此HTTP服務器中的Websocket支持從業務代碼升級到Websocket。這就是Tomcat或JBoss等服務器所做的。

選項2是打開自己的服務器套接字,本質上是從PHP內部創建自己的HTTP服務器。您自己實現了一個非常有限的HTTP子集,並嘗試將每個連接升級到WebSocket。這就是PHPWebsocket庫的功能。

選項1與PHP不兼容。每個網絡服務器都使用PHP來生成HTML內容。目前沒有Web服務器支持將當前HTTP連接升級到Websocket。

選項2與GoDaddy或1Blu等託管提供商不兼容。它沒有任何意義:你試圖實現你自己的網絡服務器,但是已經有一臺網絡服務器在這些機器上運行了!長話短說:只要在Apache中沒有本地的WebSocket支持,控制權可以轉發到PHP,你就會被卡住。請參閱websockets apache server compatibility以瞭解解決問題的不同方法。

相關問題