3

私の問題は、リモート サーバーにファイルを含めることができないことです。

<?php
  echo "Including\n";
  require_once("http://xx.xxx.xxx.xx:8080/path/to/myfile.inc");
  echo "Done..\n";
?>

スクリプトは require_once 関数で失敗します。php -d allow_url_include=On script.php でスクリプトを実行していますが、php.ini で allow_url_include と allow_url_fopen を On に設定していることを確認します。

http://xx.xxx.xxx.xx:8080/path/to/myfile.incをブラウザーにコピーすると、ファイルが提供されます。他のリモートファイルも(標準ポート80で)含めようとしましたが、まだ運がありません

私が本当に混乱しているのは、オフィスのローカルコンピューター (mac、ubuntu) からはすべてが機能するが、サーバーからは機能しないことです。仮想サーバーと専用サーバーの2つの異なるサーバーでテストしました。fopen() でファイルを取得できます。

4

2 に答える 2

5

これは、php.ini でに設定allow_url_includeすることで実行できます。on

しかし、コメントで述べたように、これは

巨大

アプリケーションのセキュリティ ホール。

于 2012-02-29T12:13:39.763 に答える
0

Require_Once は、ローカル ファイルにのみ使用する必要があります。リモート ファイルを取得する場合は、file_get_contents を使用します。このようにリモート サーバーから php をインクルードしようとすると、安全性が低下するか、リモート サーバーで php が実行されることを忘れないでください。

于 2012-02-29T12:12:00.247 に答える