summaryrefslogtreecommitdiff
path: root/sapi/apache2handler/README
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /sapi/apache2handler/README
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'sapi/apache2handler/README')
-rw-r--r--sapi/apache2handler/README76
1 files changed, 76 insertions, 0 deletions
diff --git a/sapi/apache2handler/README b/sapi/apache2handler/README
new file mode 100644
index 0000000..5cbd1b9
--- /dev/null
+++ b/sapi/apache2handler/README
@@ -0,0 +1,76 @@
+WHAT IS THIS?
+
+ This module exploits the layered I/O support in 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?
+
+ Currently the issues with the module are:
+ * Thread safety of external PHP modules
+ * The lack of re-entrancy of PHP. due to this I have disabled the 'virtual'
+ function, and tried to stop any method where a php script can run another php
+ script while it is being run.
+
+
+HOW TO INSTALL
+
+ This SAPI module is known to work with Apache 2.0.44.
+
+ $ 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. See Thread Safety note above)
+
+ 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:
+
+ AddType application/x-httpd-php .php
+
+ If you would like to enable source code highlighting functionality add:
+
+ AddType application/x-httpd-php-source .phps
+
+ That's it. Now start bin/httpd.
+
+HOW TO CONFIGURE
+
+ The Apache 2.0 PHP module supports a new configuration directive that
+ allows an admin to override the php.ini search path. For example,
+ place your php.ini file in Apache's ServerRoot/conf directory and
+ add this to your httpd.conf file:
+
+ PHPINIDir "conf"
+
+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. Start httpd using -DONE_PROCESS (e.g. (gdb) r -DONE_PROCESS).
+
+ 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)
+ Source Code Highlighting
+ Protocol handlers
+