dougaopu7938 2012-10-19 13:50
浏览 79
已采纳

file_get_contents()通过httpd中的代理

I try to the get source of a page using file_get_contents() via proxy using the following code

$aContext = array(
'http' => array(
    'proxy' => 'tcp://proxy.ssn.net:8080',
    'request_fulluri' => true,
),);
$cxContext = stream_context_create($aContext);
$homepage = file_get_contents('http://www.indiaglitz.com/channels/tamil/reviews.asp', False, $cxContext);
echo $homepage;

This works when i execute the php file via terminal, but i don't get the output when i run the file through browser using httpd(Apache 2).

This works in Apache2 installed in Ubuntu, but not in httpd installed in Fedora 17.

Where is the mistake??

  • 写回答

2条回答 默认 最新

  • dongzhu7329 2012-10-20 15:36
    关注

    The most common cause of this is SELinux not permitting httpd to make network connections.

    To resolve it, you need to change an SELinux boolean value (which will automatically persist across reboots). You may also want to restart httpd to reset the proxy worker, although this isn't strictly required.

    setsebool -P httpd_can_network_connect 1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?