看完之后这个答案,我决定将服务器上的 httpd 的 MPM 更改为 worker。但在编辑时/etc/sysconfig/httpd
,我注意到了此评论:
# The default processing model (MPM) is the process-based
# 'prefork' model. A thread-based model, 'worker', is also
# available, but does not work with some modules (such as PHP).
# The service must be stopped before changing this variable.
#
#HTTPD=/usr/sbin/httpd.worker
我可能理解错了,但它不是告诉我工人会不是能和 mod_php 一起使用吗?因为我现在就在用它。
该服务器运行CentOS 6.4和Apache 2.2。
答案1
不可以,因为 PHP 不是线程安全的,所以你会遇到神秘的错误和崩溃。
但是您可以将 worker-mpm 用于静态文件以及类似的php_fcgi
或仅用于 PHP 的另一个 httpd 实例的反向代理。
我使用的是后者 - 它允许我运行多个站点 - 所有站点在 CentOS 6 上具有不同的权限和配置。
答案2
据我所知,mod_php 不是线程安全的。