Magento是线程安全的吗?

9

有人在使用Apache worker MPM与Magento吗?

我读到了使用worker而不是prefork的稳定性和安全性方面的矛盾报告,但也读到了worker比prefork快得多的报道。

1个回答

10

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

但你可以做的是将Apache用作worker(处理更多的HTTP请求,对于所有静态文件非常有用),然后将PHP从Apache中分离出来(因此不使用mod_php)。

为此,你需要使用带有fcgidphp-fpm的PHP,这是几句话说出来的现代版本cgi。


谢谢,非常有帮助。那么Apache是在运行FastCGI,然后再运行PHP吗?这会如何改变线程的安全性? - dbcn
2
@dbcn:对于 fcgid 进程而言,您不会处于线程模式,php-fpm 将创建多个 PHP 进程,每个进程在死亡之前将服务多个请求,但一次只有一个请求,在我所知道的情况下没有线程。因此,这不是关于 Magento 线程安全的回应,但验证自定义 Magento 中使用的所有代码和 Magento 的线程安全性要复杂得多 :-) - regilero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接