web-dev-qa-db-ja.com

webrootの変更後に403 Forbiddenを取得する

Apache(LAMPスタック)でUbuntuを実行しています。 webrootを/ var/wwwから/ media/data/wwwに変更すると、chmod-ingディレクトリ+ファイルを777にした後でも403 Forbiddenを取得し続けます。何を間違えましたか?また、/ var/wwwを参照すると、ディレクトリ+ファイルがrootによって所有されていることに気付きました。 www-rootであってはなりませんか?また、ルートの場合、Apacheはアクセスできませんか?

私は次のようなエラーが発生していることに気付きました

[2011年5月11日11:53:40 2011] [crit] [client 127.0.0.1](13)Permission denied:/media/data/.htaccess pcfg_openfile:htaccessファイルを確認できません。読み取り可能であることを確認してください

しかし、私のウェブルートは/media/data/jm/wwwです

2
JM at Work

痛いよ.

エラー13は権限エラーに関連しています。 Linuxでは、フォルダーを実行できるように実行ビットが必要です。そのため、Apacheを実行しているユーザーがフォルダーの所有者である場合、/media/dataおよび/media/data/jmのアクセス許可が755 OR 700に設定されていることを確認してください。

rootはLinuxシステムの神です。おそらく、Sudosuper-user do ...)を使用してchmodコマンドを実行しているでしょう。 Apacheプロセスは、ファイルを読み取ることができる必要があります(たとえば、キャッシュに書き込む必要がある動的言語を使用している場合は書き込みます)。 Ubuntuでは、このユーザーはwww-datawww-rootではありません)です。

アクセス許可を復元し、Apacheがファイルを所有するようにするには、次を実行します。

 Sudo chown -R www-data /media/data/jm/www
 Sudo find /media/data/jm/www -type f -exec chmod 600 {} \;
 Sudo find /media/data/jm/www -type d -exec chmod 700 {} \;

最初のコマンドは所有権をwww-dataに変更し、2番目のコマンドはファイル許可を600(所有者の読み取り/書き込み)に、3番目のディレクトリをディレクトリに変更します。

/media/dataは、2番目のパーティションを作成したようです。ファイルシステムがLinuxファイル許可をサポートしていることを確認してください。 ext2、ext3、ext4があります。 NTFSおよびFAT32はサポートしていません。 Sudo file -s $(readlink -f /dev/disk/by-label/data)を実行することで確認できます。

2
Lekensteyn