mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-08 01:37:30 +00:00
* origin/PHP-5.6: (41 commits) fix crash in MINFO when no mysqlnd plugins are loaded backported some ext/intl tests from 5.6 into 5.4 test fixes for ICU 53.1 Fixed bug #67033 Remove reference to Windows 95 fix NEWS Fixed bug #64604 Fix #66562: Consistency bug where curl_multi_getcontent behaves different from curl_exec Fix bug #66482, replace wrong item name 'priority' with 'process.priority' in php-fpm.conf Fix windows build Fix bug #66721 fix apr_psprintf format string frome0df4e3dbaFixed bug #67024 - getimagesize should recognize BMP files with negative height Bug #66840: Fix broken build when extension built separately Reverted to5a0da281e5Discussion: http://news.php.net/php.cvs/76836 Forgot title in phpt for bug #67064 Updated NEWS Fix bug #67064 in a BC safe way You can use an optional parameter now when implementing the Countable interface to get the $mode passed to count(). Added UPGRAING notice for bug #66015 in BC break section Add new zend_hash_* APIs to UPGRADING.INTERNALS Add str_* macros to UPGRADING.INTERNALS ... Conflicts: Zend/zend_compile.c Zend/zend_execute_API.c Zend/zend_language_parser.y ext/mysqli/mysqli.c ext/mysqlnd/mysqlnd.c ext/mysqlnd/mysqlnd.h ext/mysqlnd/mysqlnd_ps.c ext/mysqlnd/mysqlnd_result.c ext/mysqlnd/mysqlnd_result.h ext/mysqlnd/mysqlnd_structs.h ext/mysqlnd/mysqlnd_wireprotocol.c ext/mysqlnd/mysqlnd_wireprotocol.h ext/opcache/zend_accelerator_util_funcs.c ext/spl/spl_observer.c ext/standard/array.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