Apache背后是企业代理

Ste*_*one 15 php apache sdk proxy curl

我正在开发一个php应用程序.我正在使用wamp,而且我在公司代理之后.我正在使用cntlm来验证NTLM.我需要卷曲谷歌地理编码api,为了做到这一点,我使用了以下设置:

    curl_setopt($ch,CURLOPT_PROXY, '127.0.0.1:3128');
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来避免为CURL设置这些选项.我相信我可以玩Apache设置,但我不确定.我需要找到这个解决方案的原因是:

  1. 在生产环境中,将不会有这样的代理(目前仅在环境变量设置为DEV env时使用上述选项,但仍然:它不是最佳解决方案)
  2. 如果我想使用第三方SDK(例如facebook php sdk),那些内部使用CURL但是它们不一定暴露更改CURL选项的方法(例如facebook sdk没有).我不想更改SDK源代码以适合我的代理

我尝试了什么:

到目前为止,我在apache上启用了proxy_module,并在httpd.conf中添加了以下行,但没有成功

ProxyRemote * http://127.0.0.1:3128
Run Code Online (Sandbox Code Playgroud)

我仍然无法访问互联网.我google了很多,但我找不到解决方案,任何想法?

我可以找到很多人谈论同样的问题,但我没有找到任何全面的解决方案,因此我提出了赏金.

我找到了什么:

有一个我发现的错误:但是我不确定这是否适用于卷曲,无论如何我找不到如何修改php.ini

[2010-12-20 14:03 UTC] jani@php.net -Summary:更改默认的http-wrapper +摘要:添加php.ini选项为包装器设置默认代理-Package:Feature/Change Request + Package:Streams相关-PHP版本:5CVS + PHP版本:*

[2011-04-05 11:29 UTC] play4fun_82 at yahoo dot com嗨,我有同样的问题.我的解决方案是使用cntml隧道工具通过代理服务器.您配置cntml代理以通过适当的身份验证将端口上的本地主机上收到的http请求转发到目标.

在梨你只需配置

pear config-set http_proxy 127.0.0.1:3128

3128 - 是cntlm中的port configuret(它可以是任何其他空闲端口).

非常感谢

Ste*_*one 0

读完这篇文章后,我正打算认输,但实际上有一个简单的解决方案。我必须使用 Windows 环境变量,最后将系统变量设置为 https_proxy= https://localhost:3128有效!之前它不起作用,因为我将其设置为 127.0.0.1:3128。运行命令

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | find /i "proxyserver"
Run Code Online (Sandbox Code Playgroud)

然后将答案复制/粘贴到系统变量中,现在它可以工作了!