5

我的 Ubuntu 机器上的 /etc/environment 中有 http_proxy 设置。我已将 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.1 http://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 中工作https://bugs.php.net/bug.php?id=53543 。

4

3 回答 3

10

它发生在我身上,所以我将代理设置为空字符串并且它有效

curl_setopt($ch, CURLOPT_PROXY, '');
于 2013-12-16T13:08:06.560 回答
1

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

于 2015-06-03T17:10:35.743 回答
0

根据PHP's Manual,您应该将 CURLOPT_HTTPPROXYTUNNEL 设置为 false:

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
于 2016-09-30T18:19:11.193 回答