apache 的 tomcat 毕竟是使用 JAVA 所以需要安装相应 PHP 来解析一些 PHP 页面
Linux版本:Tomcat 下运行 php 文件(Linux-CentOS) https://blog.csdn.net/qq_28033719/article/details/108405451
相对下面配置还可以用快捷的方法
基于 Java 的 PHP 框架 —— Quercus 简介
https://www.ibm.com/developerworks/cn/web/wa-quercus/
1、首先区分你的操作系统,win 使用这个下载地址:http://windows.php.net/download,要注意区分你的操作系统位数,然后是否需要线程安全,再点击下载这个zip包(如果需要环境变量自己可以进行配置),然后解压php之后需要把php目录配置到环境变量中。
2、tomcat8的下载地址:https://tomcat.apache.org/download-80.cgi,注意你的环境变量是否存在tomcat的环境变量,如果存在就会让任意磁盘位置的tomcat都会用上环境变量中规定的配置,下载Binary Distributions版本zip,解压之后到tomcat/bin目录下,运行startup.bat。tomcat是拆箱即用,启动访问127.0.0.1:8080,访问不了就需要异常处理,可以本文末尾了解查看日志。
3、安装之后需要四个 JAR 包:
JavaBridge.jar、php-servlet.jar、php-script.jar、script-api.jar:
https://pan.baidu.com/s/1Htrn1SzWgxjdFcGMtS2lBg 密码:9st9
把 JAR 复制到,tomcat的lib目录下,放了jar之后需要查看tomcat能否启动,可以本文末尾了解查看日志。
4、在 PHP 根目录找到 php.ini-development 复制并且改名为 php.ini
5、在 php.ini 先进行查找,然后加入或者修改
(1)cgi.force_redirect = 0 ;这个是强制跳转,如果没有的话,页面会读取不到 *.php 的文件 。。。。。。 (2)extension_dir="D:\Application\php-5.4.31\ext" ;这里是你的 php/ext 位置 。。。。。。 (3)extension=php_mbstring.dll ;这个是正则处理,没有的话,访问页面可能抛出 The mbstring extension is missing.通常都在php的目录下 ;通常 window 编译时候可以完全编译, linux 需要 enable 选项进行编译, 不然会缺失6、修改 TOMCAT / conf / context.xml ;在 Context 节点下添加 privileged="true"
<Context privileged="true"> ...... </Context>7、在 Tomcat / conf / 找 web.xml,添加
<!-- 尝试成功 --> <servlet> <servlet-name>php</servlet-name> <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> <init-param> <param-name>clientInputTimeout</param-name> <param-value>200</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>executable</param-name> <!-- 这里是放置你的 php/php-cgi.exe --> <param-value>E:\app\php-7.4.7-Win32-vc15-x64\php-cgi.exe</param-value> </init-param> <init-param> <param-name>passShellEnvironment</param-name> <param-value>true</param-value> </init-param> <!-- 指定拦截前缀,可用可不用,使用之后URL需要带上 前缀 + 原访问路径 --> <!-- <init-param> <param-name>cgiPathPrefix</param-name> <param-value>WEB-INF/mibew</param-value> </init-param> --> <load-on-startup>5</load-on-startup> </servlet> <servlet-mapping> <servlet-name>php</servlet-name> <url-pattern>*.php</url-pattern> </servlet-mapping>或者
<!-- 这个尝试没成功 --> <!-- 增加监听 --> <listener> <listener-class>php.java.servlet.ContextLoaderListener</listener-class> </listener> <!-- 配置PhpJavaServlet --> <servlet> <servlet-name>PhpJavaServlet</servlet-name> <servlet-class>php.java.servlet.PhpJavaServlet</servlet-class> </servlet> <!-- 配置 CGI --> <servlet> <servlet-name>PhpCGIServlet</servlet-name> <servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class> <init-param> <param-name>prefer_system_php_exec</param-name> <param-value>On</param-value> </init-param> <init-param> <param-name>php_include_java</param-name> <param-value>Off</param-value> </init-param> </servlet> <!-- PhpJava拦截 --> <servlet-mapping> <servlet-name>PhpJavaServlet</servlet-name> <url-pattern>*.phpjavabridge</url-pattern> </servlet-mapping> <!-- CGI拦截 --> <servlet-mapping> <servlet-name>PhpCGIServlet</servlet-name> <url-pattern>*.php</url-pattern> </servlet-mapping>并且在 web.xml 添加欢迎页面
<welcome-file>index.php</welcome-file>8、然后把PHP项目放到 tomcat 的 webapp 目录下
9、然后在浏览器点出你的php文件路径(以webapps为根目录),运行 php 文件
localhost:9090/mantisbt/admin/install.php
我的 mantisbt 在 tomcat 下安装成功了!
也可以用mantisbt做测试项目呢:https://www.mantisbt.org/
1、需要安装使用指令安装下 php-cgi.exe,或者配置php的bin目录,查看 php 目录是否配置到电脑环境中,使用命令行:php-cgi -v 检验
2、杀毒软件修改了 vcruntime140.dll 部分数据,只需要在网上下载一个完整的即可,放置到C:\Windows\System32的路径下,绿色路径需要看计算机的配置来尝试。
3、php-cgi.exe 文件不存在
把 conf / web.xml 你之前为了运行 php 的配置都去掉,然后查找 cgi,原 web.xml 文件是有配置了 cgi 的 servlet 配置
<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>cgiPathPrefix</param-name> <param-value>WEB-INF/cgi</param-value> </init-param> <load-on-startup>5</load-on-startup> </servlet>还有另外一处地方
<servlet-mapping> <servlet-name>cgi</servlet-name> <url-pattern>/cgi-bin/*</url-pattern> </servlet-mapping>把原来的注释去掉,然后运行查看 tomcat 能否正常运行,如果tomcat可以运行,不能可以查看日志解决,如果可以再添加下面标签运行
<init-param> <param-name>executable</param-name> <!-- 这里是放置你的 php/php-cgi.exe --> <param-value>D:\apache-tomcat-7.0.70\php\php-cgi.exe</param-value> </init-param>4、如果页面空白等等,可以在 查看日志 找出原因。
1、可以在 /conf/logging.properties 里面修改或添加 org.apache.jasper.servlet.TldScanner.level = FINE 你就可以在 /logs/ 下查看 tomcat 抛出异常 2、catalina.*.log 查看你的启动日志 3、localhost.*.log 查看你的异常日志 4、localhost_access_log.*.txt 查看浏览器访问日志(404,或者 200 等资源请求的状态码日志)
Tomcat8解决At least one JAR was scanned for TLDs yet contained no TLDs问题:https://blog.csdn.net/yasi_xi/article/details/49642661
tomcat上部署CGI:https://blog.csdn.net/sunshoupo211/article/details/34432503
Tomcat下部署PHP:https://www.cnblogs.com/ouyangping/p/6264434.html
配置tomcat以运行PHP项目:https://blog.csdn.net/qq_25722767/article/details/52595498
如何在tomcat中配置php服务:https://jingyan.baidu.com/article/624e7459764ab034e8ba5ad4.html
