標籤:
前言:
由於本人在開發和學習過程中需要同時部署 JavaWeb 和 PHP 項目,並偶然發現 Tomcat 伺服器可以運行 PHP,所以只需要運行一個 Tomcat 伺服器即可完成兩種Web程式的部署。於是整理了網上的一些相關資料,並結合自己的實際操作,記錄於此,以供參考。
一、環境(64bit):
1.作業系統、Tomcat 和 JDK 環境:
Server version: Apache Tomcat/9.0.0.M4
Server built: Mar 12 2016 11:39:59 UTC
Server number: 9.0.0.0
OS Name: Windows Server 2008 R2
OS Version: 6.1
Architecture: amd64
Java Home: D:\Java\jre
JVM Version: 1.8.0_77-b03
JVM Vendor: Oracle Corporation
CATALINA_BASE: D:\Installed\Tomcat9
CATALINA_HOME: D:\Installed\Tomcat9
(Tomcat 伺服器和 Jdk 的配置很簡單,需要的自己搜尋)
Tomcat :http://archive.apache.org/dist/tomcat/
JDK :http://www.oracle.com/technetwork/java/javase/downloads/index.html
環境變數:
JAVA_HOME D:\Java
CLASSPATH .\;%JAVA_HOME%\lib\tools.jar
TOMCAT_HOME D:\Installed\Tomcat9
Path %JAVA_HOME%\bin;
2.PHP環境:
我所使用的 PHP 版本為 7.0.5,:http://windows.php.net/download/
此版本的 PHP 需要 VC++ 2015 的運行環境(64bit),點擊下載。
將下載後的 PHP 壓縮包解壓到 Tomcat 伺服器根目錄,命名為“php”。
環境變數:
Path %TOMCAT_HOME\php;
二、配置:
1.配置 Context:
開啟 Tomcat 根目錄\conf\context.xml,找到 <Context> 標籤,添加屬性: privileged="true"
1 <Context privileged="true" antiResourceLocking="true">2 <WatchedResource>WEB-INF/web.xml</WatchedResource>3 <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>4 </Context>
2.配置 Web-App:
開啟 Tomcat 根目錄\conf\web.xml,配置 php 的 Servlet:
1 <servlet> 2 <servlet-name>php</servlet-name> 3 <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> 4 <init-param> 5 <param-name>clientInputTimeout</param-name> 6 <param-value>200</param-value> 7 </init-param> 8 <init-param> 9 <param-name>debug</param-name> 10 <param-value>0</param-value> 11 </init-param> 12 <init-param> 13 <param-name>executable</param-name> 14 <param-value>D:\Installed\Tomcat9\php\php-cgi.exe</param-value> <!-- 此節點值為“php-cgi.exe”亦可 -->15 </init-param> 16 <init-param> 17 <param-name>passShellEnvironment</param-name> 18 <param-value>true</param-value> 19 </init-param> 20 <init-param> 21 <param-name>cgiPathPrefix</param-name> 22 <param-value>WEB-INF/php</param-value> 23 </init-param> 24 <load-on-startup>5</load-on-startup> 25 </servlet> 26 27 <servlet-mapping> 28 <servlet-name>php</servlet-name> 29 <url-pattern>/php/*</url-pattern> 30 </servlet-mapping>
3.配置 pnp.ini:
開啟 Tomcat 根目錄下的 php 目錄,找到 php.ini-development 檔案,複製一份重新命名為 php.ini,修改 php.ini 檔案:
a) 啟用 extension_dir(去掉前面的分號),設定 extension_dir 為 "Tomcat 根目錄\php\ext",或"ext"
b) 設定 cgi.force_redirect 為 0
1 extension_dir = "D:\Installed\Tomcat9\php\ext"2 cgi.force_redirect = 0
三、部署 PHP,查看效果:
1.在 Tomcat 根目錄\webapps\ROOT\WEB-INF 目錄下建立一個名為 “php”的目錄,在目錄中建立一個 PHP 測試檔案 test.php:
1 <?php2 echo " Hello World! <br>";3 echo " Hello Tanken·L! <br>";4 echo " Hello itanken.net! <br>";5 ?>
2.啟動 Tomcat,訪問 http://127.0.0.1:8080/php/test.php (Tomcat 預設連接埠為 8080),可以看到輸出三行 Hello ...!:
Done.
[WebServer] Windows作業系統下 Tomcat 伺服器運行 PHP 的環境配置