<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