gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

redmineインストール殴り書き

備忘録としてですら怪しいような殴り書きなので、適当に見て下さいませ。

rubyは、1.9系にすると楽」って話が。yumで普通に入れると1.8系でした。
もしかすると、下記がとても楽になる、かも、なので、一応念のため。

試行錯誤しながらかなり「雑に」やってるので、手順が色々と滅茶苦茶なのは気にせずにw


yum install mysql
yum install mysql-devel
yum install mysql-server
yum install nginx
yum install ruby


su - gallu
sudo yum install rdoc
wget http://production.cf.rubygems.org/rubygems/rubygems-2.2.2.tgz
tar zvxf rubygems-2.2.2.tgz
sudo ruby ./setup.rb


# rootに戻って
gem uninstall -v 2.2.2 rubygems-update
gem install -v 1.8.17 rubygems-update
update_rubygems
gem -v


yum install ruby-devel


# なんかバージョンが駄目ぽいのでソースからinstall
su - gallu
wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p547.tar.gz
./configure
make
sudo make install


gem install rails -v 3.2.3


# 気づいたのでバージョン上げておく
gem install -v 1.8.29 rubygems-update
update_rubygems


# redmine用各種
gem install bundler
exit


# 以下、galluアカウント
cd
mkdir redmine
cd redmine
wget http://www.redmine.org/releases/redmine-2.5.1.tar.gz
tar zvxf redmine-2.5.1.tar.gz
cd redmine-2.5.1


#
sudo vi /etc/my.cnf
(default-character-set=utf8)
sudo /etc/rc.d/init.d/mysqld start


SQL発行
mysql -u root -p

create database redmine default character set utf8;
grant ALTER, CREATE, DELETE, DROP, INDEX, INSERT, LOCK TABLES, SELECT, UPDATE on redmine.* to redmine@localhost identified by 'ぱすわぁど';
flush privileges ;


# redmineのinstallカレントディレクトリにて
cp -p config/database.yml.example config/database.yml
vi config/database.yml
# 3箇所ほど接続情報があるぽいので、書き換える


sudo gem install mysql2
bundle install --without development test postgresql rmagick


# ----
sudo RAILS_ENV=production bundle exec rake db:migrate

めも

rake aborted!
cannot load such file -- bundler/setup

って出てきた時、コマンドにsudo付けてなかったので。
なんか、rootがいるのかもしれない…よぉわからん。
めも終わり


sudo RAILS_ENV=production bundle exec rake redmine:load_default_data
sudo bundle exec rake generate_secret_token


# テスト用。http://IPアドレス:3000/ でアクセス確認
sudo ruby script/rails server webrick -e production


#----------------------------
sudo gem install unicorn

vi config/unicorn.rb
# あちこち未検証。あとで修正する可能性

worker_processes 2
#working_directory /home/www/rails/charag

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

timeout 60

preload_app true # ダウンタイムをなくす

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

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

before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!

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

sleep 1
end

after_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end


vi Gemfile

# add
gem "unicorn"


# 起動&テスト
sudo bundle exec unicorn_rails -c config/unicorn.rb -E production -D -p 5001


#
sudo vi /etc/nginx/nginx.conf

http {
+ upstream redmine{
+ server 127.0.0.1:5001;
+ }

sudo vi /etc/nginx/conf.d/virtual.conf

server {
listen 80;
server_name redmine.m-fr.net;

access_log /var/log/nginx/redmine.access.log;
error_log /var/log/nginx/redmine.error.log;

location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }

### Reverse Proxy for Redmine on Unicorn
location / {
rewrite ^/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:5001;
}
}

# サーバ起動
sudo /etc/rc.d/init.d/nginx start


# mail関連の設定を変更:内容は公式サイトあたりを確認して
cp config/configuration.yml.example config/configuration.yml
vi config/configuration.yml


感想:
うん…バージョン依存がしんどい orz
Rubyistな人達が「バージョン管理は自動でtoolで」って言っている気持ちがよくわかる…けど、それって「まず"シンプルに疎結合で作る"っていう第一歩でしくじってる」ような気もするんだけどどうなんだろう?
「新しいのだと困らない」って話もあるので、カイゼンされていると信じたい…
あと、redmine、最新に対応していただけるとありがたいんだが。
ruby2.1系とかで動くのかしらん?

RubyGemsの2.2.2入れた時、railsが上手いこと入らないような感じがしたのだけど…なんかあるのかしらん?
現状さほど興味ないので、ざっくりと疑問だけ書いてみる B-p


この辺が落ち着いて「スムーズに動く」ようになってから試すかなぁ…現状だと、なんか「環境に対するTips」が結構なコストかけてしまいそうで、若干、躊躇(苦笑