CURLOPT_NOPROXY在PHP中不起作用
我在Ubuntu机器上的/etc/environment中设置了http_代理。我将CURLOPT_NOPROXY定义为10177,然后执行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); 但这不会影响我的
$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的答案起了作用。