如何正確的實現(xiàn)Tomcat支持PHP
我們在這篇文章中為大家詳細(xì)的講解了有關(guān)Tomcat支持PHP的相關(guān)方法,希望對大家有所幫助。在負(fù)責(zé)一個采用JSP動態(tài)網(wǎng)頁技術(shù)的網(wǎng)站時,剛好手頭有PHP寫的一部分功能,所以就很直接地想到讓Tomcat支持PHP。
Tomcat也是Apache出的,難道就只支持JSP嗎?到底能否在Tomcat上用PHP呢?上網(wǎng)搜索了一番,很快有了第一個問題的答案:Tomcat可以支持CGI,如Perl。
但繼續(xù)搜索,卻遲遲無法找到讓Tomcat支持PHP的方法,一般都是采取裝Apache和Tomcat共存的方法來搭建所謂的支持PHP+JSP的Web平臺。
當(dāng)然,其實PHP本身也支持CGI方式的使用,所以就自己動手試了一試(在Windows操作系統(tǒng)上):先按照附文的做法讓Tomcat支持CGI,然后再改web.xml,在servlet-name為cgi的一段配置中加上:
- < init-param>
- < param-name>executable< /param-name>
- < param-value>php< /param-value>
- < /init-param>
并把PHP安裝路徑加入Path,這樣Tomcat就能運行到PHP.exe了。重啟Tomcat后,在WEB-INF目錄下新建一個cgi目錄,把php文件放在這里,然后訪問時用虛擬映射出來的cgi-bin目錄來訪問這些PHP文件。
但是如果對PHP文件不加任何改動的話,可能會發(fā)現(xiàn)什么輸出都沒有。需要在PHP文件頭部加一行,輸出兩個回車: echo "\n\n"; 原因不太清楚??赡茉诘却鼵ontent-type輸入,或是Perl的cgi程序風(fēng)格。
但這樣配置,PHP(4.1.0以上版本)中$_REQUEST、$_GET、$_POST等變量就無法用了,只能從服務(wù)器變量或環(huán)境變量中獲取QueryString了:$_SERVER["QUERY_STRING"]、$_ENV["QUERY_STRING"]。也許不支持表單的POST提交了……具體還沒試過。
由于對Tomcat不熟悉,所以這些只是在現(xiàn)在方法上的小修小補,可能有好的Tomcat支持PHP的做法,還希望大家不吝指教!