ユーザーにローカルの Apache ルート フォルダーへのフル アクセスを与え、Apache ユーザーにも同じフォルダーへのフル アクセスを与えたいと思います。
私がやったことは、DevGroup という新しいグループを作成し、www-data
そこに自分のユーザーを追加することでした。また、グループへの完全なアクセスを許可するために、権限を 770 に変更しました。
しかし、今では私や Apache ユーザーはフォルダーに一切アクセスできなくなりました。
私が得た結果は次のとおりですls
:
drwxrwx--- 12 root DevGroup 4096 Sep 27 17:34 testFolder
これは完璧に思えますが、ユーザーとしてファイルにアクセスしようとすると、次のメッセージが表示されます。
var/www$ ls testFolder/
ls: cannot open directory testFolder/: Permission denied
また、ブラウザからフォルダ内のページにアクセスしようとすると、次のようになります。
[Thu Sep 27 17:47:16 2012] [error] [client 127.0.0.1] PHP Fatal error:
Unknown: Failed opening required '/var/www/testFolder/foo.php'
(include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
問題は何ですか?どうすれば解決できますか?
答え1
あなたが説明した内容は機能するはずですが、新しいグループ メンバーシップを取得するには、ログアウトして Apache を再起動する必要があるかもしれません。
このフォルダが Web ルートの下にある場合は、それを Web サーバーの「プロパティ」と見なすのが妥当です。そのため、このフォルダをユーザー www-data とグループ DevGroup が所有するようにしておくと、Web サーバーが常にこのフォルダにアクセスできるようになります。