Apacheのユーザーディレクトリにアクセス不可
こんにちは。
ここ最近、学習のためにCentOSでWebサーバの構築を行っていたのですが、
どうにも自力では解決できない問題に直面しているため、皆様のお力をお借りできればと思います。。
【現象】
ApacheによるWEBサーバに「http://サーバIP/~ユーザ名/index.html」でアクセスしようとすると、
「403 Forbidden」エラーでアクセスできない。
【環境】
・CentOS 6.4 64ビット (VirtualBox上のゲストOSとして稼働)
・Apache - 2.4.6 (/usr/local/apache/ 以下に存在)
【既に確認済みの事項】
・以下のディレクトリのパーミッションは755に設定されている(711も確認済み)
「/home」 「/home/ユーザ名」 「/home/ユーザ名/public_html」
・SELinuxはDisabled(Permissiveも確認済み)
・「# restorecon -R /home」コマンドは一応実行済み
・「public_html」以下にはパーミッション644の「index.html」が存在している
・「http://サーバIP/~間違ったユーザ名/」は403でなく404エラーになる
・「http://サーバIP/~ユーザ名/存在しないファイル名」は404でなく403エラーになる
・htdocs以下のファイルには「http://サーバIP/~」で正常にアクセスできる。
(htdocs以下のフォルダのパーミッションは755で、711だと403エラーになった。)
【設定ファイル】
/usr/local/apache/conf/httpd.conf は以下の通り記述されている。
・モジュールロード部分
LoadModule userdir_module modules/mod_userdir.so
・設定部分
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disable
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#
UserDir public_html
</IfModule>
<Directory /home/*/public_html>
AllowOverride All
Options IncludesNoExec ExecCGI FollowSymLinks
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
同様の症状に困っている書き込み・記事等もたくさんあり、それらは確認しつくしたつもりですが、
全てパーミッション見直し・SELinuxの設定までで解決しているように見受けられます。
おそらく、自分では思いもつかない全く別の原因が存在するのではないかと思っており、
皆様のお力をお貸しいただければ幸いです。
なお、足りない情報等あればご指摘いただければと思います。
どうぞ余禄お願いいたします。
お礼
ありがとうございました。 yadiaryさんの言う通り、 UserDirを調べてapache2.confのUserDirを操作したところ 閲覧できるようになりました。