読者です 読者をやめる 読者になる 読者になる

mazeltov7のweb断片

備忘録的なテキトーなことを書きます。間違ってたり、ツッコミあればお願いします。

CentOS, ApacheでSymlinkを使う場合の設定

何回もハマっててブチ切れたのでまとめる。

したいこと

webアプリを公開する際に/var/www/html以下に置いて公開できるけど、更新の際にsudo権限必要だし面倒なので自由にできるところから更新したい。方法としては、
・Symlinkを貼ってhome/username/から/var/www/html/以下に置く。
・UserDirを有効化して、home/username/public_html/とか作ってその下に置いて、これを公開する など。今回は前者のsymlinkを使ってやる。

メモ

(あんま関係無いけど)サーバー再起動の際とかでも自動で起動するようにまず

$ chkconfig httpd on

しとく。

次に、/etc/httpd/conf/httpd.confを編集していく。 まずエラー時にサーバー情報とか見えたりしないように

ServerTokens Prod

に書き換える。
また同じくサーバー署名を出さないように

ServerSignature Off

にする。 で、ここが本命

<Directory "/var/www/html">の中で
Options -Indexes FollowSymlinks

となってるのを確認。 次に/home/username/の権限を確認する。まぁ755とかなってたらおk。
で、SELinuxのデフォルトでhome以下へのアクセスは制限されてる。

$ getsebool httpd_enable_homedirs
httpd_enable_homedirs --> off

なので、onにする。

$ sudo setsebool -P httpd_enable_homedirs on

でOK. この辺りのSELinux設定ファイルは/etc/selinux/configにあるので確認をば。

以上。