CURLOPT_NOPROXY在PHP中不起作用

CURLOPT_NOPROXY在PHP中不起作用,php,curl,proxy,Php,Curl,Proxy,我在Ubuntu机器上的/etc/environment中设置了http_代理。我将CURLOPT_NOPROXY定义为10177,然后执行 $curl = curl_init('http://127.0.0.1:4444/wd/hub'); curl_setopt($curl, CURLOPT_NOPROXY, '127.0.0.1'); // or '*' // ... set others params and options ... curl_exec($curl); 但这不会影响我的

我在Ubuntu机器上的/etc/environment中设置了http_代理。我将CURLOPT_NOPROXY定义为10177,然后执行

$curl = curl_init('http://127.0.0.1:4444/wd/hub');
curl_setopt($curl, CURLOPT_NOPROXY, '127.0.0.1'); // or '*'
// ... set others params and options ...
curl_exec($curl);
但这不会影响我的脚本,我会收到代理错误消息,而不是WebDriver响应。同时使用
curl--noproxy 127.0.0.1http://127.0.0.1:4444/wd/hub
来自命令行的命令运行良好

其他环境信息:

curl --version
curl 7.22.0 (x86_64-pc-linux-gnu) 
libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 
libidn/1.23 librtmp/2.3 
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP 
PHP版本是5.3.10

如何从PHP脚本设置noproxy选项


更新:看起来它应该在PHP中工作。

这件事发生在我身上,所以我将代理设置为空字符串,它就工作了

curl_setopt($ch, CURLOPT_PROXY, '');

我还遇到了仅在PHP curl调用中使用代理的curl问题。我最终发现SUSE特别是SLES 11设置了一些代理值。更改这些代理值修复了linux中的问题,但我必须重新启动整个服务器,而不仅仅是apache,才能使更改在PHP中生效。我使用YAST更改服务器上的代理值。

根据,您应该将CURLOPT_HTTPPROXYTUNNEL设置为false:

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);

在这种情况下,它使用的是不对应的系统代理。我在2019年从localhostSidenote中cUrl到非ssl端点时遇到了这个问题:
CURLOPT_NOPROXY
已经存在,并且在PHP5.5中使用
CURLOPT_NOPROXY
时,我得到了
分段错误
,没有进一步的细节。这样的布尔标志会更优雅,不幸的是,这个答案对我不起作用,但是@user3107408的答案起了作用。