RHEL 8.8服务器PHP curl请求返回http_code=>0问题排查求助
问题与调试方案
问题描述
在RHEL 8.8服务器上,通过lynx可正常访问某HTTPS网站,但使用PHP curl指令访问时,curl_getinfo($ch)返回http_code => 0。同数据中心的另一台RedHat服务器运行相同PHP代码可正常工作,当前服务器拥有管理员权限,已尝试PHP 7.4和PHP 8.0版本,phpinfo()显示curl扩展已启用。
curl_getinfo输出:
Array ( [url] => https://..... [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.055895 [namelookup_time] => 0.105978 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => [certinfo] => Array ( ) [primary_port] => 0 [local_ip] => [local_port] => 0 [http_version] => 0 [protocol] => 0 [ssl_verifyresult] => 0 [scheme] => [appconnect_time_us] => 0 [connect_time_us] => 0 [namelookup_time_us] => 105978 [pretransfer_time_us] => 0 [redirect_time_us] => 0 [starttransfer_time_us] => 0 [total_time_us] => 55895 )
调试步骤
- 系统级curl命令测试:直接在服务器终端执行
curl -v https://目标域名,对比输出与正常服务器的差异,重点关注DNS解析、SSL握手、连接建立阶段的日志。 - 检查PHP curl证书配置:查看
phpinfo()中curl.cainfo和openssl.cafile的值,确保指向RHEL系统默认CA证书文件/etc/pki/tls/certs/ca-bundle.crt。若未配置,在php.ini中添加:
重启PHP-FPM或Apache服务后重试。curl.cainfo = /etc/pki/tls/certs/ca-bundle.crt openssl.cafile = /etc/pki/tls/certs/ca-bundle.crt - 排查SELinux限制:临时关闭SELinux测试:
setenforce 0,若恢复正常,添加永久允许规则:setsebool -P httpd_can_network_connect on。 - 检查防火墙规则:对比两台服务器的
firewall-cmd --list-all输出,确认当前服务器允许出站443端口请求。可临时关闭防火墙:systemctl stop firewalld验证,正常后调整规则。 - 启用curl错误捕获:在PHP代码中添加错误输出,获取具体错误信息:
$ch = curl_init('https://目标域名'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if(curl_errno($ch)) { echo 'CURL错误:' . curl_error($ch); } var_dump(curl_getinfo($ch)); curl_close($ch); - 验证DNS配置:对比两台服务器的
/etc/resolv.conf,执行nslookup 目标域名和dig 目标域名确认解析结果一致。 - 检查代理环境变量:确认两台服务器的
http_proxy/https_proxy环境变量是否一致,若不需要代理,可在PHP代码中强制关闭:curl_setopt($ch, CURLOPT_PROXY, '');
内容的提问来源于stack exchange,提问作者Schwarz Software
相关产品推荐
相关产品推荐

