mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
d624b0d5eb
* origin/master: (26 commits) Micro optimization Drop unused INIT_STRING opcode Drop unused RAISE_ABSTRACT_ERROR opcode CT substitute unqualified true/false/null in namespaces Fix a couple compile warnings fix test filename one more test to illustrate transfer of an arbitrary data amount throug pipes fix tests on linux better test cleanup Use more readable inline functions increase the polling period to not to break existing behaviours updated NEWS Fixed bug #51800 proc_open on Windows hangs forever Fixed segfault Set an LDAP error code when failing ldap_bind due to null bytes Fix segmentation fault in debug_backtrace() Drop support for GMP 4.1 Make gmp_setbit and gmp_clrbit return values consistent removed *.dsw and *.dsp files Opcache compatibility for coalesce operator ... |
||
---|---|---|
.. | ||
apache_config.c | ||
config.m4 | ||
config.w32 | ||
CREDITS | ||
mod_php7.c | ||
php_apache.h | ||
php_functions.c | ||
php.sym | ||
README | ||
sapi_apache2.c |
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 recommend: 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