昔からの慣例というか癖で、開発マシンの httpd の DocumentRoot を、/mine/www/というところに設定しているのですが、Fedora に SELinux という仕組みが搭載されてから、怒られるようになってしまいました。
調べてみると、新しく設定したドキュメントルートに、httpd がアクセスするための SELinux のラベルが設定されていないのが原因のようで、こちらの記事に対処方法が書いてありました。
基本的にはこの通り実行しただけなのですが、自分の環境だとラベルがちょっと違ったので、それも含めてメモしておきます。
なお、自分の環境は、Fedora 21 で、ドキュメントルートは/mine/www/です。
参考にさせてもらっている記事のやり方にならって、まずは、もともとドキュメントルートに設定されていた/var/www/の設定を見てみます。
$ ls --context /var/ | grep www drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 www/ $ ls --context /var/www/ drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin/ drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html/
参考元の記事と違って、最後にs0というラベルが付いていますね。
これも含めて、新しいドキュメントルートに対し、ラベルを設定します。
今回は Web の開発マシンということで、どこでも CGI が動くようにしたいので、cgi-binに設定されているラベルを適用したいと思います。
$ sudo chcon system_u:object_r:httpd_sys_script_exec_t:s0 /mine/www/ -R $ ls --context /mine/ | grep www drwxrwxr-x. root developers system_u:object_r:httpd_sys_script_exec_t:s0 www/
ちなみにs0無しでやってみたら、設定が適用されませんでした。
設定ができたら、httpd を再起動してみます。
$ sudo systemctl restart httpd.service
特に怒られなければ成功です。