I have had many conversations with people who believe that Apache 2.0 is a good server to run PHP under and never had enough ammunition to answer back at them. Well now thanks to Simon Willison I have it:
I finally found the answer today in this comment buried on Slashdot. It seems that one of the key features of Apache 2 is the new threaded worker module which uses threads to serve more requests more efficiently than 1.3’s multi-process based server. While the core Zend engine of PHP is thread-safe many of the critical libraries that PHP relies on for its advanced functionality (image processing, database connectivity and so forth) are not, and are unlikely to become so any time in the future. In a threaded environment PHP is likely to suffer from all kinds of unpredictable bugs. Apache 2 can be run in traditional 1.3-style prefork mode but doing so greatly reduces its advantages over 1.3. Combined with the lack of heavy duty testing on Apache 2 and the fact that the 1.3 series will continue to be supported for a long time to come it’s clear why PHP team are unwilling to recommend PHP and Apache 2 in a production environment.
This makes me wonder about all these so called enterprise ready Linux Distro’s that ship PHP in Apache 2.0 as a stable solution.