如何使用 Apache 2.4.46 在 CentOS7 上启用 http2
Posted
技术标签:
【中文标题】如何使用 Apache 2.4.46 在 CentOS7 上启用 http2【英文标题】:How to enable http2 on CentOS7 with Apache 2.4.46 【发布时间】:2021-08-21 09:17:02 【问题描述】:我有 CentOS 7,带有 Apache 2.4.46。我已经完成了互联网上几乎所有可用的事情。我收到以下错误
mod_http2 不支持 mpm 模块 (prefork.c)。 mpm 确定在您的服务器中如何处理事物。 HTTP/2 有更多 在这方面的要求和当前选择的 MPM 将不会 做。这是一个建议性警告。您的服务器将继续工作, 但 HTTP/2 协议将处于非活动状态。
我的 apache 从 /usr/local/apache2/ 运行。
我已经看到了,我可能需要使用 php-fpm 模块来运行这个。
我已经在我的实时服务器上进行了更改,现在它有点卡住了。虽然对工作的影响很小,但我真的很想知道我做错了什么
【问题讨论】:
请阅读How to Ask 并提供更多信息。到目前为止,我们知道您做了 "something"(如“互联网上可用的一切”)并且只能告诉您做 "something else"(这一次是字面意思)。另请注意help center 和apache 标签描述。这似乎不是关于编程,而是关于配置。这类问题在 *** 上是无关紧要的,在 superuser.com 或 serverfault 上更合适。 【参考方案1】:您需要:
禁用 mod_mpm_prefork 禁用 mod_php(禁用 php 模块,无论它的名称如何,例如:libphp7) 启用 mod_mpm_event 启用 mod_http2 启用 mod_proxy 启用 mod_proxy_fcgi 启用 mod_setenvif 使用yum install php-fpm
安装PHP-FPM,或者您可能需要指定版本yum install php7-fpm
或php8-fpm
,然后在安装后启动PHP-FPM服务,使用systemctl start php-fpm
或php7-fpm
/ php8-fpm
。
将以下内容添加到 Apache 配置中:
<FilesMatch "*\.php">
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>
如果它作为 UNIX 套接字运行,则需要将其更改为:
<FilesMatch "*\.php">
SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost:9000"
</FilesMatch>
重启 Apache
【讨论】:
以上是关于如何使用 Apache 2.4.46 在 CentOS7 上启用 http2的主要内容,如果未能解决你的问题,请参考以下文章
基于Cent OS7搭建apache网站后的访问控制配置详解
Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.4.16 服务器在 localhost 端口 80