Невозможно запустить PHP-скрипт под Tomcat - PullRequest
8 голосов
/ 19 августа 2011

Я использую Tomcat 6. Я установил PHP и пытаюсь запустить PHP внутри Tomcat с PHP / JavaBridge. Я развернул JavaBridge.war в каталоге веб-приложений Tomcat. При запуске любого скрипта PHP я получу эту ошибку ниже. Пожалуйста, помогите, и я благодарю вас за вашу помощь.

Вот как я настраивал PHP:

. / Configure --with-mime-magic --with-конфиг-файл-путь = / USR / местные / Zend / и т.д. --with-apxs2 = / USR / местные / apache2 / bin / APXS --with-LibXML-DIR = / USR --with-Mhash = / USR / местные --with-BZ2 = / USR --with-завиток = / USR --with-Gettext = / USR --with-MySQL = / USR / местные / MySQL --with-Mcrypt = / USR / местные --enable-волшебные кавычки --enable-BCMath --enable-календарь --enable-FTP --enable-сокеты --enable-WDDX --enable-MBstring --enable-молнии --enable-EXIF --with-Г.Д. = / USR --with-FreeType-DIR = / USR --with-JPEG-Dir = / USR --with-PNG-DIR = / USR --enable-Г.Д. родной-TTF --enable-FastCGI --enable-сила-CGI-редирект

Сообщение об ошибке от Tomcat выглядит следующим образом:

HTTP-статус 500 -

тип Отчет об исключении

Сообщение * * 1016

description Сервер обнаружил внутреннюю ошибку (), которая помешала это от выполнения этого запроса.

исключение

javax.servlet.ServletException: php.java.bridge.http.FCGIConnectException: не удалось подключиться к серверу php.java.servlet.fastcgi.FastCGIServlet.init (FastCGIServlet.java:133) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process (Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol $ Http11ConnectionHandler.process (Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint $ Worker.run (AprEndpoint.java:1584) Основная причина java.lang.Thread.run (Thread.java:662)

php.java.bridge.http.FCGIConnectException: не удалось подключиться к серверу php.java.bridge.http.SocketChannelFactory.test (SocketChannelFactory.java:58) php.java.servlet.fastcgi.FastCGIServlet.init (FastCGIServlet.java:131) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process (Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol $ Http11ConnectionHandler.process (Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint $ Worker.run (AprEndpoint.java:1584) основная причина java.lang.Thread.run (Thread.java:662)

java.io.IOException: java.net.ConnectException: соединение отклонено php.java.bridge.http.FCGIConnectException. (FCGIConnectException.java:37) php.java.bridge.http.SocketChannelFactory.test (SocketChannelFactory.java:58) php.java.servlet.fastcgi.FastCGIServlet.init (FastCGIServlet.java:131) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process (Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol $ Http11ConnectionHandler.process (Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint $ Worker.run (AprEndpoint.java:1584) Основная причина java.lang.Thread.run (Thread.java:662)

java.io.IOException: PHP не найден. Пожалуйста, установите php-cgi. Тест PHP команда была: [php-cgi, -v] php.java.bridge.Util $ Process.Start (Util.java:1145) php.java.servlet.fastcgi.FCGIProcess.start (FCGIProcess.java:68) php.java.bridge.http.SocketChannelFactory.doBind (SocketChannelFactory.java:125) php.java.bridge.http.FCGIConnectionFactory.runFcgi (FCGIConnectionFactory.java:88)php.java.bridge.http.FCGIConnectionFactory $ 1.run (FCGIConnectionFactory.java:109) note Примечание Полная трассировка стека основной причины доступна в Apache Журналы Tomcat / 6.0.29.

Apache Tomcat / 6.0.29

Ответы [ 3 ]

2 голосов
/ 05 ноября 2015

У меня была такая же ошибка, как и у вас, Ключевой момент, которого вам не хватает здесь:

PHP CLI (интерфейс командной строки) должен быть setup для работы с java-php мост

как вы утверждаете, что установили PHP (любые средства XAMPP / WAMP)

Выполните следующие шаги:

  • Добавить переменную среды PHP в PATH - Справка
  • Подтвердите настройку, запустив CMD>

    php-cgi -v
    
  • С помощью приведенной выше команды вы увидите информацию о версии PHP
  • Перезагрузить Tomcat

PHP / JavaBridge должен начать работать после этого.

0 голосов
/ 04 мая 2016

У меня была такая же проблема. Другое предложение было добавить

-Dphp.java.bridge.php_exec=/usr/bin/php

в командной строке. Вместо этого я изменил экспорт JAVA_OPTS в своем файле catalina.sh, чтобы добавить его. Это не сработало, но я совместил это с предложением выше и добавил

-Dphp.java.bridge.php_exec=/usr/bin/php-cgi

до catalina.sh. Я сбросил сервер и подключился к серверу / JavaBridgeTemplate621 / и получил страницу настроек PHP / Java Bridge.

0 голосов
/ 30 марта 2014

Переустановите и включите fastcgi, у меня все заработало!

...