CentOS6のApacheでRailsとPassengerをSELinux Enforcingで動かす
Redmineの設定だが
http://www.redmine.org/projects/redmine/wiki/RedmineAndSELinuxOnCentOS
が参考になった
調べてみると
Permissiveにしてaudit.logの拒否出力を
許可するモジュールを作れという大雑把なものが多く
それはあんまりかなと思い
ひとつひとつディレクトリやファイルの権限を変えてみた
インストールは下記
% ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] % sudo gem update --system 1.6.2 % sudo gem install rails -v 2.3.14 % sudo gem install passenger -v 2.2.15 % sudo passenger-install-apache2-module
最後のコマンドではApacheモジュールをコンパイルするので
事前にいろいろなdevelやaprなど入れておく必要あり
1.passengerの権限変更
% cd /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2 % sudo chcon -t bin_t ApplicationPoolServerExecutable % sudo chcon -t httpd_modules_t mod_passenger.so
前者は実行するのでbin_tに
後者はApacheモジュールなのでhttpd_modules_tに変更
2.Apacheの設定変更
PassengerTempDir /var/tmp/passenger
としてソケットを出すディレクトリを変更後
% sudo mkdir /var/tmp/passenger % sudo chcon -t httpd_tmpfs_t /var/tmp/passenger
3.railsコンテンツの権限変更
% sudo chcon -R -t httpd_sys_content_t ${RAILS_ROOT} % cd ${RAILS_ROOT} % sudo chcon -R -t httpd_log_t log % sudo chcon -R -t httpd_tmpfs_t tmp
最後のコンテンツ権限変更は不要かもしれない