CentOSにdjangoを入れるには...
CentOSでは、Apacheのドキュメントルート(/var/www/...)の外、例えばユーザディレクトリにデプロイしようとすると、パーミッションで引っかかりやすい。これに対処するための覚書を以下に記す。
1. UNIXのpermissionの変更
デプロイ先のユーザ・グループ名をapacheにする
$ chown -R apache:apache target_dir
2. SELinuxの設定を変更
アクセス対象ディレクトリに対して、
$ chcon -R -t httpd_sys_content_t target_dir
対象フォルダーのセキュリティーコンテキストを確認するには、
$ ls -ldZ target_dir
SELinuxを一時的に無効にして、監視を行いたい場合(permissive)は、
$ setenforce 0
(getenforceで現状の確認。setenforce 1でSELinuxを有効にする)
そして、セキュリティーで引っかかっていたアクセスを行い、
$ tail /var/log/audit/audit.log
でログを確認。あるいは、
$ ausearch -m avc
の方が見やすいかも知れない。
そしてエラーを出している行を探して、
のように、セキュリティーを適切に解除するための、設定ファイル内容およびコマンドを出力する。
これを元にセキュリティーを登録するには、
ちなみに、djangoの場合は、以下の2つのコマンドが必要となりそうだが、どうだろうか。
setseboolに-Pオプションを付けると、再起動しても設定内容が無効にならないようだ。
パスに応じて設定されているべき SELinux コンテキストの定義があるので、restorecon コマンドでこれに合わせることができる。