Php 企业代理背后的Apache

Php 企业代理背后的Apache,php,apache,curl,proxy,sdk,Php,Apache,Curl,Proxy,Sdk,我正在开发一个php应用程序。我用的是wamp,我支持一个公司代理。我正在使用身份验证。我需要卷曲google地理编码api,为了做到这一点,我使用了以下有效的设置: curl_setopt($ch,CURLOPT_PROXY, '127.0.0.1:3128'); curl_setopt($ch, CURLOPT_PROXYPORT, 3128); 我想找到一种方法来避免为CURL设置这些选项。我相信我可以使用Apache设置,但我不确定。我需要找到此解决方案的原因如下: 在

我正在开发一个php应用程序。我用的是wamp,我支持一个公司代理。我正在使用身份验证。我需要卷曲google地理编码api,为了做到这一点,我使用了以下有效的设置:

    curl_setopt($ch,CURLOPT_PROXY, '127.0.0.1:3128');
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
我想找到一种方法来避免为CURL设置这些选项。我相信我可以使用Apache设置,但我不确定。我需要找到此解决方案的原因如下:

  • 在production env中不会有这样的代理(目前,仅当环境变量设置为DEV env时才使用上述选项,但仍然是:这不是最佳解决方案)
  • 如果我想使用第三方SDK(如facebook php SDK),它们在内部使用CURL,但不一定公开方法来更改CURL选项(例如facebook SDK不公开)。我不想更改SDK源代码以适合我的代理
  • 我尝试的是: 到目前为止,我在apache上打开了proxy_模块,并在httpd.conf上添加了以下行,但没有成功

    ProxyRemote * http://127.0.0.1:3128
    
    我还是不能上网。我在谷歌上搜索了很多,但我找不到解决方案,有什么想法吗

    我发现很多人都在谈论同一个问题,但我没有找到任何全面的解决方案,因此我提出了悬赏

    我发现: 我在其中找到了:但我不确定这是否适用于curl,而且无论如何,我找不到如何修改php.ini

    [2010-12-20 14:03 UTC] jani@php.net -摘要:更改默认http包装器 +摘要:添加php.ini选项以设置包装器的默认代理 -包装:功能/变更请求 +包装:与流相关 -PHP版本:5CVS +PHP版本:*

    [2011-04-05 11:29 UTC]在yahoo.com玩4fun82嗨,我有 同样的问题。我的解决方案是使用cntml通过代理服务器 隧道工具。您可以配置cntml代理来转发http请求 在本地主机上通过正确的端口接收到目标 认证

    在pear中,您只需配置

    pear配置集http_代理127.0.0.1:3128

    3128-是在cntlm中配置的端口(它可以是任何其他空闲端口)


    非常感谢

    您是说希望WAMP上的此功能仅用于您的开发计算机,对吗?SDK在生产环境中无需修改即可工作,因此您可以利用窗口的主机文件重定向请求


    .

    我认为您可以通过Proxifier()等代理工具来实现

    另外,它们可以从选定的应用程序捕获流量,并自动重定向到代理

    这不是一个完美的解决方案,但在开发人员的机器上应该很有用。

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

    reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | find /i "proxyserver"
    

    然后将答案复制/粘贴到系统变量中,现在它就开始工作了

    虽然我不能证明这一点,但我怀疑这是不可能的(或者至少是不可取的),因为根据PHP的调用方式,您会得到不同的结果。命令行上的PHP不依赖于任何Apache设置;从Apache提供的PHP脚本确实可以访问Apache设置的一些设置。好的,通过PHP设置可以吗?环境变量?安装一个第三方应用程序,使apache/php与我的代理进行对话?奇怪的事情,在命令行上使用
    set http\u proxy设置环境变量http\u proxy=http://192.168.61.25:3128
    在PHP中与cURL完美结合;如果它是在Apache环境中通过
    SetEnv http\u proxy设置的http://192.168.61.25:3128
    它已存在,但已被忽略。谢谢,您可以添加更多详细信息吗?我尝试在终端中设置http_代理,但仍然不起作用。我应该在哪里运行这个命令?我这样使用它:
    C:\ProgramFiles\xampp\htdocs\test>set https\u proxy=https://192.168.61.25:3128
    C:\Program Files\xampp\htdocs\test>“\Program Files\xampp\php\php”curltest.php
    在DOS窗口中。但是命令行可能不是你想要的。谢谢,你说得对!但是你能补充一些细节吗?我知道什么是主机文件,我过去已经更改过它,但我不知道如何修改它。谢谢