PHP使用file_get_contents或curl请求https的域名内容为空或Http 505错误的问题排查方法
前段日子,突然接到用户的反馈,说系统中原来的QQ登录、微博登录通通都不能用,跟踪代码进去后发现,是在 file_get_contents这个函数请求QQ登录的地方报错,在用该函数file_get_contents请求https协议的地址时,返回的是空,没有任何错误!
从网上找了很多的帖子,时间跨度也接近3个多月,此问题一致没有得到很好的解决。有说是因为没有openssl的问题,但我的是linux系统,不需要openssl.dll,同时我也尝试编译过openssl.so等方式,都不行,因为我的Php环境就已经是包含了openssl的编译的。
而且根据网上的教程,不仅没有解决掉我的问题,反而出现了新的问题,原来还能返回空的内容,按照一系列的教程后,结果报505的错误,而且nginx、php等错误日志都不能很好地发现问题,这个又接近过去了一个月。
由于一直返回505的错误信息,我也怀疑是nginx返回的错误,这样就看不到底层php返回的具体错误。一直在想如何绕过nginx直接访问php页面,看看最原始的错误呢?但nginx不能随便更改,毕竟系统还是一直在运行和用户访问提交数据的。
又过去了两周,客户一直电话催着要解决这个问题,没办法硬着头皮再上。继续研究php的时候,突然发现php也是个命令,可以直接php test.php;test.php里只有一个file_get_contents的函数,这下就可以直接快速方便地反馈原始的错误信息了。
执行命令后,控制台上就显示 segment fault的错误。继续根据这个线索进行百度或google,有朋友发现是因为sqlite的问题,具体参考该文
http://blog.csdn.net/loophome/article/details/53812887
可以通过查看系统内核日志,发现问题端倪。
通过查看内核日志和gdb记录,可以发现问题出现在libsqlite上
PHP使用file_get_contents或curl请求https的域名内容为空或Http 505错误的问题排查方法的更多相关文章
- php-fpm nginx 使用 curl 请求 https 出现 502 错误
用php curl请求https的url出现502错误,请求帮忙解决. PHP版本:5.6.7Nginx版本:1.8.0 代码如下: $ch = curl_init(); curl_setopt($c ...
- PHP Curl请求Https接口
在请求http的时候只需要 file_get_contents("http://www.sojson.com/open/api/weather/json.shtml?city=$Positi ...
- PHP curl请求https遇到的坑
PHP里curl对https的证书配置默认是服务器端要求验证的,如果服务器端没有配置证书验证,则无法请求https路径.如果为了简便使用不需要配置https证书的话,配置curl时将以下两项设置为fa ...
- PHP使用curl请求https站点的常见错误及解决方案
使用curl请求http站点和https站点最大的不同就是https站点有证书验证这一环节,如果证书验证不通过则无法发起请求,不管是请求什么类型的站点遇到问题时先把错误码打印出来看一下,打印错误码的代 ...
- curl请求https资源的时候出现400
在nginx上配置了一个新的域名, 习惯性地用curl请求看看有没有配置错误 因为是https的, 所以 $curl 'https://test.test.com/' -x 127.0.0.1:443 ...
- php curl请求https 返回无结果|false|errno:35
1 SSL: certificate subject name 'WMSvc-GWAMSERVER02' does not match target host name 把curl_setopt($c ...
- PHP Curl 请求https 60错误解决办法
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
- curl请求https请求
function curl_https($url,$data){ $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_se ...
- curl 请求https内容,返回空
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$api); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);/ ...
随机推荐
- Django---->视图(View)
视图层之路由配置系统(views) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个 ...
- POJ 3154 Graveyard【多解,数论,贪心】
Graveyard Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1707 Accepted: 860 Specia ...
- [bzoj1997][Hnoi2010]Planar(2-sat||括号序列)
开始填连通分量的大坑了= = 然后平面图有个性质m<=3*n-6..... 由平面图的欧拉定理n-m+r=2(r为平面图的面的个数),在极大平面图的情况可以代入得到m=3*n-6. 网上的证明( ...
- 2017ecjtu-summer training # 11 POJ 2492
A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 38280 Accepted: 12452 D ...
- 2017ecjtu-summer training #1 UVA 12050
A palindrome is a word, number, or phrase that reads the same forwards as backwards. For example, th ...
- tree(并查集)
tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- float浮动属性的基本常识
CSS 浮动 请看下图,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘: 再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边 ...
- SpringMVC框架学习笔记(4)——结果跳转方式
1.设置ModelAndView对象.根据View和视图解析器跳转到指定页面(视图解析器前缀+viewname+视图解析器后缀) @Override public ModelAndView handl ...
- 对SVD奇异值分解的理解
首先推荐一篇博客,奇异值分解(SVD)原理详解及推导 - CSDN博客,讲解的很清楚.这里我谈谈自己的理解,方便以后回顾. 如果把向量理解为空间中的一个元素,那么矩阵可以理解为两个空间上的映射 ...
- [国嵌攻略][173][BOA嵌入式服务器移植]
1.解压boa嵌入式web服务 tar zxvf boa-0.94.13.tar.gz 2.进入src目录生成配置文件 ./configure 3.修改生成的Makefile CC=arm-linux ...