2

コードは fopen() でチョークします。

<?php 
  ini_set('display_errors',1);
  error_reporting(E_ALL);
  $fp = fopen("/path/to/file/some_file.txt","a") or die("can't open file");
  fwrite($fp,"some text");
  fclose($fp);
?>

そして、結果のWebページには次のように書かれています:

「警告: fopen(/path/to/file/some_file.txt) [function.fopen]: ストリームを開くことができませんでした: 5 行目の /var/www/html/test.php で許可が拒否されたため、ファイルを開けません」

ファイルのアクセス許可で遊んでみましたが、役に立ちませんでした。でユーザー/グループをchown apache:apache some_file.txt変更し、で権限を変更しましたchmod 755 some_file.txt。の関連する結果は次のls -l /path/to/file/とおりです。

-rwxr-xr-x 1 apache apache 0 Apr 12 04:16 some_file.txt
4

4 に答える 4

4

Apache にファイルの読み取り権限が付与されている場合でも、すべての親ディレクトリへのアクセスを Apache に付与する必要があることを忘れないでください。

/path/to/file/
/path/to
/path

Apache に少なくとも「読み取り」権限を付与する必要があります。

于 2010-04-12T16:07:56.017 に答える
3

apacheユーザーが実際にPHPを実行していると確信していますか? `

そして:apacheユーザーがsome_file.txtファイルシステムにアクセスできることと、上記のディレクトリへのアクセス制限によってファイルシステムがブロックされていないことを確認してくださいsome_file.txt

于 2010-04-12T09:05:09.720 に答える
2

エラーを修正する前に、どのエラーを修正するかを知っておくとよいでしょう。
これらの行をスクリプトの先頭に追加してから、もう一度お試しください

ini_set('display_errors',1);
error_reporting(E_ALL);

PHPは、何が問題なのかを教えてくれます

于 2010-04-12T09:10:33.173 に答える
1

"a"追加することを意味します。書き込みと同じ権限が必要です。

全員が書き込むには、少なくとも666の権限が必要です。または、ファイルの所有者をサーバーグループ(Ubuntuのwww-data)に変更します。そして、必要な許可を設定します。

これが許可計算機です

これで問題が解決しない場合は、それsafe_modeも確認してください。

于 2010-04-12T09:05:55.150 に答える