1

OK、プロキシ サーバーの背後で 2 つの Linux ボックスを実行しています。両方のボックスは、ポート 801 で接続することにより、フィルタリングをバイパスするように設定されています。

ボックス A - Fedora Core 12 / PHP 5.3.1

ボックス B - RHEL 6 / PHP 5.3.3

Box AI では、file_get_contents() を使用して外部サイトに接続できます。

<?php
$opts = array(
              'http' => array(
                              'proxy' => 'tcp://10.136.132.1:801',
                              'request_fulluri' => true
                             )
             );

$cxContext = stream_context_set_default($opts);
echo file_get_contents("http://www.google.com");

これにより、Google のホームページが表示されます。

Box BI で同じコードを実行しますが、次のエラーが発生します。

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

両方のボックスが同じネットワーク上にあり、同じプロキシ サーバーの背後にあります。ボックス B で file_get_contents を機能させるために、Apache または PHP に欠けている設定はありますか?

4

2 に答える 2

3

SELinux が有効になっているようです。デフォルトでは、Apache による発信接続がすべてブロックされます。これをシェルで root として実行してみてください:

setsebool -P httpd_can_network_connect on

SELinux ブール値の詳細については、 http ://wiki.centos.org/TipsAndTricks/SelinuxBooleans を参照してください。

于 2012-05-01T14:07:55.343 に答える
0

これは、Google がボットまたはスクリプトから送信されたように見えるリクエストをブロックしているためです。おそらく、Box A が Google にリクエストするときに追加のヘッダーを設定するためです。

ボックス b で他の Web サイトを開いてみる

于 2012-05-01T13:48:41.697 に答える