为什么Ubuntu 16.04上不存在apache2模块http2?

为什么Ubuntu 16.04上不存在apache2模块http2?,apache2,ubuntu-14.04,http2,Apache2,Ubuntu 14.04,Http2,我想安装htt2_模块。按照本文列出的步骤重新安装Ubuntu 14.04之后,我尝试启用刚刚运行的http2_模块 sudo a2enmod http2 但我得到:模块http2不存在 安装的apache版本是:apache/2.4.7 ,然后作为一种解决方法,我尝试添加以下存储库 sudo add-apt-repository ppa:ondrej/apache2 在使用sudo apt get update刷新并再次运行安装/启用http2的命令后,我会收到相同的错误。模块http2不

我想安装htt2_模块。按照本文列出的步骤重新安装Ubuntu 14.04之后,我尝试启用刚刚运行的http2_模块

sudo a2enmod http2
但我得到:模块http2不存在

安装的apache版本是:apache/2.4.7 ,然后作为一种解决方法,我尝试添加以下存储库

sudo add-apt-repository ppa:ondrej/apache2

在使用sudo apt get update刷新并再次运行安装/启用http2的命令后,我会收到相同的错误。模块http2不存在。

实际上,Apache2.4.17或更高版本支持http2模块(为了更好的稳定性,您应该至少使用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)[default=N]

同时按Y键并继续

检查您的mods可用文件夹,您将看到http2.load文件

$ sudo a2enmod http2
您将获得以下输出

启用模块http2。要激活新配置,您需要 运行:服务apache2重新启动

  • 将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。
    链接:-

  • 向Apache2虚拟主机文件添加HTTP/2支持。例如:

    <VirtualHost *:443>  
        Protocols h2 http/1.1 
        ServerAdmin you@your-site.com 
        ServerName your-site.com 
        ... 
    </VirtualHost>
    
  • HTTP/2上的Apache2不支持mpm_预工作模式,请将其更改为mpm_事件。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地址来测试配置,如下所示:


    若要检查HTTP/2协议是否工作,请转到浏览器中的“检查元素”,并在“网络”部分中检查HTTP协议版本

    还有一件事,这个过程将重置所有配置,因此如果需要,请保留备份。我遵循了与我在多个站点上发现的DnA答案类似的说明,但无论我做了什么,Chrome始终坚持使用http1.1。我终于找到了一个页面(),上面规定了安装php fpm,这里也描述了这一点,最后一切都顺利完成了。这应该是目前我所接受的答案。当然,将来情况会有所改变,一旦Ubuntu采用本机支持的http2(Apache项目认为http2支持在这个时候是稳定的,所以希望那一天已经足够了。)是的@JohnRix Ubuntu不支持本机支持的http2,希望我们很快就能得到稳定的版本。
    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