Magento 是线程安全的吗?

Posted

技术标签:

【中文标题】Magento 是线程安全的吗?【英文标题】:is Magento thread-safe? 【发布时间】:2011-09-02 15:28:16 【问题描述】:

是否有人将 Magento 与 Apache worker MPM 一起使用?

我已经阅读了关于使用 worker 而不是 prefork 的稳定性和安全性的相互矛盾的报告,但也读到 worker 比 prefork 快得多。

【问题讨论】:

【参考方案1】:

php5 是线程安全的,但 PHP 扩展并非都是线程安全的。因此,在 worker-mpm 上运行 PHP 应用程序被认为是有害的。而且 Magento 是一个 PHP 应用程序,就像其他任何应用程序一样,您可能在某处使用了一些 PHP 扩展(GD、Xml 等)并且您无法测试它的线程稳定性(真的很难测试)。

但是你可以做的是使用 apache 作为 worker(实际上处理了更多的 HTTP 请求,对所有静态文件都非常有用),并将 PHP 从 Apache 中推出(所以没有 mod_php)。

为此,您必须将 PHP 与 fcgidphp-fpm 一起使用,这是现代版的 cgi 简而言之。

【讨论】:

谢谢,非常有帮助。那么Apache是​​在运行快速cgi,然后是运行php?这如何改变线程的安全性? @dbcn: 使用 fcgid 进程,你不会处于线程模式,php-fpm 会创建多个 PHP 进程,每个进程会在死前处理多个请求,但一次只能处理一个请求, AFAIK 没有线程,所以没有线程安全问题。所以这并不是关于 Magento 线程安全的真正回应,但验证 magento 的线程安全以及自定义 magento 中使用的所有代码是一个复杂得多的问题:-)

以上是关于Magento 是线程安全的吗?的主要内容,如果未能解决你的问题,请参考以下文章

HashMap是线程安全的吗?如何实现线程安全?

lua引擎本身是线程安全的吗

列表是线程安全的吗?

+= 运算符在 Python 中是线程安全的吗?

Spring框架中的Bean是线程安全的吗?如果线程不安全,要如何处理?

libgcrypt 是线程安全的吗?