使用PHP CLI SAPI開發(簡單)服務器軟件是否可行(並且可行)?在PHP中是否有一些可用的(真正的)多線程方法,以便服務器能夠同時處理多個請求?或者你會推薦一個像這樣的項目的另一種腳本語言(Python或類似的東西)?使用PHP CLI的基於PHP的服務器SAPI
1
A
回答
1
是的,可以在PHP中開發TCP或UDP服務器。看一看在PHP中集的socket函數:PHP:Sockets - Manual
雖然PHP有沒有多線程功能,你可以隨着socket_select()
要回答這個問題,使用非阻塞IO(seesocket_set_nonblock()
)創建簡單的並行性「是它可行的「,它需要更多關於項目需求的信息。爲「是」的原因可能是:
- 您需要將服務器整合到現有的PHP類,模型框架
- 您計劃局間使用服務器PHP數據結構。 (也許使用
serialize()
產生,unserialize()
)
你可能會發現你的其他原因,當然。
您應該注意的另一件事是,當在Web服務器環境(例如apache SAPI)中,您已經有一個並行的TCP服務器 - Web服務器。你只需要實現幾個請求之間的通信。您可以使用PHP的IPC功能,數據庫或至少一個用於該通信的文件。
0
使用PHP CLI SAPI開發(簡單)服務器軟件是否可行(並且可行)?
有一個已經內置了:http://php.net/manual/en/features.commandline.webserver.php
是否有PHP(實時)多線程的一些可用的方式,使服務器能夠同時處理多個請求嗎?
你通常不會做,在PHP,而是將它交給一個sepparated服務(你也可以用PHP編寫),像http://php.net/manual/en/book.gearman.php
或者你會建議其他腳本語言對於像這樣的項目(Phyton或類似的東西)?
這一個取決於您的需求,不能沒有更多的信息回答。 Python的,Java或Golang可能是更好的選擇
注意:PHP是一個多線程的語言,但它不公開多線程功能的腳本的運行時間。
相關問題
- 1. 是否有用於支持thttpd Web服務器的PHP 5的SAPI模塊?
- 2. 基於PHP的web服務調用
- 3. PHP安裝失敗在Ubuntu 14(使:*** [SAPI/CLI/PHP]錯誤1)5.6.20
- 4. 如何從CLI獲取使用PHP的服務器IP地址?
- 5. PHP CLI UDP服務器套接字
- 6. PHP服務器 - CLI已停止工作
- 7. PHP AltoRouter只服務於基址的URL
- 8. 使用PHP檢測FastCGI SAPI
- 9. 用於PHP RESTful服務器的mod_rewrite
- 10. SAPI:服務器端聽寫
- 11. 基於Windows CLI的哪個版本的PHP使用?
- 12. 基於PHP服務器端請求/響應的AngularJS過濾器
- 13. 服務器上使用PHP
- 14. 使用PHP GET服務器
- 15. 基於服務器響應的Ember CLI路徑
- 16. 用於CSS的共享服務器和本地服務器的絕對路徑使用PHP的PHP
- 17. PHP:從我的PHP服務器調用遠程服務器?
- 18. 混淆使用RNCryptor適用於iOS張貼到基於此鏈接基於PHP的服務器
- 19. nginx中多個基於PHP的服務器模塊 - 404錯誤
- 20. 多線程基於socket的服務器 - 可能在PHP?
- 21. 遷移基於PHP/MySQL的網站,雲服務器
- 22. PHP服務器爲基於Android回合的多人遊戲?
- 23. 基於PHP服務器端的聊天技術
- 24. 將基於php的服務器連接到黑莓JDE
- 25. 使用PHP的關機服務器
- 26. 使用PHP做同樣的服務器
- 27. PHP ping使用cURL的Minecraft服務器
- 28. 使用PHP的服務器管理
- 29. 在基於Linux的服務器上使用PHP創建動態子域
- 30. 服務器與CLI的不同版本的PHP
你似乎在尋找一個解決方案尋找一個問題... – 2012-04-17 18:29:45
nope,我只是問沒有很大的努力是否可能在PHP中。如果沒有,我會切換到phyton或者什麼 – Stefan 2012-04-17 18:30:59
通過CLI從Web服務器運行PHP不會讓CGI或mod_php獲益。 – 2012-04-17 18:32:01