9

だから、私はこのエラーがあります:

Warning: fopen(/path/to/test-in.txt) [function.fopen]: failed to open stream: Permission denied

ls -lのディレクトリで実行test-in.txtすると、次の出力が生成されます。

-rw-r--r-- 1 $USER $USER 1921 Sep  6 20:09 test-in.txt
-rw-r--r-- 1 $USER $USER    0 Sep  6 20:08 test-out.txt

これを乗り越えるために、次のことを実行することにしました。

chgrp -R www-data /path/to/php/webroot

そして、次のことを行いました:

chmod g+rw /path/to/php/webroot

それでも、php5 スクリプトを実行してファイルを開くと、このエラーが発生します。なぜこうなった?LAMP と CGI による cherokee を使用してこれを試したので、これはあり得ません。

何らかの解決策はありますか?

編集

また、現在 localhost 経由で開発していることも付け加えておきます。

更新 - PHPfopen()

$fullpath = $this->fileRoot . $this->fileInData['fileName'];

$file_ptr = fopen( $fullpath, 'r+' );

また、できればチェロキーを使い続けたいと思っています。Apache/Cherokee のファイル許可を設定することについて、この取引は何ですか?

4

2 に答える 2

11

PHP を実行するユーザーが、ファイル パスのすべてのディレクトリに対して "X" 権限を持っているかどうかを確認します。
ファイルにアクセスするために必要になります

ファイルが次の場合: /path/to/test-in.txt
X パーミッションが必要です:

  • /path
  • /path/to

および読み取り権限/path/to/test-in.txt

于 2012-09-07T03:26:53.367 に答える