From: <php...@li...> - 2009-03-06 14:25:20
|
Hi, I am trying to use the bridge to run PHP5 under Tomcat on Windows XP. I have started with the JavaBridge.war in webapps, and I can run http://localhost:8080/JavaBridge/test.php fine. I was having trouble loading the MySQL extension, and thought it was a problem with communications to MySQL. But, I have finally figured out that I can't load any PHP extensions at all, so I'll stick to mentioning php_bz2.dll. In the Windows path, C:\PHP is included. The versions I have: Tomcat-6.0.18 PHP-5.2.6 JavaBridge-5.4.3.3 JDK-1.6.0_12 I have tried setting the registry to use C:\PHP\php.ini since my command-line php executable loads the .ini and extensions, but it made no difference under JavaBridge. For now, I am using WEB-INF\cgi\php.ini, as confirmed by the output from test.php. From the default php.ini that came with JavaBridge.war, all I have done is change the following: extensions="C:\PHP\ext\" extension=php_bz2.dll and I get (if I restore those two lines, restart Tomcat, and access test.php, everything works): HTTP Status 500 - ------------------------------ *type* Exception report *message* *description* *The server encountered an internal error () that prevented it from fulfilling this request.* *exception* javax.servlet.ServletException: PHP FastCGI instance failed. php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.execute(FastCGIServlet.java:395) php.java.servlet.CGIServlet.handle(CGIServlet.java:401) php.java.servlet.PhpCGIServlet.handle(PhpCGIServlet.java:350) php.java.servlet.CGIServlet.doGet(CGIServlet.java:471) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) *root cause* php.java.servlet.fastcgi.ConnectionException php.java.servlet.fastcgi.FastCGIInputStream.read(FastCGIInputStream.java:55) php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.parseBody(FastCGIServlet.java:451) php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.doExecute(FastCGIServlet.java:374) php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.execute(FastCGIServlet.java:382) php.java.servlet.CGIServlet.handle(CGIServlet.java:401) php.java.servlet.PhpCGIServlet.handle(PhpCGIServlet.java:350) php.java.servlet.CGIServlet.doGet(CGIServlet.java:471) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) *root cause* java.io.IOException: Protocol error php.java.servlet.fastcgi.FastCGIInputStream.doRead(FastCGIInputStream.java:64) php.java.servlet.fastcgi.FastCGIInputStream.read(FastCGIInputStream.java:51) php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.parseBody(FastCGIServlet.java:451) php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.doExecute(FastCGIServlet.java:374) php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.execute(FastCGIServlet.java:382) php.java.servlet.CGIServlet.handle(CGIServlet.java:401) php.java.servlet.PhpCGIServlet.handle(PhpCGIServlet.java:350) php.java.servlet.CGIServlet.doGet(CGIServlet.java:471) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) *note* *The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.* In the Tomcat logs, I get: Mar 6, 2009 8:19:29 AM org.apache.catalina.core.ApplicationContext log INFO: PHP application terminated unexpectedly, have you started php-cgi with the environment setting PHP_FCGI_MAX_REQUESTS=5000? Error: php.java.servlet.fastcgi.ConnectionException Mar 6, 2009 8:19:29 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet PhpCGIServlet threw exception java.io.IOException: Protocol error at php.java.servlet.fastcgi.FastCGIInputStream.doRead(FastCGIInputStream.java:64) at php.java.servlet.fastcgi.FastCGIInputStream.read(FastCGIInputStream.java:51) at php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.parseBody(FastCGIServlet.java:451) at php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.doExecute(FastCGIServlet.java:374) at php.java.servlet.fastcgi.FastCGIServlet$CGIRunner.execute(FastCGIServlet.java:382) at php.java.servlet.CGIServlet.handle(CGIServlet.java:401) at php.java.servlet.PhpCGIServlet.handle(PhpCGIServlet.java:350) at php.java.servlet.CGIServlet.doGet(CGIServlet.java:471) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) I have set the PHP_FCGI_MAX_REQUESTS env. var., but made no difference. What am I doing wrong? Thanks in advance, Shash |