Apache2とphp7でUbuntu 16.04を使用しています。 私はphpでいくつかのログファイルを読んでそれを印刷することはしませんでした。 したがって、私は簡単ですPHP - readfile()がストリームを開けませんでした:許可が拒否されました - なぜですか?
readfile("/var/log/apache2/access.log");
しかし、それは動作しません。私はこのエラーを取得:
Warning: readfile(/var/log/apache2/access.log): failed to open stream: Permission denied in /var/www/test.php on line 2
私は右のパーミッションを設定しているかなり確信しているが、ApacheとPHPは、WWW-データとして実行されたので、私はグループのADM 'と'へのユーザのWWW-データを追加しましたこれらのグループにはファイルパス全体とファイルそのものに対する読み取りアクセス権があるため、「syslog」と表示されます。 パーミッションはデフォルトでは640ですが、たとえば647に設定した場合にのみ、ファイルはphp/apacheで読み込み可能です.644または646でも十分ではありません。
なぜですか? Apacheのvhost設定で何かを変更する必要がありますか?
追加:LS -alpは/ var/log/apache2の
drw-r----- 2 root adm 4096 Oct 25 11:07 ./
drwxr-xr-x 9 root syslog 4096 Oct 25 10:39 ../
-rw-r----- 1 root adm 47861 Oct 25 14:01 access.log
-rw-r----- 1 root adm 12014 Oct 25 14:01 error.log
-rw-r----- 1 root adm 0 Oct 25 10:40 other_vhosts_access.log
これを質問に追加してください:cd/var/log/apache2; ls -alp – Nic3500
@Tenbo:彼はすでに647が大丈夫だと言った。彼は彼のファイルを読むのにo = rwxが必要なように見えますが、それは変です。だから私はls -alpを/ var/log/apache2に投稿するように頼んだのです。 – Nic3500
@Nicが私の開始ポストに追加されました – lemon