宝塔面板(https://www.bt.cn/)是一款简单好用的服务器管理面板,目前承诺永久免费。其Linux面板Apache尚未启用http2模块,最近研究了一下,折腾了好久终于成功启用,但自己安装的配置与官方默认配置中有所不同,而且面板后台也无法管理,于是想到从官方的安装脚本提取修改,加入自己修改的部分内容,其余全部按官方原始设置,这样就与面板无缝配合了。
测试了一下面板官方安装,发现其安装脚本会下载到 /www/server/panel/install ,Shell文件名为 apache.sh,将其下载修改,增加了openssl 1.02和nghttp2,修改apache编译配置,重新编译后即成功启用HTTP/2。
一、使用方法
1.如已安装apache,请先在面板停用并卸载apache,如果为全新安装 ,请用该脚本安装apache再安装PHP/Mysql/FTP等。
2.执行修改后的安装脚本:
可直接wget到主机上执行
wget -O apache_http2.sh https://cdn.qianrong.me/shell/apache_http2.sh sh apache_http2.sh
也可下载(链接)后自己修改一下后上传执行。
3.安装完后在httpd24.conf加入以下内容
LoadModule http2_module modules/mod_http2.so <IfModule http2_module> ProtocolsHonorOrder On Protocols h2 http/1.1 </IfModule>
4.启动Apache,给相关网站配置SSL。
注意如果之前已经配置了SSL,需要关闭再重新打开。然后重启即可。
5. 测试成功,用的是这个插件。 HTTP/2 and SPDY indicator
二、增加和修改的说明:
该安装脚本修改自宝塔linux面板的apache安装脚本。/www/server/panel/install/apache.sh
几处修改说明如下:
1.安装openssl 1.02
#安装openssl 1.02,为避免出现问题单独安装不覆盖升级,编译apache时需指定该版本
cd /usr/local/src wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz tar -zxf openssl-1.0.2l.tar.gz cd openssl-1.0.2l ./config --openssldir=/usr/local/openssl zlib-dynamic shared make && make test && make install #下面的第2个EOF需顶格,否则会出错 cat > /etc/ld.so.conf.d/openssl.conf <<EOF /usr/local/openssl/lib EOF ldconfig
2.安装nghttp2
cd /usr/local/src wget https://cdn.qianrong.me/nghttp2-1.22.0.tar.gz #官网下载地址很慢,使用的是我网站的镜像,不放心可替换为以下官方地址 #https://github.com/nghttp2/nghttp2/releases/download/v1.22.0/nghttp2-1.22.0.tar.gz tar -zxf nghttp2-1.22.0.tar.gz cd nghttp2-1.22.0 ./configure --prefix=/usr/local/nghttp2 make && make install
3.apache编译参数,主要为指定ssl,引入nghttp2,启用http2
./configure \ --prefix=${Setup_Path} \ --enable-mods-shared=most \ --enable-headers \ --enable-mime-magic \ --enable-proxy \ --enable-so \ --enable-rewrite \ --with-ssl=/usr/local/openssl \ --with-nghttp2=/usr/local/nghttp2 \ --enable-ssl \ --enable-deflate \ --with-pcre \ --with-included-apr \ --with-apr-util \ --enable-mpms-shared=all \ --with-mpm=prefork \ --enable-remoteip\ --enable-http2
其他如安装apache2.2则做了精简/删除
尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » 宝塔Linux面板Apache启用HTTP2模块Shell脚本