您使用什么版本的 PHP?
并非所有版本的 PHP 都支持 php5servlet。 php5servlet.dll 库需要 php5ts.dll 库中包含的函数或方法,但是该库 php5ts.dll 会根据 PHP 版本而变化(添加新的或删除旧的方法),因此当 php5servlet.dll 调用某些方法时,也许找不到它。
根据您正在使用的 PECL 库,您需要一个 PHP 版本(可能比您正在使用的版本旧)。
最后测试的版本PHP对我来说是http://windows.php.net/downloads/releases/archives/php-5.2.16-Win32-VC6-x86.zip http://windows.php.net/downloads/releases/archives/php-5.2.16-Win32-VC6-x86.zip
我仍然不知道为什么 PHP 5.3.0 或更新的 VC6 不起作用。
最后一个版本PECL与所需的库(php5servlet.dll、php_java.dll、php_java.jar 和 phpsrvlt.jar)是http://museum.php.net/php5/pecl-5.2.5-Win32.zip http://museum.php.net/php5/pecl-5.2.5-Win32.zip
The Tomcat用于此测试的是http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27-windows-x86.zip http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27-windows-x86.zip
如果您只想使用 .php 文件...
现在(下面的部分不是错误的原因,所以不要修复它。),您可以将您的.php文件直接在
TOMCATDIR\webapps\ROOT\
将生成的.jar file php5srvlt.jar代替\lib显然改变了web.xml文件类似于:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>net.php.servlet</servlet-class>
</servlet>
<servlet>
<servlet-name>php-formatter</servlet-name>
<servlet-class>net.php.formatter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>php-formatter</servlet-name>
<url-pattern>*.phps</url-pattern>
</servlet-mapping>
</web-app>