php fopen関数を使用して/ tmpディレクトリ(Apacheサーバ上)にファイルを書き込もうとしていますが、失敗します。777のアクセス権とopen_basedir値なしでも/ tmpにphpで書き込むことはできません
<?php
$handle = fopen("/tmp/test.txt", "x");
if ($handle) echo "Success!";
else print_r(error_get_last());
?>
これは、「ストリームを開くことに失敗しました:そのようなファイルまたはディレクトリはありません」というエラーメッセージを返します。/tmpディレクトリの権限はdrwxrwxrwtに設定されており、Webユーザーが他のファイルを書き込んでいることがわかります。不思議なことに、私がスクリプトをパーミッション777の別のフォルダに向けると、スクリプトは成功を返します。しかし、私のopen_basedirは「価値がない」。私はsafe_mode = onとallow_url_fopen = offを持っていますが、それを説明する必要はないと思いますか?
これはapache 2.0のphp 5.3.10です。
'test.txt'はありますか? – maialithar
いいえ、上記のスクリプトのポイントは、私の/ tmpフォルダにファイルを作成できるかどうかをテストすることです。私は 'x'と 'w'フラグの両方でスクリプトを試しました。 –
おそらくchrooted? – Robus