我试图建立php-java桥,但我总是得到错误 " HTTP状态500 - php.java.bridge.http.FCGIConnectException:无法连接到服务器"。
致命错误:无法启动PHP [" php-cgi"," -v"],原因:java.io.IOException:无法运行程序"&# 34; PHP-CGI"" (在目录" C:\ Users \ Rob"):CreateProcess error = 2,系统找不到指定的文件 无法启动FCGI服务器:java.io.IOException:找不到PHP。请安装php-cgi。 PHP测试命令是:[php-cgi,-v]
我已经读过这个this,但没有得到解决方法
我在localhost上使用xampp - tomcat:8080 / JavaBridge
如何解决这个问题?
答案 0 :(得分:0)
首先,运行常规 PHP-> Java交互的桥梁所需的php-cgi
二进制文件不是技术上 ...(对于Java) - > PHP就是这样)。
不幸的是,如果您使用通用JavaBridgeTemplate.war
,默认情况下会启用(Java-> PHP)模式,并会查找php-cgi
可执行文件,但无法确定自动在您的系统上。
您使用集成独立服务器时,您mentionned允许指定php-cgi
可执行文件的位置。但是如果你使用Tomcat,这不会起作用(不是100%正确,但让我们这样假设)
那该怎么办?
在Tomcat下,桥接参数存储在war文件中的/WEB-INF/web.xml
文件中。我假设您已下载并使用sourceforge repo中的一个。
只需使用存档管理器打开JavaBridgeTemplate<version>.war
文件(战争就是拉链),然后使用以下解决方案之一编辑/WEB-INF/web.xml
:
这可以通过删除PhpCGIServlet
条目的注册来实现。检查以下xml行并放置注释(&lt;! - 和 - &gt;)。
<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
二进制文件的位置。 首先确保您拥有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服务器上重新部署。
Haven未经过测试,但希望有所帮助。
PS:
如果可能,请升级到Tomcat 7或8。
请注意soluble-japha重新设计的客户端(与java桥服务器一起使用)的存在,这对我们有很大的帮助;)