今天,我每周都会对我的 Debian Web 服务器进行一次升级。
我收到了一条消息:
apache2 (2.4.25-3+deb9u5) stretch; urgency=medium * This package upgrades mod_http2 to the version from apache2 2.4.33. This fixes a lot of bugs and some security issues, but it also removes the support for using HTTP/2 when running with mpm_prefork. HTTP/2 support is only provided when running with mpm_event or mpm_worker. -- Stefan Fritsch <[email protected]> Sat, 02 Jun 2018 09:51:46 +0200
这让我很惊讶,因为我在我的服务器上使用 HTTP/2。我测试了我的服务器SSL实验室,HTTP/2 确实消失了。
假设我使用官方的 Apache 和 PHP 7.0 包,我该如何解决这个问题?
答案1
就我而言,我应用了以下命令来root
使其再次运行:
# enable these mods
a2enmod proxy_fcgi setenvif
# disable standard PHP module
a2dismod php7.3
# if you don't have FPM already installed
apt-get install php7.3-fpm
# query the MPM
a2query -M
如果您看到prefork
或worker
,则需要继续执行以下步骤。如果您看到event
,则可以跳过接下来的 2 个步骤。
# disable the prefork / worker MPM (only one MPM can run at a time)
a2dismod mpm_prefork mpm_worker
# enable event MPM
a2enmod mpm_event
# start and enable the FastCGI Process Manager
systemctl start php7.3-fpm && systemctl enable php7.3-fpm
# enable the FastCGI Process Manager configuration
a2enconf php7.3-fpm
# start Apache2 web server
systemctl restart apache2
经测试可在 GNU/Linux Debian 10 Buster 上运行2019年4月11日。
现在,您终于可以通过 ALPN 启用 HTTP/2。
您可以对此文件中的所有站点全局执行此操作:
/etc/apache2/apache2.conf
使用以下指令:
Protocols h2 http/1.1