file_get_contents URL包装器在cli上工作,但不是cgi

我有一个很大的问题。 我刚刚升级到一台运行Plesk 10的新专用服务器,而Ubuntu 11.04和我的脚本无法在CGI模式下运行file_get_contents或curl到外部URL。 allow_url_fopen在正确的php.ini文件中设置为On,但仍然出现以下错误。

file_get_contents(http://www.google.com): failed to open stream: Permission denied 

curl请求返回false这个:

 function get_data($url) { // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HEADER, false); // grab URL and pass it to the browser $data = curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch); var_dump($data); } get_data("http://www.google.com");//bool(false) 

这两个(file_get_contents和curl)在命令行和cron运行的脚本中运行良好,并且当php作为apache模块运行时都运行良好。 它只是在浏览器中运行,并作为CGI或fastcgi应用程序出现问题。 我一整天都没有运气的托pipe公司。 任何帮助感激地收到。

原来是SELinux导致了这个问题,我用这个命令修复了它:

 setsebool -P httpd_can_network_connect 1 

感谢@jsmith在这个线程中: CentOS上的PHP file_get_contents错误,因为他是第二个推荐SELinux在centOS上导致这样的问题的人。 我是一个新手,所以我只会尝试一些东西,当它由多个来源确认。