- PHP(从 5.2 开始)在 Linux/UNIX 上是线程安全的吗?
- 是否可以将它与 Apache Worker-MPM 或 Event-MPM 一起使用?
到目前为止,我收集的事实尚无定论:
- 大多数发行版中包含的默认二进制文件都禁用了 ZTS,所以我知道,我必须重新编译它们。
- 理论上,启用 ZTS 的 Zend Engine(核心 PHP)是线程安全的。
- 据说有些模块可能不是线程安全的,但我没有找到任何模块列表是或不是。
- PHP FAQ状态与上面几乎相同。
你有什么经验?
到目前为止,我收集的事实尚无定论:
你有什么经验?
我知道 gettext 和set_locale不是线程安全的。PHP 不应与线程 MPM 一起使用。
请参阅在哪里可以获得编译某些可选 PHP 扩展所需的库?获取线程安全和非线程安全扩展的列表(* 标记的不是线程安全的,其他是)。
一个更好的问题可能是,“如果使用 MPM,以下 PHP 代码是否会触发访问冲突?” 或者,“您是否遇到过可能归因于使用以下函数的并发问题的奇怪行为?”
否则,就是俄罗斯轮盘赌。如果您使用的是一些打包的应用程序,它现在可能工作得很好,但是从现在开始一个月后,当应用程序的新版本出现时就会中断。
我强烈建议不要将 MPM 与 PHP 一起使用。但是,如果您有一些小代码要运行,您可以发布它,我们可以告诉您是否会遇到陷阱。