配置宝塔php curl 支持http/2 发送苹果apns消息推送 本文共有2196个字,关键词:http2、http/2、apns、apple推送、苹果推送、php curl、curl编译、nghttp2 由于宝塔面板默认的php编译的curl未加入http2的支持,如果服务需要使用apns推送等需要http2.0的访问就会失败,所以重新编译php让其支持http2.0 编译方法: ### 一、安装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 #查看nghttp2版本 测试时安装1.19.0版本顺利通过 nghttpx -V ``` 注意:新版本的nghttp2需要python3.8以上版本 如果系统未安装phthon3.8以上版本的,请先行安装,安装方法如下: 1、下载安装包(以python3.8.8为例) ``` wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz tar -zxvf Python-3.8.8.tgz ``` 2、编译安装Python ``` mkdir /usr/local/python3 #创建编译安装目录 cd Python-3.8.3 ./configure --prefix=/usr/local/python3 make && make install 3、建立软链接,未完成这一步会找不到python3 #添加python3的软链接 ln -s /usr/local/python3/bin/python3 /usr/bin/python ``` ### 二、安装Curl curl可以通过官网或github下载 github: https://github.com/curl/curl/releases 官网:https://curl.haxx.se/download/curl-7.70.0.tar.gz ``` wget https://curl.haxx.se/download/curl-7.73.0.tar.gz tar -zxf curl-7.73.0.tar.gz cd curl-7.73.0 rm -rf /usr/local/curl ./configure --prefix=/usr/local/curl --enable-ares --without-nss --with-ssl=/usr/local/openssl --with-nghttp2=/usr/local/nghttp2/ #配置时,可以看到nghttp2 enable就说明是已经开启 make make install #删除安装包,可选 -> cd .. -> rm -f curl-7.73.0.tar.gz -> rm -rf curl-7.73.0 #查看版本是否正确 -> curl -V curl 7.73.0 (x86_64-pc-linux-gnu) libcurl/7.73.0 OpenSSL/1.0.2k-fips zlib/1.2.7 nghttp2/1.40.0 Release-Date: 2020-10-14 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets #看到http2是说明安装正常 ``` ### 三、安装完成后在宝塔后台重新编译PHP 编译时最好是选择下自定义模块增加以下参数 ``` --with-curl=/usr/local/bin/curl ``` ![](https://blog.ww4k.com/usr/uploads/2022/07/456164901.png) 查看是否生效 ``` -> php --ri curl|grep http2 HTTP2 => Yes ``` 安装时遇到一个问题就是curl版本跟php版本有对应关系。如果版本不对应,即使curl编译成功,并且也支持http2,但是编译php之后,不生效。具体版本对应关系目前不太清楚。安装中测试了如下关系。 php7.3 => curl 7.73.0 启用成功 php7.4 => curl 7.74.0 启动不生效 php7.0 7.2 7.3 7.4 => curl 7.68.0 7.70.0均不生效。 据此推测应该php7.4 需要更高一些的curl版本才行。有空后期再试试。 × yihong (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 码农心得 2022-07-25 评论 2312 次浏览