Windows服务器PHP+Tomcat环境配置

在网上搜索了一下相关资料,发现在Windows服务器下配置PHP+Tomcat的资料较少,在此记录一下。

1. 环境

操作系统:Windows Server 2012R2(x64)

Tomcat 9.0
JDK 1.8
PHP 7.3.26
tomcat与jdk的安装就不赘述了,网上资料很多,主要讲一下PHP的安装配置。

2.PHP环境:

我所使用的 PHP 版本为 7.3.26,下载地址:http://windows.php.net/download/
此版本的 PHP 需要 VC++ 2015 的运行环境(64bit),点击下载
将下载后的 PHP 压缩包解压到 Tomcat 服务器根目录,命名为“PHP”。

环境变量:

Path:    
//选中Path进行编辑,在最后加上这行代码
//注意:TOMCAT_HOME应该是之前配置Tomcat就有的环境变量,
//如果没有这里就是到PHP的全路径
%TOMCAT_HOME%\PHP;

3.相关文件的配置
3.1.配置 Context:

打开 Tomcat 根目录\conf\context.xml,找到 标签添加属性: privileged=“true”

 <Context privileged="true" >
 ...
 </Context>

3.2配置 Web-App:

打开 Tomcat 根目录\conf\web.xml,配置 PHP 的 Servlet:

<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>
      <param-value>php-cgi.exe</param-value>
    </init-param>
    <init-param>
        <param-name>passShellEnvironment</param-name>
    <param-value>true</param-value>
</init-param>
    <init-param>
      <param-name>cgiPathPrefix</param-name>
      <param-value>WEB-INF/PHP</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>

3.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

...
extension_dir = "D:\Installed\Tomcat\PHP\ext"
...
cgi.force_redirect = 0
...

4.部署网页查看效果
4.1.在 Tomcat 根目录\webapps\ROOT\WEB-INF 目录下创建一个名为 “PHP”的目录,在目录中创建一个 PHP 测试文件 test.PHP

<?PHP
echo " Hello World! <br>";
echo " Hello Tanken·L! <br>";
echo " Hello itanken.net! <br>";
?>

2.启动 Tomcat,访问 http://127.0.0.1:8080/PHP/test.PHP (Tomcat 认端口为 8080),可以看到输出三行 Hello …!

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...