Исходные данные: есть сервер, работает под Tomcat — изначально на нем стоял мощный, но неоправданно здоровый движок liferay. Ну и, как водится, моя задача — переставить сайт на более легкую и удобную для владельцев CMS. Написанную, как нетрудно догадаться, на PHP.
Первый порыв — снести все, поставить Apache и не мудрствовать обломились сразу об два обстоятельства. Во-первых, надо было параллельно держать старый сайт. А во-вторых, ну не уверен я, что хорошо поставлю под Fedora Linux Apache... Root-доступ к серверу мне, конечно, дали, сопроводив советом посетить http://php-java-bridge.sourceforge.net/pjb/.
Краткая справка: Tomcat — это такой вебсервер, который позволяет использовать Java. А предложенное решение — мост между Java и PHP. В принципе, особых трудностей нету, если знать, что и как делать.
- Скачиваем с сайта Source + Binaries. Вам же не улыбается все это компилировать?
- Закачиваем в директорию Webapps на Tomcat (/otp/tomcat*/webapps/) найденный в архиве файл JavaBridge.war.
- Перезагружаем Tomcat.
- Через несколько минут в той же папке найдем директорию JavaBridge и скопируем ее оттуда себе так, на всякий случай.
В принципе, эту директорию можно скопировать в папку ROOT (/otp/tomcat*/webapps/ROOT в моем случае), как-нибудь переименовать и запихивать php-файлы они будут прекрасно работать. В подпапках в том числе. Но нам же нужно параллельно использовать php и java на одном сервере, во всех директориях? Делаем следующее.
- В папку /otp/tomcat*/webapps/ROOT/WEB_INF/ копируем папку cgi из соответствующего подкаталога в JavaBridge.
- В папку lib копируем все библиотеки, которые есть в JavaBridge, но которых до этого не было там. Вроде php-servlet.jar.
- Открываем в JavaBridge/WEB_INF/ файл web.xml, копируем оттуда все, начинающееся с
<! PHP Servlet: back-end for Apache or IIS -->
<servlet>
и до <! Welcome files --> - Вставляем в файл web.xml в Tomcat, где-нибудь перед первым <servlet>'ом.
- Добавляем там же <welcome-file>index.php</welcome-file> в соответствующую секцию, к записям о index.jsp и index.html.
Все, последний раз перезагружаем Tomcat и радуемся полученному результату.


