<servlet> <servlet-name>cgi</servlet-name> <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>passShellEnvironment</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>executable</param-name> <param-value>php-cgi</param-value> </init-param> <init-param> <param-name>cgiPathPrefix</param-name> <param-value>WEB-INF/cgi</param-value> </init-param> <load-on-startup>5</load-on-startup> </servlet>固然還有它的映射servlet-mapping,以下:
<servlet-mapping> <servlet-name>cgi</servlet-name> <url-pattern>/cgi-bin/*</url-pattern> </servlet-mapping>關於上面CGIServlet的參數 <param-name>executable</param-name>,有兩種配置方式,若是在安裝php環境時已將php安裝目錄配置到了系統變量path中,則只需寫相應的命令名,如上。另外一種是直接指定php解釋程序的絕對路徑,如 <param-value>D:\php\php-cgi.exe</param-value>
a.php安裝目錄下有三個exe可執行文件,除上面的php-cgi.exe以外,還有php.exe及php-win.exe,經本人簡單測試,要想讓php文件能被tomcat正常解析,應該使用php-cgi.exe。
b.參數passShellEnvironment必須顯示設爲true,不然在phpMyAdmin首頁輸入賬密沒法登入。
而後配置${TOMCAT_HOME}/conf/context.xml。很簡單,在 元素中加入屬性,如<Context privileged="true">,配置這個屬性的目的就是讓tomcat可以啓用CGIServlet,不然php文件沒法執行。 php
2.php配置
我將php壓縮文件解壓到D盤,並將目錄名簡化爲php,即D:\php。 首先將\php目錄下的php.ini-development複製並重命名爲php.ini,而後修改此文件,以下:
cgi.force_redirect 去掉前面的;分號,並改成0(默認爲1,頁面上會有安全提示信息,必須設爲0)
extension_dir = "ext" 去掉前面的;分號。
extension=php_mbstring.dll 去掉前面的;分號。
extension=php_mysqli.dll 去掉前面的;分號。 java
3.phpMyAdmin配置
將phpMyAdmin-3.5.7程序解壓,並重命名爲phpMyAdmin,而後拷貝到${TOMCAT_HOME}\webapps\ROOT\WEB-INF\cgi目錄下,自建cgi目錄。 mysql
(來自做者博客:http://www.ichatter.cn/2013/04/07/472/) web