我试图构建php桥,但是我总是遇到"HTTP 500-php.java.bridge.http.FCGIConnectException:未能连接到服务器“的错误。
致命错误:未能启动PHP " PHP -cgi“、"-v",原因: java.io.IOException:无法运行程序”PHP-cgi“(目录"C:\Users\Rob"):CreateProcess error=2,系统找不到指定的文件无法启动FCGI服务器: java.io.IOException: PHP。请安装php-cgi。测试命令是: PHP,-v。
我已经读过这一本这了,但是我不知道如何解决它
我在localhost上使用xampp - tomcat :8080/JavaBridge
如何解决这个问题?
发布于 2017-04-18 13:57:44
首先,php-cgi二进制文件在技术上不需要运行用于常规PHP->Java交互的桥.(对于Java->PHP是这样)。
不幸的是,如果您使用的是泛型JavaBridgeTemplate.war,默认情况下将启用(Java-> php-cgi )模式,并将查找php-cgi可执行文件,该可执行文件无法在系统上自动确定。
有提出来的解决方案允许在使用集成的独立服务器时指定php-cgi可执行文件的位置。但是如果您使用Tomcat,这是行不通的(不是100%正确,但让我们假设是这样的)
,那么该怎么办?
在Tomcat下,桥参数存储在war文件中的/WEB-INF/web.xml文件中。我假设您已经下载并使用了sourceforge回购中的一个。
只需使用归档管理器打开JavaBridgeTemplate<version>.war文件( war基本上就是zip),然后使用以下解决方案之一编辑/WEB-INF/web.xml:
这可以通过删除PhpCGIServlet条目的注册来实现。检查以下xml行,并将注释放在()周围。
<servlet>
<servlet-name>PhpCGIServlet</servlet-name>
<servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>PhpCGIServlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>(PS:我不太确定这个解决方案是否适用于桥的所有版本)
首先,确保您有一个php-cgi可执行文件,并注意它的位置(在您的情况下可能是c:/xampp/php/php-cgi.exe,但我不使用windows)。那就去找
<context-param>
<param-name>prefer_system_php_exec</param-name>
<param-value>On</param-value>
</context-param>
<!-- Location of your system PHP executable. Default is /usr/bin/php-cgi or c:/Program Files/PHP/php-cgi.exe
If exported (Linux) or on the path (Windows) you can use 'php-cgi' as a platform
independent pointer to the executable
-->
<context-param>
<param-name>php_exec</param-name>
<param-value>php-cgi</param-value>
<!-- As an example, the param value
of the php-cgi executable could be:
<param-value>/usr/bin/php-cgi5.6</param-value>
<param-value>/usr/bin/php-cgi7.0</param-value>
<param-value>c:/Program Files/PHP/php-cgi.exe</param-value>
-->
</context-param>确保<param-value>c:/Program Files/PHP/php-cgi.exe</param-value>包含php-cgi的位置。
然后保存您的更改(确保web.xml保存在.war文件中)并在Tomcat服务器上重新部署。
还没有测试,但希望能有所帮助。
PS:
https://stackoverflow.com/questions/43453476
复制相似问题