Annotation of embedaddon/php/sapi/apache2handler/README, revision 1.1
1.1 ! misho 1: WHAT IS THIS?
! 2:
! 3: This module exploits the layered I/O support in Apache 2.0.
! 4:
! 5: HOW DOES IT WORK?
! 6:
! 7: In Apache 2.0, you have handlers which generate content (like
! 8: reading a script from disk). The content goes then through
! 9: a chain of filters. PHP can be such a filter, so that it processes
! 10: your script and hands the output to the next filter (which will
! 11: usually cause a write to the network).
! 12:
! 13: DOES IT WORK?
! 14:
! 15: Currently the issues with the module are:
! 16: * Thread safety of external PHP modules
! 17: * The lack of re-entrancy of PHP. due to this I have disabled the 'virtual'
! 18: function, and tried to stop any method where a php script can run another php
! 19: script while it is being run.
! 20:
! 21:
! 22: HOW TO INSTALL
! 23:
! 24: This SAPI module is known to work with Apache 2.0.44.
! 25:
! 26: $ cd apache-2.x
! 27: $ cd src
! 28: $ ./configure --enable-so
! 29: $ make install
! 30:
! 31: For testing purposes, you might want to use --with-mpm=prefork.
! 32: (Albeit PHP also works with threaded MPMs. See Thread Safety note above)
! 33:
! 34: Configure PHP 4:
! 35:
! 36: $ cd php-4.x
! 37: $ ./configure --with-apxs2=/path/to/apache-2.0/bin/apxs
! 38: $ make install
! 39:
! 40: At the end of conf/httpd.conf, add:
! 41:
! 42: AddType application/x-httpd-php .php
! 43:
! 44: If you would like to enable source code highlighting functionality add:
! 45:
! 46: AddType application/x-httpd-php-source .phps
! 47:
! 48: That's it. Now start bin/httpd.
! 49:
! 50: HOW TO CONFIGURE
! 51:
! 52: The Apache 2.0 PHP module supports a new configuration directive that
! 53: allows an admin to override the php.ini search path. For example,
! 54: place your php.ini file in Apache's ServerRoot/conf directory and
! 55: add this to your httpd.conf file:
! 56:
! 57: PHPINIDir "conf"
! 58:
! 59: DEBUGGING APACHE AND PHP
! 60:
! 61: To debug Apache, we recommened:
! 62:
! 63: 1. Use the Prefork MPM (Apache 1.3-like process model) by
! 64: configuring Apache with '--with-mpm=prefork'.
! 65: 2. Start httpd using -DONE_PROCESS (e.g. (gdb) r -DONE_PROCESS).
! 66:
! 67: If you want to debug a part of the PHP startup procedure, set a
! 68: breakpoint on 'load_module'. Step through it until apr_dso_load() is
! 69: done. Then you can set a breakpoint on any PHP-related symbol.
! 70:
! 71: TODO
! 72:
! 73: PHP functions like apache_sub_req (see php_functions.c)
! 74: Source Code Highlighting
! 75: Protocol handlers
! 76:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>