Apache 2.7.24 不支援mod_http2 解決

網路上設定開mod_http2的教學,不外乎就是把模組打開,再加一條指令就好,可是我怎麼設http2就是沒有跑出來。後來去看了log

[http2:warn] [pid 3429] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive.

才發現有錯誤,google一下才知道MPM的prefork模式要換成event,要把PHP切換成PHP-FPM

/etc/init.d/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 
 /etc/init.d/apache2 start

把php的版本代號替換成現在在用的版本

測試一下http2

成功~~

至於上面有很多奇怪的英文,我也沒有很懂,但有找了一些資料,有興趣可以看

參考資料

Apache的三种MPM模式比较:prefork,worker,event

如何通俗地解释 CGI、FastCGI、php-fpm 之间的关系?

CGI、FastCGI和PHP-FPM关系图解

How to enable HTTP/2 support in Apache

修复Apache2 mpm prefork与http/2不兼容问题