据说PHP5不建议和Apache的 worker MPM 搭配使用,但之前就是拿 PHP 5.2.6 + Apache 2.2.4 worker MPM 来跑服务,效果貌似挺好。
后来重新编译了一次 PHP 之后 Apache 就报错了:Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. Pre-configuration failed!
网上通常说的使用 --with-experimental-zts 参数以及 --enable-maintainer-zts 参数统统试了一遍,结果编 PHP 的时候就通不过了。只有改成使用 prefork MPM。
困扰了N久,最后才发现是因为重编 PHP 的时候加了 --with-openssl 把openssl 模块加进去了的缘故,去掉这个模块就又可以正常与 worker MPM 搭配了。
来源:http://blog.csdn.net/phphot/article/details/2796776
解决:重新编译Apache,使用prefork兼容模式,详细参考http://httpd.apache.org/docs/2.2/mpm.html
./configure --prefix=/usr/local/apache2 --enable-module=shared --with-mpm=prefork