我在我的PC上安装了Ubuntu17.04,用PHP 7安装了Apache来进行一些开发,但是当我尝试在我的Apache上安装HTTP2时,它就不能工作了,因为它不是为运行mpm-prefork的Apache安装的,而且我不能禁用mpm-prefork,因为它被PHP7使用,我有什么想法可以让它工作吗?
谢谢。
发布于 2017-10-15 23:21:10
预叉模型对HTTP施加了相当多的限制,即使没有HTTP/2,但是对于HTTP/2,它阻止了使用HTTP/2的许多特性。由于每个请求都发生在一个单独的进程中,并且没有多线程,Apache无法对它们进行复用(在同一个TCP连接上处理多个请求),除非它相当大程度地改变了预叉的工作方式,而它选择了不这样做。因此,HTTP/2支持仅限于每次使用pre叉时的单个请求。
(这在这里有记录)
将PHP与web服务器集成的一种很好的现代方法是使用PHP (PHP的内置FastCGI进程管理器),并让web服务器将PHP请求转发给它,并接收它们的响应。然后,您可以使用多线程web服务器(如Apache )和辅助MPM,也可以使用基于事件的web服务器(比如带有事件MPM的Apache )或nginx (这在HTTP/2方面尤其出色,因为它能够以很少的内存打开数千个连接)。事实上,这可能是在nginx中使用PHP的最常见的方式,而且我以前也看到过在Apache2上使用它是出于安全考虑(例如有不同的PHP应用程序作为单独的用户运行)。支持HTTP/2似乎也是一个不错的理由。
有许多指南来设置web服务器和PHP来使用PHP。
https://askubuntu.com/questions/965235
复制相似问题