Запустить приложение php, используя tomcat?
Можно ли запустить приложение PHP, используя tomcat?
Прежде чем вы скажете мне просто использовать httpd, на моем веб-сервере уже запущено приложение Java host/myapp
, Теперь я хочу установить RoundCube на хост / roundcube.
Один - это PHP, а другой - Java. Я продолжаю видеть косвенные ссылки, говорящие, что это возможно, но никаких реальных инструкций. Я не хочу ставить их на отдельные порты, мне нужны стандартные порты HTTP и HTTPS.
У кого-нибудь есть ресурсы для этого?
8 ответов
Да, это возможно, GBa. мы можем запустить код PHP на сервере Tomcat, используя собственный номер порта localhost:8080
здесь я пишу какой-то шаг, который очень полезен для вас.
Как установить или запустить PHP на Tomcat 6 в Windows
скачать и распаковать PHP 5 в каталог,
c:\php-5.2.6-Win32
- php-5.2.9-2-Win32.zip Скачатьскачать PECL 5.2.5 Win32 binaries - PECL 5.2.5 Win32 Скачать
переименовать
php.ini-dist
вphp.ini
вc:\php-5.2.6-Win32
Раскомментируйте или добавьте строку (удалите точку с запятой в начале) в
php.ini
:;extension=php_java.dll
копия
php5servlet.dll
от PECL 5.2.5 доc:\php-5.2.6-Win32
копия
php_java.dll
от PECL 5.2.5 доc:\php-5.2.6-Win32\ext
копия
php_java.jar
от PECL 5.2.5 доtomcat\lib
создать каталог с именем
"php"
(или что ты любишь) вtomcat\webapps
каталогкопия
phpsrvlt.jar
от PECL 5.2.5 доtomcat\webapps\php\WEB-INF\lib
Разархивировать или разархивировать
phpsrvlt.jar
для распаковки используйте winrar или winzip для распаковки:jar xfv phpsrvlt.jar
изменить оба
net\php\reflect.properties
а такжеnet\php\servlet.properties
вlibrary=php5servlet
Создайте файл jar -> jar cvf php5srvlt.jar net / php /. PS: если файл jar не запускается, вы должны добавить путь к системным переменным для меня, я добавил
C:\Program Files\Java\jdk1.6.0\bin; to System variables/Path
Создайте
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>
Добавить путь PHP (
c:\php-5.2.6-Win32
) к вашей системной или пользовательской папке в среде Windows (подсказка: щелкните правой кнопкой мыши и выберите "Свойства" на " Моем компьютере")Создайте
test.php
для тестирования подtomcat\webapps\php
лайкПерезагрузите кота
просматривать
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.)
Там этот мост 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. должна быть лучшая реализация.
- Убедитесь, что на вашем сервере установлен php
- Найти последнюю версию php-java-bridge от sourceforge
- Загрузите из разорванного каталога на Sourceforge
php-servlet.jar
а такжеJavaBridge.jar
- Поместите эти файлы JAR в
webapp/WEB-INF/lib
папка вашего проекта - Отредактируйте 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>
У вас может быть другое содержимое в этом файле, просто убедитесь, что вы добавили все между тегом веб-приложения.
- Добавьте ваши php файлы в каталог webapp
С этим вы можете делать и другие особые вещи. Вы можете узнать больше об этом здесь: http://php-java-bridge.sourceforge.net/pjb/how_it_works.php