mirror of
https://github.com/php/php-src.git
synced 2024-10-20 16:02:44 +00:00
64 lines
1.8 KiB
Plaintext
64 lines
1.8 KiB
Plaintext
WHAT IS THIS?
|
|
|
|
It is an output filter for Apache 2.0.
|
|
|
|
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>
|
|
AddOutputFilter PHP
|
|
AddInputFilter PHP
|
|
</Files>
|
|
|
|
That's it. Now start bin/httpd.
|
|
|
|
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.
|
|
|
|
TODO
|
|
|
|
PHP functions like apache_sub_req (see php_functions.c)
|
|
Protocol handlers
|
|
Passing script data to engine without temporary file
|
|
Syntax Highlighter (relies on files as well)
|