使用Tomcat 后.如果需要运行 PHP 脚本.的方法
**第一步骤 : **下载. PHP
https://windows.php.net/download#php-7.3
注意:
Thread safe 或者 Non Thread Safe
Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源。
再来看PHP的两种执行方式:ISAPI和FastCGI。
FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(搭配IIS)执行 PHP ,都建议下载执行 non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip 套件)。
而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP(搭配apache)。
如果你还搞不清楚,那么只需知道你是php+apache还是php+iis组合
non-thread-safe 非 线程安全与IIS搭配环境
thread-safe 线程安全 与apache搭配环境
第二步 解压的目录
下载后,解压到 Tomcat 主目录 一个便于辨认使用的文件夹,(以后要配置)
第三步 解压后下一个步骤就是 配置环境变量
计算机-属性-高级设置中点击“环境变量”,添加PATH环境变量,可以添加Admin环境变量,
环境变量其实就是把 PHP 安装的目录设置到 path中
也可以添加系统环境变量,看个人需求,
将php解压路径添加到PATH中。
之后打开cmd,输入php -v或 php -version。
**第四步 ** 创建和修改 php.ini 文件
php路径下的php.ini-development 复制,将副本改名php.ini,
之后用记事本打开php.ini。(可以看出;为其注释符)修改其中两项设置:
去掉extension_dir = "ext"前面的;
cgi.force_redirect修改为0,并去掉前面的;
即 cgi.force_redirect = 0
第五步 修改 Tomcat 的配置文件
修改web.xml文件,**在
其中的
executable
D:\tomcat\php\php-cgi.exe
这里可以配置一个php 脚本的执行的起始目录 如果不设置
php脚本执行目录就和工程根目录相同.
D:\tomcat\php 这个目录是你的实际的 PHP 7.2 的安装的 存放目录
你可能有多个 tomcat 的配置实例目录,但是PHP 7.2 的安装的 存放目录就是你
解压的存放PHP的位置和tomcat 的配置目录位置无关你可以换任何文件夹
第六步 配置 web.xml 和 context.xml 的坑
你如果从一个Tomcat 配置实例目录启动需要配置的 这两个文件就在该配置目录下
例如你可能使用不同端口启动不通 Tomcat 服务器.你就使用那个Tomcat 实例conf下的这两个文件
这个是正确配置的
对应
这里有两个坑
第一个坑路径参数关键字错误
cgiPathPreflx 这里有个子母" l" 和"i" 的错误
cgiPathPrefix
这个错误将导致 设置的目录是 永远是工程的根目录,
这个设置的意思是,
在你的web 设置目录下 (工程根目录) 设置了一个php脚本的执行的虚拟根目录
实际上是工程目录下的 phpbin 目录
执行的时候就是 主机ip/index.php 形式 而实际上在 工程目录/phpbin/index.php
**第二个坑 **
php
org.apache.catalina.servlets.CGIServlet
如果这个词条出现错误的子母也将导致意想不到的问题.
这个问题还涉及到工程目录的设置问题
打开 server.xml 文件夹
这一句的意思是 服务器的根目录是 webapps 目录
所有的工程目录必须放在这个目录下.
这里的一个坑就是默认执行的是 webapps/ROOT 目录而不是 webapps 目录本身.
设置你的工程目录作为根目录
这一句的意思就是 工程目录 StudentERP 作为服务执行的根目录,
总结:
文字输入错误
字段目录设定意义的曲解.