ショートストーリー:
PHPスクリプトでopen_basedir制限が発生します。これは、単純な「新しいファイルをディスクに書き込むテスト」スクリプトです。open_basedirの設定が正しく、ファイルが正しい場所にあることがわかりましたが、運が悪かったので、毎回同じエラーが発生しました。このサイトで同様のopen_basedirの問題を検索しましたが、この問題については何も見ていません。ディレクトリは正しく見えますが、それでもエラーが発生します。
問題が何であるかについての私の推測:
1)open_basedirが思ったように機能しない
2)設定が間違っていて、表示されない
3)IISの読み取り/書き込みアクセス許可など、実際には別のものです。など
4)???
長い話:
PHPを使用してIISサーバーで作業しており、次のコードスニペットを機能させようとしています(単純な書き込みファイルテスト)。
date_default_timezone_set('America/Chicago');
$myFile = 'testfile.txt';
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Some Text\n";
fwrite($fh, $stringData);
$stringData = "Some More Text\n";
fwrite($fh, $stringData);
fclose($fh);
このphpスクリプトは、サーバーのC:\ inetpub \ wwwroot \ WEBDIRECTORY\test_write.phpにあります。
open_basedirのphp.ini設定は次のとおりです
。open_basedir=c:\ inetpub \ wwwroot; c:\ inetpub \ wwwroot \ WEBDIRECTORY
スクリプトのページを開くと、出力が表示されないことを期待しています。確認すると、サーバーに新しいファイルが書き込まれているはずです。これは私が代わりに得るものです:
警告:fopen():open_basedir制限が有効です。File(testfile.txt)が許可されたパス内にありません:(c:\ inetpub \ wwwroot)in C:\ inetpub \ wwwroot \ WEBDIRECTORY \ test_write.php on line 5警告:fopen(testfile.txt):failedストリームを開くには:5行目のC:\ inetpub \ wwwroot \ WEBDIRECTORY\test_write.phpで操作が許可されていませんファイルを開くことができません
私は多くの順列を試しました:元々open_basedir行は
open_basedir = c:\ inetpub\wwwrootでした
...しかし、それもうまくいきませんでした。
また、ファイル自体の名前だけでなく、testfile.txtの絶対パス(c:\ inetpub \ wwwroot \ WEBDIRECTORY \ testfile.txtなど)を入力しようとしましたが、同じエラーメッセージが表示され続けます。
何か案は?どうもありがとうございました。