亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

使用高版本系統安裝低版本php出現curl請求異常的解決辦法

標簽:
PHP 運維

最近因为centos停止维护,遂迁移系统的时候,优先考虑使用ubuntu22.04,alibaba cloud 3以及openeurl22.03系统,旧项目因为没人维护,所以环境还是用的php5.6,结果在新系统上编译安装php5.6的时候,表面看着一切正常,实际在使用中php程序在调用curl扩展去访问https站点(比如微信接口)的时候,会出现502错误,导致系统无法使用。

开始排查,感觉应该是openssl版本问题,重新编译openssl,并在php5.6编译的时候,指定对应的openssl版本进行编译,

file

结果尝试各种版本,要嘛无法安装成功,直接报错,要嘛可以安装成功,但是同样在程序使用curl的时候报错

经过研究,发现是由于curl对应的openssl版本太高导致的,curl调用的openssl跟安装php时候,编译参数里面使用的–with-openssl并没有关系,通过phpinfo查看curl扩展的时候,在curl模块中,有个ssl version是指定了curl使用的openssl版本的

file

于是决定重新编译一个curl,并指定使用openssl,j结果也是编译不成功,通过检查以前centos7下正常服务器的配置发现,发现旧版的curl扩展ssl vsersion都是使用nss,于是改变方式,重新编译curl的时候,指定ssl为nss,然后再通过扩展的方式安装进去,经过测试,总算是成功解决该问题

file

整理步骤如下:

#重新编译php5.6.40,先不添加curl扩展,去掉--with-curl 参数,后续再单独添加curl扩展
cd php-5.6.40/
./configure --prefix=/usr/local/webserver/php5.6 --with-config-file-path=/usr/local/webserver/php5.6/etc --enable-fpm --with-zlib --with-openssl --with-mhash --enable-bcmath --enable-mbstring --with-mysql --with-mysqli --with-gd --enable-gd-native-ttf --enable-soap --with-jpeg-dir --with-freetype-dir --with-png-dir --enable-sockets --with-openssl
make ZEND_EXTRA_LIBS='-liconv'
make install

#下载并安装curl到指定目录,安装完成后,curl7.62版本,被单独安装到了/usr/local/curl7.62目录
cd curl-7.62.0
./configure --prefix=/usr/local/curl7.62 -with-nss
make
make install

#进入php5.4对应的安装包下的ext/curl目录
#cd ../php-5.6.40/ext/curl/
/usr/local/webserver/php5.6/bin/phpize
./configure --prefix=/usr/local/curl7.62 -with-nss
make 
make install
 
#安装完后,添加对应的扩展到php.ini
vi /usr/local/webserver/php5.6/conf/php.ini
#添加下面配置
extension=curl.so

#重新reload或是重启下php
/etc/init.d/php-fpm56 restart

本文由博客一文多发平台 OpenWrite 发布!

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Linux系統工程師
手記
粉絲
0
獲贊與收藏
0

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消