PHP7上的Apache上的HTTP / 2

经过一番研究,我无法find答案:如何更新 Apache / httpd到最新版本在我的VPS上使用HTTP / 2协议。 我使用基于Apache的PHP7和我的服务器 – CentOS 7。

CentOS上没有软件包更新默认回购。

[root@vps270238 ~]# httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Nov 19 2015 21:43:13 

我真的想保持我的实际设置和虚拟主机。

您需要Apache 2.4.18或更高版本才能启用HTTP / 2,尽pipe一些人推荐从最初的Apache 2.4.23开始,在mod_http2中进行大量修改(以下将进一步讨论)。 这也需要一些第三方软件(nghttp2和最新版本的openssl)

Centos的默认回购是基于红帽,它优先考虑稳定性而不是最新的function。 所以他们往往落后于版本(虽然保持最新的安全补丁 – 即使他们离开的版本号相同)。

此外,mod_http2模块仍然有很大的变化( 几乎每天都在看它的发行版 !),所以还是相当尖锐的 – 虽然在我运行的几个月里没有任何稳定性问题。

出于这个原因,我个人认为在Apache上使用http / 2的最好方法是从源代码编译最新版本。 这当然不是没有风险的。 一开始,你会失去上面提到的容易更新的安全补丁的保护,因此可能需要更频繁地升级以保持最高级别(我认为没有坏事)。 另外,你应该在安装之前validation源代码(特别是对于像Apache这样的应用程序,至less在初始阶段以root身份运行)。 所以这不是一个轻率的决定。

说,如果你想继续,从源代码安装并不像听起来那么困难。 我有一个关于如何做的博客文章 ,也使用Centos。 我不使用PHP所以不知道如果你需要任何额外的编译选项。

还要注意,默认情况下,Apache将安装到/ usr / local / apache2。 这是好的,因为它允许你保持原来的安装(因为你需要回滚),但是这意味着你需要将任何configuration复制到/ usr / local / apache2 / conf,停止旧的Apache(包括任何启动脚本) ,并从新的位置重新启动新的Apache。

小build议。 使用nginx作为反向代理,并从中启用httpd / 2。 你会保持所有的虚拟主机和htaccess。