Search code examples
phpapache2php-5.2

file_get_contents() via proxy in 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??


Solution

  • 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