我试图启用我正在运行的http2
模块,但似乎不起作用。Apache/2.4.29
Ubuntu 16.04
我确实喜欢这个:
sudo a2enmod http2
然后通过添加以下项单独激活:
Protocols h2 http/1.1
我也正在运行mpm_prefork
模块,这是否会导致问题?http2
如果是,那么可以运行什么替代方案mpm_prefork
?
还有一件事,我正在运行共享服务器,它只允许运行 PHP。我正在检查 suPHP,但他们的网站上说:
suPHP 不再维护,并且不会收到任何进一步的更新,甚至安全补丁。
答案1
答案2
我解决了,我的情况是,使用 PHP、Python、Django 和 Apache2 直接/代理使用,我无法使用 http2。然后找出问题并按如下方式解决
apachectl stop
apt-get install php7.0-fpm # Install the php-fpm from your PHP repository. This package name depends on the vendor.
a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm # Again, this depends on your PHP vendor.
a2dismod php7.0 # This disables mod_php.
a2dismod mpm_prefork # This disables the prefork MPM. Only one MPM can run at a time.
a2enmod mpm_event # Enable event MPM. You could also enable mpm_worker.
apachectl start
根据您所在的地区,您需要正确的 php 版本来设置,在我的例子中是 php7.0。如果您没有 PHP,请避免遵循与 php 相关的步骤。
注意:mpm_prefork 与 http2 配合不好,性能也不好。我个人建议使用 mpm_event 或 worker
按照上述步骤设置后,我立即获得了 H2 协议。欢迎在评论中提出您的建议