首页 > 解决方案 > curl 在命令行上工作,而不是在 PHP 中

问题描述

我在运行 Apache/2.4.39 和 PHP 7.2.18 的 Fedora R 28 上运行 Drupal 8。我的 php curl 功能失败,但命令行测试工作正常。

curl 出现在 phpinfo() 中,在 20-curl.ini 中定义,并且不会在任何日志文件中显示任何错误。我尝试了两种不同的 SSL 证书。测试以优异的成绩回归。

协议 TLS 1.3 否 TLS 1.2 是 TLS 1.1 是 TLS 1.0 是 SSL 3 否 SSL 2 否

我得到的只是:cURL错误(7):无法连接到服务器

echo 'Curl: ', function_exists('curl_version') ? 'Enabled' : 'Disabled'

返回启用。

array(26) {
  ["url"]=>
  string(23) "http://www.example.com/"
  ["content_type"]=>
  NULL
  ["http_code"]=>
  int(0)
  ["header_size"]=>
  int(0)
  ["request_size"]=>
  int(0)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.000437)
  ["namelookup_time"]=>
  float(0.004549)
  ["connect_time"]=>
  float(0)
  ["pretransfer_time"]=>
  float(0)
  ["size_upload"]=>
  float(0)
  ["size_download"]=>
  float(0)
  ["speed_download"]=>
  float(0)
  ["speed_upload"]=>
  float(0)
  ["download_content_length"]=>
  float(-1)
  ["upload_content_length"]=>
  float(-1)
  ["starttransfer_time"]=>
  float(0)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(0) ""
  ["primary_ip"]=>
  string(0) ""
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(0)
  ["local_ip"]=>
  string(0) ""
  ["local_port"]=>
  int(0)
}
cURL error (7):
 Couldn't connect to server

标签: phpphp-curl

解决方案


原来我需要启用出站连接。不知道为什么命令行调用不需要它。当我重新启动服务器时,它可能未设置。

setsebool httpd_can_network_connect 真

欲了解更多信息:


推荐阅读