You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This page describes how to use PHP (v4) with Tomcat (v4 or later). The contents were originally written and sent to the tomcat-dev list by Jean-Frederic Clere (on his vacation, no less (wink)) and Henri Gomez.


0. Prerequisites:

  • Download PHP (this tutorial was done with PHP 4.3.5)
  • Download Tomcat (this tutorial was done with Tomcat 5.0.19)
  • Define $JAVA_HOME for your JDK installation
  • Define $TOMCAT_HOME for your tomcat installation
  • Define $PHP_HOME for your PHP installation
  1. Configure PHP Installation:
    ./configure --with-servlet=$TOMCAT_HOME --with-java=$JAVA_HOME

A jarfile and dynamic library are produced:

  • sapi/servlet/phpsrvlt.jar
  • libs/libphp4.so

2. Copy jar to your webapp's or tomcat's common class repository:
cp $PHP_HOME/sapi/servlet/phpsrvlt.jar $TOMCAT_HOME/common/lib

3. Declare PHP servlet and servlet-mapping in your or tomcat's common web.xml:
Copy from $PHP_HOME/sapi/servlet/web.xml servlet and servlet-mapping and paste
into $TOMCAT_HOME/conf/web.xml.

4. Modify your LD_LIBRARY_PATH to include the dynamic library produced in step 1 above:
LD_LIBRARY_PATH=$PHP_HOME/libs
export LD_LIBRARY_PATH

5. Start tomcat:
$TOMCAT_HOME/bin/startup.sh.


Testing:

  1. Create a file named test.php in the docBase directory of your webapp.

2. In that file, simply put:
+++
<?php phpinfo(); ?>
+++

3. Point your browser at the file by navigating to
http://localhost:8080/test.php


This is a patch for PHP's configure script to account for the servlet jar name change (from servlet.jar in Servlet Spec 2.3 and previous [tomcat 4 and previous] to servlet-api.jar in Servlet Spec 2.4 and above [tomcat 5 and later]):

— configure.org 2004-04-07 11:20:24.000000000 +0200
+++ configure 2004-04-07 11:22:50.000000000 +0200
if test "$withval" = "yes"; then
SERVLET_CLASSPATH=.
else
+ if test -f $withval/common/lib/servlet-api.jar; then
+ SERVLET_CLASSPATH=$withval/common/lib/servlet-api.jar
+ fi
+
if test -f $withval/lib/servlet.jar; then
SERVLET_CLASSPATH=$withval/lib/servlet.jar
fi
++++

  • No labels