個人用 nginx + redmine 立てました

手順がいろいろ合ってメモしきれなかったけど

ansibleで作ったzabbixのものとさくらのクラウドにあるredmineを使ってインストールしました さくらのクラウドにあったスタートアップスクリプトをそのまま流せばインストールされるのですが apacheは嫌なのでnginxに変更します

ということでさくらのクラウドにあるredmineのシェルの後に以下を追記するか 流し終わってから追加すればredmine + nginx + unicornの設定になると思います

[shell]

---------START OF apache -> nginx---------

sleep 5s service httpd stop

echo 'gem "unicorn"' >> /var/lib/redmine/Gemfile.local cd /var/lib/redmine && bundle install

cat <<EOT > /var/lib/redmine/config/unicorn.rb worker_processes 1

timeout 60

listen File.expand_path("tmp/sockets/unicorn.sock", ENV['RAILS_ROOT'])

pid File.expand_path("tmp/pids/unicorn.pid", ENV['RAILS_ROOT'])

stdout_path File.expand_path("log/unicorn.stdout.log", ENV['RAILS_ROOT']) stderr_path File.expand_path("log/unicorn.stderr.log", ENV['RAILS_ROOT'])

preload_app true GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true

before_fork do |server, worker| # In preload_app true, this setup is indispensable. defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!

# The old process is terminated with USR2 signal. old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end

after_fork do |server, worker| # In preload_app true, this setup is indispensable. defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end EOT

cd /var/lib/redmine && bundle exec unicorn_rails -c config/unicorn.rb -D -E production rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm yum -y install nginx rm -f /etc/nginx/conf.d/default.conf

cat <<EOT > /etc/nginx/conf.d/redmine.conf upstream redmine { server unix:/var/lib/redmine/tmp/sockets/unicorn.sock; }

server { listen 80; server_name localhost;

location / { root /var/lib/redmine/public;

if ( -f \$request_filename ) { break; }

proxy_set_header X-Real-IP  \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_set_header Host \$http_host;
proxy_pass http://redmine;

} } EOT

service nginx start

unicorn stop command

kill -quit 'cat /var/lib/redmine/tmp/pids/unicorn.pid'

---------END OF apache -> nginx---------

[/shell]

redmineで管理したいものはいろいろあったので色々楽しみです あとかなり大変だったのがredmineバックログプラグインを入れたり初期設定をしたりしたこと 一回やったらもうやりたいくないレベルで面倒ですね あと今回は一人だからロール管理とか結構楽だったんですけど これが複数で開発したりするから設定してね とかだったりすると設定大変そうだなぁと思いました まる