PHP v5.1 and v4.4 apache2handlers for Apache 2.2
The included 'apache2handler' dlls that ship with PHP v5.1 and PHP v4.4 -- 'php4apache2.dll' and 'php5apache2.dll' -- will not work with Apache 2.2.
The Apache2 'handlers' provided with the above versions of PHP have been compiled and linked against Apache 2.0 libs (libapr.lib, libaprutil.lib, libhttpd.lib) and header files (...\include) -- utilizing the Apache 2.0 API, which has changed under Apache 2.2.
"This release has been through extensive testing, including live at some of the world's busiest sites, and is now considered stable. This means that modules and applications developed for Apache 2.2.x will be both source- and binary-compatible with future 2.2.x releases. This release builds on and extends the Apache 2.0 API. Modules written for Apache 2.0 will need to be recompiled in order to run with Apache 2.2, but no substantial reworking should be necessary."
The error messages displayed when a user starts Apache 2.2 with an 'apache2handler' built for Apache 2.0 are...
"httpd.exe: Syntax error on line # of .../conf/httpd.conf: Cannot load .../php/php5apache2.dll into server: The specified module could not be found."
"httpd.exe: Syntax error on line # of .../conf/httpd.conf: Cannot load .../php/php4apache2.dll into server: The specified module could not be found."
An Apache 2.2 'handler' for PHP will not be provided until the release of PHP 5.2. Nor will new Apache 2.2 'handlers' make it into PHP versions 5.1 or 4.4.
You can download the following 'apache2handlers' that have been compiled [under the same compiler (VC++ 6.0) that official win32 php.net binaries are built with] and linked against Apache 2.2 libs and header files.
PHP 5.1 -- 'php5apache2_2.dll'
PHP 4.4 -- 'php4apache2_2.dll'
Other options [for PHP v5]...
- Build PHP 5.1.x yourself against Apache 2.2 codebase...
PHP Manual -- Building from Source
- Use PHP 5.2 [or 5.2-dev until 5.2 comes out] which includes 'php5apache2_2.dll'...
Download 'php5.2-win32-latest.zip' from http://snaps.php.net/
- You can also just copy 'php5apache2_2.dll' from snapshot PHP v5.2 to your PHP v5.1 directory -- instead of using the unreleased PHP v5.2 canidate.
For PHP v5 using the php5apache2_2.dll apache2handler...
LoadFile "/www/php5/php5ts.dll" LoadModule php5_module /www/php5/php5apache2_2.dll <IfModule php5_module> <Location /> AddType text/html .php .phps AddHandler application/x-httpd-php .php AddHandler application/x-httpd-php-source .phps </Location> </IfModule>
For PHP v4 using the php4apache2_2.dll apache2handler...
LoadFile "/www/php4/php4ts.dll" LoadModule php4_module /www/php4/php4apache2_2.dll <IfModule php4_module> <Location /> AddType text/html .php .phps AddHandler application/x-httpd-php .php AddHandler application/x-httpd-php-source .phps </Location> </IfModule>