我想安装 htt2_module。按照此 link 中列出的步骤全新安装 Ubuntu 14.04 后,我尝试启用刚刚运行的 http2_module
sudo a2enmod http2
但我得到:模块 http2 不存在!
安装的apache版本为:Apache/2.4.7 ,然后作为解决方法,我尝试使用此 link 添加以下存储库
sudo add-apt-repository ppa:ondrej/apache2
在使用 sudo apt-get update 刷新后,再次运行安装/启用 http2 的命令,我得到了同样的错误。模块 http2 不存在。
实际上,http2 模块在 apache 2.4.17 或更高版本上受支持(为了更好的稳定性,您应该至少使用 2.4.23)但是 Ubuntu 16.04 或 14.04 的默认 apache 低于最低要求,因此为了升级您的 apache 按照以下步骤:
$ sudo add-apt-repository -y ppa:ondrej/apache2
$ sudo apt-key update
$ sudo apt-get update
然后运行
$ sudo apt-get --only-upgrade install apache2 -y
在这里你会被提示两次:
*** apache2.conf (Y/I/N/O/D/Z) [默认=N] ?
两次按 Y 并继续。
检查您的 mods-available 文件夹,您将看到 http2.load 文件
$ sudo a2enmod http2
你会得到以下输出
启用模块http2。要激活新配置,您需要 运行:service apache2 restart
将 Apache 升级到最新版本
apt-get install software-properties-common python-software-properties
add-apt-repository ppa:ondrej/apache2
apt-get update -y
apt-get upgrade -y
apt-get install apache2 -y
apache2 -v
Apache 版本应为 2.4.25 或更高版本。
从 mod_http2 启用它
a2enmod http2
service apache2 restart
将自签名或有效的 SSL 添加到您的网站以在您的服务器上启用 http2。
链接:-https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
向 Apache2 虚拟主机文件添加 HTTP/2 支持。示例:
<VirtualHost *:443>
Protocols h2 http/1.1
ServerAdmin [email protected]
ServerName your-site.com
...
</VirtualHost>
并重启 Apache2 服务
service apache2 restart
HTTP/2 上的 Apache2 不支持 mpm_prefork 模式,将其更改为 mpm_event。PHP 版本应为 php5.6 或更高版本。
service apache2 stop
apt-get install php7.1-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
a2dismod php7.1
a2dismod mpm_prefork
a2enmod mpm_event
service apache2 start
现在通过访问服务器的域名或公共 IP 地址来测试您的配置:https://server_domain_name_or_IP
要检查 HTTP/2 协议是否正常工作,请转到浏览器中的检查元素,在网络部分中,您可以检查 http 协议版本。
我认为只在 Ubuntu 16.04 或 Ubuntu 14.04 上升级 apache2 是不稳定的解决这个问题,直到你将操作系统升级到最低 ubuntu 18.04。在我的情况下,升级 apache2 后,它只显示无法解决的异常,直到我重新安装 ubuntu 18.04 以启用 HTTP/2 模块。
我希望这有帮助。