2012-11-27 101 views
1

我正在寫一個java http服務器,我已經完成了FileServer類來處理像index.hitml這樣的普通文件的請求(Get,Head,Post等)
我也想讓我的服務器執行PHP腳本並將輸出返回給客戶端。 「http://localhost/phpinfo.php」httpServer執行PHP腳本

我該怎麼做?我需要一些資源。 請指點我的任何資源或apis來閱讀:)
謝謝

+0

您將要閱讀使用PHP作爲命令行應用程序([unix](http://us3.php.net/manual/en/install.unix.commandline.php),[ windows](http://us3.php.net/manual/en/install.windows.commandline.php))。 – joequincy

+0

如果你正在編寫一個可以運行PHP的java web服務器,那麼它已經完成了。它被稱爲[Quercus](http://www.caucho.com/resin-3.1/doc/quercus.xtp)。 –

回答

0

最不痛苦的寫辦法做到這一點也是最痛苦的運行:CGI。這隻涉及設置一些環境變量並運行PHP解釋器。

一個更好的方法是實現一個FCGI客戶端,它啓動並連接到PHP的許多現有FCGI包裝器之一。

0

最簡單的方法是從java調用一個PHP解釋器(通過Runtime.getRuntime().exec()。您可以使用PHP解釋器生成的輸出並將其發送到瀏覽器,但是當這樣調用時,PHP會運行在所謂的「命令行界面」模式下,其行爲與標準CGI模式相比有所不同(特別是在讀取腳本參數,http請求等時)。

更好的方法可能是使用fastCGI。在這個頁面上如何產生PHP爲快速cgi進程:http://wiki.nginx.org/PHPFcgiExample(linux)

在你的服務器,你需要實現快速cgi協議,這可以在這裏找到:http://www.fastcgi.com/devkit/doc/fcgi-spec.html

0

後PHP版本5.4,PHP(CLI)已建立的web-server命令-S

--server addr:port 
-S addr:port # Start embedded Webserver on the given local address and port 

例如:聽8080個端口的所有傳入TRAFIC

php -S 0.0.0.0:8080 <target_file|dictionary>