apacheでシンボリックリンクが見えないよーというメモ
順番にはまった...環境はCentOS 6.4。
確認ポイントは次の3つ。
あと、まあ、何気に忘れそうなので一応メモ。
- Firewallでhttpを許可
無駄にはまったのは、同じと思っていた環境でSELinuxを気にしなくても問題なかったこと。あとはSELinuxのGUIがみあたんなくて(無くなった?)、Firewallのhttpを許可したところで安心した点ですか。
「/etc/httpd/conf/httpd.conf」の設定
Apacheの設定はFollowSymLinksを気にすればよいのですが、普通はデフォルトで設定されているので、あんまり気にしなくてよい。
$ sudo vi /etc/httpd/conf/httpd.conf ... <Directory "/var/www/html"> Options Indexes FollowSymLinks ...
仮に変更した場合はhttpdを再起動。
$ sudo service httpd restart
リンク先のアクセス権
たとえば、以下の場合、ユーザー名のディレクトリがデフォルトでは自分以外にアクセス権が無いので、アクセスできない。
$ cd /var/www/html $ sudo ln -s /home/ayataka/html ayataka
なので、ユーザー名のディレクトリのアクセス権を変更する。
$ cd /home $ chmod 755 ayataka
SELinux
厳密にはシンボリックリンク云々ではなく、デフォルトでhome以下へのアクセスが許可されていないことにある。
現在の状態を確認。
$ getsebool httpd_enable_homedirs httpd_enable_homedirs --> off
SELinuxは詳しくないけど、apacheだけでもいろいろと設定があるらしい。
とかく、home以下がアクセス拒否になっているので、許可するように変更する。
$ sudo setsebool -P httpd_enable_homedirs on
これで完了。