2000-10-27 15:03:53 +00:00
|
|
|
WHAT IS THIS?
|
|
|
|
|
2001-02-28 14:19:15 +00:00
|
|
|
This module exploits the layered I/O support in Apache 2.0.
|
2000-10-27 15:03:53 +00:00
|
|
|
|
|
|
|
HOW DOES IT WORK?
|
|
|
|
|
|
|
|
In Apache 2.0, you have handlers which generate content (like
|
|
|
|
reading a script from disk). The content goes then through
|
|
|
|
a chain of filters. PHP can be such a filter, so that it processes
|
|
|
|
your script and hands the output to the next filter (which will
|
|
|
|
usually cause a write to the network).
|
|
|
|
|
|
|
|
DOES IT WORK?
|
|
|
|
|
|
|
|
It is experimental as interfaces in Apache 2.0 might change in the
|
|
|
|
future.
|
|
|
|
|
|
|
|
HOW TO INSTALL
|
|
|
|
|
|
|
|
Get the latest Apache 2.0 alpha or the CVS code and install it.
|
|
|
|
|
|
|
|
$ cd apache-2.x
|
|
|
|
$ cd src
|
|
|
|
$ ./configure --enable-so
|
|
|
|
$ make install
|
|
|
|
|
|
|
|
For testing purposes, you might want to use --with-mpm=prefork.
|
|
|
|
(Albeit PHP also works with threaded MPMs.)
|
|
|
|
|
|
|
|
Configure PHP 4:
|
|
|
|
|
|
|
|
$ cd php-4.x
|
|
|
|
$ ./configure --with-apxs2=/path/to/apache-2.0/bin/apxs
|
|
|
|
$ make install
|
|
|
|
|
|
|
|
At the end of conf/httpd.conf, add:
|
|
|
|
|
|
|
|
<Files *.php>
|
2001-02-28 14:03:58 +00:00
|
|
|
SetOutputFilter PHP
|
|
|
|
SetInputFilter PHP
|
2000-10-27 15:03:53 +00:00
|
|
|
</Files>
|
|
|
|
|
|
|
|
That's it. Now start bin/httpd.
|
|
|
|
|
2000-11-11 18:24:27 +00:00
|
|
|
DEBUGGING APACHE AND PHP
|
|
|
|
|
|
|
|
To debug Apache, we recommened:
|
|
|
|
|
|
|
|
1. Use the Prefork MPM (Apache 1.3-like process model) by
|
|
|
|
configuring Apache with '--with-mpm=prefork'.
|
|
|
|
2. Set the variable "ONE_PROCESS" to 1 and export it before
|
|
|
|
starting Apache/a debugger.
|
|
|
|
|
|
|
|
If you want to debug a part of the PHP startup procedure, set a
|
|
|
|
breakpoint on 'load_module'. Step through it until apr_dso_load() is
|
|
|
|
done. Then you can set a breakpoint on any PHP-related symbol.
|
|
|
|
|
2000-10-27 15:03:53 +00:00
|
|
|
TODO
|
|
|
|
|
|
|
|
PHP functions like apache_sub_req (see php_functions.c)
|
|
|
|
Protocol handlers
|
|
|
|
Passing script data to engine without temporary file
|
2000-12-11 08:05:53 +00:00
|
|
|
Syntax Highlighter (relies on files as well)
|