如何让PHP使用代理设置连接到互联网?

2022-08-30 13:59:27

我位于不允许直接连接到互联网的代理服务器后面。我所有的PHP应用程序都无法连接到互联网进行更新检查等。

如何告诉 PHP 我的代理设置?

我不想在代码中输入代理设置,我希望PHP本身通过全局配置设置或类似的东西使用它。


答案 1

如果几乎所有的互联网接入都需要代理,我宁愿这样做。

//add this as the first line of the entry file may it is the index.php or config.php
stream_context_set_default(['http'=>['proxy'=>'proxy-host:proxy-port']]);

代理将工作,但不工作file_get_contentscurl_exec

这是一份官方文件。


答案 2

这取决于您的PHP应用程序如何连接到互联网。

如果采用最有可能的情况使用PHP cUrl。在这种情况下,以下选项将为您提供帮助:

curl_setopt($handle, CURLOPT_PROXY, $proxy_url); 
curl_setopt($handle, CURLOPT_PROXYUSERPWD, "[username]:[password]"); 

参见:http://www.php.net/manual/en/function.curl-setopt.php


推荐