提问人:Schwarz Software 提问时间:11/14/2023 最后编辑:Schwarz Software 更新时间:11/20/2023 访问量:105
http_code 0 与 Redhat php curl
http_code 0 with Redhat php curl
问:
我可以使用 lynx 从服务器访问网站。当我尝试使用 php curl 指令访问同一网站时,我从同一数据中心的另一台 redhat 服务器上的相同 php 代码中获取。我对服务器具有管理员访问权限。http_code=>0
curl_getinfo($ch);
我尝试过 php 7.4 和 php 8.0
当我调用我不确定如何调试此错误时,curl 已启用!phpinfo();
它是 RHEL 8.8
这是curl_getinfo($ch);
数组 ( [url] =>
https://..... [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [文件时间] => -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] => 数组 ( ) [primary_port] => 0 [local_ip] => [local_port] => 0 [http_version] => 0 [协议] => 0 [ssl_verifyresult] => 0 [方案] => [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 )
答:
我可以使用 lynx 访问网站
由于 cookie,您可能无法通过 curl cli 访问它。
# err
$ curl https:// --verbose
# suc
$ curl https:// \
--verbose \
--cookie="/tmp/cookie.txt" \
--cookie-jar="/tmp/cookie.txt"
PHP表示
$cookieFile = '/tmp/cookie.txt';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_COOKIEJAR => $cookieFile,
CURLOPT_COOKIEFILE => $cookieFile,
// other options
]);
curl_exec($ch);
curl_close($ch);
评论
setsebool -P httpd_can_network_connect on
这奏效了。完整的答案在这里:CURL 无法从 Red Hat、Apache、PHP、AWS 上的 Web 浏览器运行
评论