查看是否支持http2
http2未开启
注意: 宝塔php版本不同,curl路径不同,具体得看php.sh文件,有3个install_curl方法,进行分析
检查curl是否有开启http2
如果没有, 手动编译curl
先查看是否有nghttp2
查找libnghttp2, 我的在 /usr/local/lib目录可以看到有libnghttp2.so文件
如果没有,可以安装nghttp2
安装nghttp2
git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make
make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/custom-libs.conf
ldconfig
ldconfig -p| grep libnghttp2
以下是从install_curl提取出来的安装curl的命令,执行以下命令重装curl
注意: 宝塔php版本不同,curl路径不同,具体得看php.sh文件,有3个install_curl方法,进行分析
wget https://download.bt.cn/src/curl-7.70.0.tar.gz
tar -xvf curl-7.70.0.tar.gz
cd curl-7.70.0
rm -rf /usr/local/curl
./configure --prefix=/usr/local/curl --enable-ares --without-nss --with-ssl=/usr/local/openssl --with-nghttp2=/usr/local
make
make install
再次查看是否开启http2
重启php,查看phpinfo,curl中http2是否开启
大概率解决了
重装php方法 — 以下只做记录,不要使用:
注意: 会重装PHP,线上环境先切换到另一个php版本,然后等安装完后再切换回来
先查看是否有nghttp2
找到宝塔php安装文件
搜索curl,找到3个curl安装函数,在编译的时候加上 –with-nghttp2=/usr/local
找到php版本对应curl扩展安装位置,宝塔在: /usr/local/curl/bin
删除bin目录下的curl可执行文件
命令行进入php.sh所在目录,执行以下命令重装php
bash php.sh install 7.2
安装完后查看phpinfo
参考来源: