AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] [CP原创教程]解决amh面板使用curl ssl https 时nginx报502的错误... |
|
---|---|
Captain |
Captain 发表于 2014-04-21 02:04:08
本帖最后由 Captain 于 2014-4-21 02:17 编辑
注意:教程是php5.2环境下的,5.3若出现同样问题,同学们也可以依葫芦画瓢,举一反三 教程目的:由于客户要用到QQ互联、微博互联、百度登录互联等其他帐号互联 php5.3可以正常curl到https的数据,但是由于客户是老程序,必须要用zend,所以装了php5.2.17p1(教程http://amysql.com/bbs/forum.php?mod=viewthread&tid=1015) php5.2.17p1+zend+eAccelerator+兼容模式都很顺利 但是在此环境下做curl 获取ssl https 时nginx一直出现502错误,查看phpinfo和探针,明显是支持的curl和openssl的,而且还是较新的版本 在调整了niginx和php-fpm参数多次完全无效 解决:通过升级curl版本解决curl ssl https 时nginx报502的错误问题 查阅很多资料(比如论坛的http://amysql.com/bbs/post-646-1-1.htm),怀疑系统是centos6.5 64bit内核(2.6.32-431.11.2.el6.x86_64)下,在安装过程或者本身程序造成的curl或者openssl版本不兼容的问题 接下来着手解决,重新编译安装curl然后编译php5.2.17 一、重新编译安装新版本的curl,机器上原来的版本是curl 7.19.7,这里安装的是7.35 cd /root/ wget http://curl.haxx.se/download/curl-7.35.0.tar.gz tar -zxvf curl-7.35.0.tar.gz cd curl-7.35.0.tar.gz ./configure --prefix=/usr/local/curl make make install 二、删除原来安装的5.2.17,下载amh的5.2.17安装脚本,修改脚本,重新编译5.2.17 首先必须删除原来安装的5.2.17 rm -rf /usr/local/php-5.2/* 下载5.2.17安装脚本(64位系统装不了的话,请参考http://amysql.com/bbs/forum.php? ... 401&page=1#pid16672) wget http://code.amysql.com/files/php-5.2.sh; 修改安装脚本,对比修改,详见红色部分(--with-curl修改成--with-curl=/usr/local/curl/) 引用: ./configure --prefix=/usr/local/php-5.2 --enable-fastcgi --enable-fpm --with-config-file-path=/usr/local/php-5.2/etc --with-openssl --with-zlib --with-curl=/usr/local/curl/ --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --enable-zip --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql; 保存上传后继续按安装教程继续安装5.2.17 三、用管理员大大提供的脚本测试一下是否还是502(http://amysql.com/bbs/forum.php? ... id=3887&fromuid=119) 先切换到兼容模式 然后切换主机到php5.2版本:/usr/local/php-5.2/php52 php-5.2 xxxx.com(xxxx.com请自行修改) 接下来用测试文件测试下curl 获取ssl https是否还是502了 <?php 测试文件直接下载:function niuc_curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_REFERER, $_G['siteurl']); $result = curl_exec($ch); curl_close($ch); return $result; } $url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code='.$code.'&client_id='.$apikey.'&client_secret='.$secretkey.'&redirect_uri='.$redirecturi; if(function_exists('curl_init')) { $result = niuc_curl($url); echo 'niuc_curl ok...'; } else { $result = file_get_contents($url); echo 'file_get_contents ok...'; } $token_arr = (array)json_decode($result); if(!$token_arr['access_token']){ if($result == '') { echo 'Error'; } else { echo 'OK'; } exit; } ?> http://amysql.com/bbs/forum.php? ... DJ8MTE5fDY0Ng%3D%3D 四、确认没问题继续安装其他zend和ea等插件 第三步确认curl不再502后,把zend和ea装上 大功告成~~~
点赞,加油! (2分)
2014-04-21 02:04:08 1
|
amysql |
支持原创,感谢CP分享。
回复
2014-04-21 12:29:37 2
AMH面板 - 好用高效低占用、安全可靠极稳定 |