Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Apache无法使用curl发出传出HTTP请求_Php_Apache_Curl_Selinux_Php Curl - Fatal编程技术网

Php Apache无法使用curl发出传出HTTP请求

Php Apache无法使用curl发出传出HTTP请求,php,apache,curl,selinux,php-curl,Php,Apache,Curl,Selinux,Php Curl,考虑以下系统配置: 软呢帽27 SELinux已启用 Apache/2.4.33 PHP 7.1.17 以及以下代码段,用于向发出http请求: 当我运行以下CLI时,上面的脚本可以完全正常工作: php script.php 我得到了预期的输出 但是,当我尝试通过web浏览器运行它时,它会生成: CURLE\u无法\u CONNECT(7)无法将()连接到主机或代理 我发现了很多建议,比如添加 curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESO

考虑以下系统配置:

  • 软呢帽27
  • SELinux已启用
  • Apache/2.4.33
  • PHP 7.1.17
以及以下代码段,用于向发出http请求:

当我运行以下CLI时,上面的脚本可以完全正常工作:

php script.php
我得到了预期的输出

但是,当我尝试通过web浏览器运行它时,它会生成:

CURLE\u无法\u CONNECT(7)无法将()连接到主机或代理

我发现了很多建议,比如添加

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
这对我来说不是一个真正的解决办法。关闭SELinux,我将不关闭该选项

注意:当我发布URL时,它本身工作正常,并提供了预期的输出


有什么建议吗?提前感谢。

尝试此操作,看看SELinux是否允许web服务器连接到网络:

getsebool httpd_可以_网络_连接

如果没有,请允许使用

setsebool-p httpd_can_网络_连接开启


错误很明显,您能在浏览器中运行该url吗?是的,工作完全正常。
curl\u setopt($ch,CURLOPT\u VERBOSE,true)添加它,看看你是否得到了什么有用的东西实际上什么都没有。同样的问题,Fedora29,在我查看
/var/log/messages
audit[2320]:AVC AVC:denied{name\u connect}for pid=2320 comm=“php fpm”之前,在任何地方都找不到错误dest=80 scontext=system\u:system\r:httpd\u t:s0 tcontext=system\u:object\u r:http\u port\u t:s0 tclass=tcp\u socket permissive=0
我不会记得SELinux了,非常感谢。这就是我花了几个小时寻找的大海捞针。
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);