mirror of
https://github.com/php/php-src.git
synced 2024-10-21 00:12:34 +00:00
123 lines
4.0 KiB
Plaintext
123 lines
4.0 KiB
Plaintext
Java Servlet SAPI Module for PHP 4
|
|
|
|
|
|
Introduction
|
|
|
|
The Java Servlet SAPI Module allows for the execution of PHP 4 as
|
|
a Servlet from within a Java Servlet Engine, such as Apache's
|
|
Jakarta Tomcat [1]. It builds upon the mechanism defined by PHP's
|
|
Java Extension, which can be found in /php4/ext/java.
|
|
|
|
The primary advantage of this from a PHP perspective is that web
|
|
servers which support servlets typically take great care in
|
|
pooling and reusing Java Virtual Machines (JVMs).
|
|
|
|
PHP may also be bridged with the Apache Cocoon XML Publishing
|
|
Framework. [2]
|
|
|
|
A suitably configured system will invoke the PHP binaries through
|
|
JNI and the output of the page will be processed through the
|
|
configured XML parser and placed into the pipeline for processing
|
|
by such filters as XSLT. This enables PHP developers to access the
|
|
powers of Cocoon to separate their content, style, and logic
|
|
without requiring them to write a single line of Java code.
|
|
|
|
While this code is intended to be able to run on any servlet
|
|
engine, it has only been tested on Apache's Jakarta Tomcat to
|
|
date. Bug reports, success stories and/or patches required to get
|
|
this code to run on other engines would be appreciated; please
|
|
send them to the PHP Development Mailinglist [3].
|
|
|
|
Note: PHP has a habit of changing the working directory. The Java
|
|
Servlet SAPI Module will eventually change it back, but while PHP
|
|
is running the servlet engine may not be able to load any classes
|
|
from the CLASSPATH which are specified using a relative directory
|
|
syntax, or find the work directory used for administration and JSP
|
|
compilation tasks.
|
|
|
|
|
|
Installing PHP as a Servlet into Apache's Jakarta Tomcat
|
|
|
|
1.) Build the PHP 4 Java Servlet SAPI Module
|
|
|
|
UNIX
|
|
|
|
o ./configure --with-servlet --with-java
|
|
|
|
o Add directory containing libphp4.so to LD_LIBRARY_PATH
|
|
|
|
Windows
|
|
|
|
o Build ext/java/java.dsp, copy php_java.dll to your
|
|
extension_dir directory and enable the extension in the
|
|
php.ini
|
|
|
|
o Build sapi/servlet/servlet.dsp
|
|
|
|
o Add directory containing php4ts.dll and phpsrvlt.dll to
|
|
PATH
|
|
|
|
2.) Tomcat 3
|
|
|
|
* Add phpsrvlt.jar to CLASSPATH
|
|
|
|
Tomcat 4
|
|
|
|
* Copy phpsrvlt.jar into your $CATALINA_HOME/lib directory
|
|
|
|
3.) Tomcat 3
|
|
|
|
* Merge or overwrite build/tomcat/examples/WEB-INF/web.xml
|
|
with the configuration directives from the web.xml file
|
|
that comes with the Java Servlet SAPI Module.
|
|
|
|
Tomcat 4
|
|
|
|
* Merge the configuration directives from web.xml file that
|
|
comes with the Java Servlet SAPI Module into your
|
|
Tomcat/conf/web.xml configuration file.
|
|
|
|
Make sure that the element ordering of the web.xml is legal
|
|
with Tomcat and put all the <servlet> declarations first,
|
|
followed by all the <servlet-mapping> declarations.
|
|
|
|
* Add
|
|
|
|
<welcome-file>index.php</welcome-file>
|
|
|
|
to the
|
|
|
|
<welcome-file-list>
|
|
...
|
|
</welcome-file-list>
|
|
|
|
block of your Tomcat/conf/web.xml configuration file.
|
|
|
|
4.) Test your installation by creating a test.php file in your
|
|
Tomcat/webapps/ROOT directory with
|
|
|
|
<?php phpinfo(); ?>
|
|
|
|
in it.
|
|
|
|
Access this file in your browser at
|
|
|
|
http://localhost:8080/test.php
|
|
|
|
and you should see the familiar output of phpinfo().
|
|
|
|
|
|
Installing PHP as a Generator into Apache's Cocoon2 Framework
|
|
|
|
1.) Build the Java Servlet SAPI Module as described above.
|
|
|
|
2.) Get the Cocoon2 source tree, either by CVS or from a release
|
|
archive; a binary distribution does not suffice. Copy the
|
|
phpsrvlet.jar file into your xml-cocoon2/lib/optional directory
|
|
and build Cocoon.
|
|
|
|
--
|
|
[1] http://jakarta.apache.org/tomcat/
|
|
[2] http://xml.apache.org/cocoon2/
|
|
[3] http://www.php.net/support.php
|