Запустить приложение php, используя tomcat?

Можно ли запустить приложение PHP, используя tomcat?

Прежде чем вы скажете мне просто использовать httpd, на моем веб-сервере уже запущено приложение Java host/myapp, Теперь я хочу установить RoundCube на хост / roundcube.

Один - это PHP, а другой - Java. Я продолжаю видеть косвенные ссылки, говорящие, что это возможно, но никаких реальных инструкций. Я не хочу ставить их на отдельные порты, мне нужны стандартные порты HTTP и HTTPS.

У кого-нибудь есть ресурсы для этого?

8 ответов

Да, это возможно, GBa. мы можем запустить код PHP на сервере Tomcat, используя собственный номер порта localhost:8080

здесь я пишу какой-то шаг, который очень полезен для вас.

Как установить или запустить PHP на Tomcat 6 в Windows

  1. скачать и распаковать PHP 5 в каталог, c:\php-5.2.6-Win32 - php-5.2.9-2-Win32.zip Скачать

  2. скачать PECL 5.2.5 Win32 binaries - PECL 5.2.5 Win32 Скачать

  3. переименовать php.ini-dist в php.ini в c:\php-5.2.6-Win32

  4. Раскомментируйте или добавьте строку (удалите точку с запятой в начале) в php.ini:;extension=php_java.dll

  5. копия php5servlet.dll от PECL 5.2.5 до c:\php-5.2.6-Win32

  6. копия php_java.dll от PECL 5.2.5 до c:\php-5.2.6-Win32\ext

  7. копия php_java.jar от PECL 5.2.5 до tomcat\lib

  8. создать каталог с именем "php" (или что ты любишь) в tomcat\webapps каталог

  9. копия phpsrvlt.jar от PECL 5.2.5 до tomcat\webapps\php\WEB-INF\lib

  10. Разархивировать или разархивировать phpsrvlt.jar для распаковки используйте winrar или winzip для распаковки: jar xfv phpsrvlt.jar

  11. изменить оба net\php\reflect.properties а также net\php\servlet.properties в library=php5servlet

  12. Создайте файл jar -> jar cvf php5srvlt.jar net / php /. PS: если файл jar не запускается, вы должны добавить путь к системным переменным для меня, я добавил C:\Program Files\Java\jdk1.6.0\bin; to System variables/Path

  13. Создайте web.xml в tomcat\webapps\php\WEB-INF с этим содержанием:

    <web-app version="2.4" 
      xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
      <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>
    
  14. Добавить путь PHP (c:\php-5.2.6-Win32) к вашей системной или пользовательской папке в среде Windows (подсказка: щелкните правой кнопкой мыши и выберите "Свойства" на " Моем компьютере")

  15. Создайте test.php для тестирования под tomcat\webapps\php лайк

  16. Перезагрузите кота

  17. просматривать localhost:8080/php/test.php

Довольно часто запускать Tomcat за Apache. В Apache вы можете затем направить определенные URL-адреса в Tomcat, а Apache/PHP обрабатывать другие (включая статические изображения).

(В Unix Tomcat сам по себе не может безопасно работать на порте 80, в то время как Apache может. Tomcat, будучи процессом Java, должен был бы запускаться от имени root, в то время как Apache переключится на привилегии без полномочий root, как только порт 80 будет Итак, запуск Apache через порт 80 и переадресация некоторых или всех запросов на Tomcat, довольно распространен в Unix.)

Caucho Quercus может запускать код PHP на jvm.

Там этот мост PHP/Java. Это в основном работает PHP через FastCGI. Я не использовал это сам.

Немного поздно, но здесь идет.

Как насчет http://wiki.apache.org/tomcat/UsingPhp если вы просто хотите запустить настоящий php на tomcat.

Что касается запуска tomcat на порту 80, всегда есть jsvc, просто google jsvc + tomcat.

Tomcat разработан как контейнер сервлетов JSP. Apache разработан PHP веб-сервер. Используйте apache в качестве веб-сервера, отвечая на запрос PHP, и направляйте запрос сервлета JSP в контейнер tomcat. должна быть лучшая реализация.

Если кто-то все еще ищет - у Quercus есть война, которая позволяет запускать PHP-скрипты на Apache Tomcat или Glassfish. Пошаговое руководство смотрите в этой статье.

  1. Убедитесь, что на вашем сервере установлен php
  2. Найти последнюю версию php-java-bridge от sourceforge
  3. Загрузите из разорванного каталога на Sourceforge php-servlet.jar а также JavaBridge.jar
  4. Поместите эти файлы JAR в webapp/WEB-INF/lib папка вашего проекта
  5. Отредактируйте webapp/WEB-INF/web.xml так, чтобы он выглядел следующим образом:

Хорошо

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
   <filter>
      <filter-name>PhpCGIFilter</filter-name>
      <filter-class>php.java.servlet.PhpCGIFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>PhpCGIFilter</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>
   <!-- the following adds the JSR223 listener. Remove it if you don't want to use the JSR223 API -->
   <listener>
      <listener-class>php.java.servlet.ContextLoaderListener</listener-class>
   </listener>
   <!-- the back end for external (console, Apache/IIS-) PHP scripts; remove it if you don't need this -->
   <servlet>
      <servlet-name>PhpJavaServlet</servlet-name>
      <servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
   </servlet>
   <!-- runs PHP scripts in this web app; remove it if you don't need this -->
   <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>PhpJavaServlet</servlet-name>
      <url-pattern>*.phpjavabridge</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>PhpCGIServlet</servlet-name>
      <url-pattern>*.php</url-pattern>
   </servlet-mapping>
</web-app>

У вас может быть другое содержимое в этом файле, просто убедитесь, что вы добавили все между тегом веб-приложения.

  1. Добавьте ваши php файлы в каталог webapp

С этим вы можете делать и другие особые вещи. Вы можете узнать больше об этом здесь: http://php-java-bridge.sourceforge.net/pjb/how_it_works.php

Другие вопросы по тегам