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

时间:2016-05-08 19:24:36

标签: apache2 ubuntu-14.04 http2

我想安装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不存在。

2 个答案:

答案 0 :(得分:13)

实际上,apache 2.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)[默认= N]?

     

按两次Y并继续。

检查您的mods-available文件夹,您将看到http2.load文件

$ sudo a2enmod http2

您将获得以下输出

  

启用模块http2。要激活新配置,您需要   运行:service apache2 restart

答案 1 :(得分:6)

  1. 将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 
    
  2. Apache版本应为2.4.25或更高版本。

    1. 从mod_http2

      启用它
      a2enmod http2 
      service apache2 restart
      
    2. 在您的网站上添加自签名或有效SSL以在您的服务器上启用http2 链接: - https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

    3. 向Apache2虚拟主机文件添加HTTP / 2支持。示例:

      <VirtualHost *:443>  
          Protocols h2 http/1.1 
          ServerAdmin you@your-site.com 
          ServerName your-site.com 
          ... 
      </VirtualHost>
      
    4. 并重启Apache2服务

      service apache2 restart
      
      1. 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 
        
      2. 现在,通过访问您服务器的域名或公共IP地址来测试您的配置,如下所示:https://server_domain_name_or_IP

        要检查 HTTP / 2 协议是否正常工作,请转到浏览器和网络部分中的检查元素,您可以检查http协议版本。