やったことだけ書く備忘録

Ubuntu12.04 LTS + Nginx + MySQLでRedmineを動かすメモ

とある案件でRedmineを準備しようってなったんですが、せっかくだし入れたことない環境に入れますかと意味不明なチャレンジ精神が沸き起こってやってみたメモです。一回インストールするとすぐ忘れちゃうので今回はちゃんと備忘録として残しておきます。

まぁ…面倒ではありますよね


何回かインストールしたことあるんですが、スキル不足の為スムーズに入ったことがなく…それでも今回はわりとスムーズに入りました。あ、すでにやってるエントリはたくさんありますので、そちらを参照した方が早いかもです。




Ubuntu 12.04 + ruby 1.9.3 + nginx + unicorn + Redmine - くじらにっき++


CentOS 6.3 にRedmine をインストールしてみた - letsspeak's diary




用意するものと環境とか


今回はさくらVPSのUbuntu Serverです。upgradeしたら12.04 LTSになっちゃったのでまぁいいかということで。nginxとMySQLはaptから、rubyとRedmineはソースから入れる構成です。特に深い理由はありません(nginx/MySQLはすでに稼動しているサービスで使ってたので)。あと、上記サイトを参考にしてたらnginxでリバースプロキシして5001番ポートでハンドルするようにしてました。それがいいのかわかりませんが、先人に習っておくことにします。

では、インストール行きましょう。



rubyのインストール(ソースから)


Ubuntuだとバージョン指定のaptで入るんですが、特にコレ以外に用途が無いのでバージョン指定で…。
特に苦もなく、ソースを落としてきてコンパイル。



wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.gz
tar xvfz ruby-1.9.3-p429.tar.gz
cd ruby-1.9.3-p429
$ ./configure --prefix=/usr/local
sudo make
sudo make install
 


コンパイルの途中で、「libffiとyaml無いよ」って言ってたので、入れてから再度makeしました。




$ sudo apt-get install libffi-dev
$ sudo apt-get install libyaml-dev


あとは/usr/local/ruby/bin/にパスを通しておきます。




vim ~/.bashrc

export PATH
=$PATH:/usr/local/ruby/bin

source 
~/.bashrc
 



$ ruby -v
ruby 1.9.3p429 (2013-05-15) [x86_64-linux]

$ gem -v
1.8.23


OKですね。続いてRedmine…の前に、MySQLの設定をしておきます。



MySQLの設定


設定と言っても専用のユーザとDBを作るくらいですかね。




mysql -uroot -p

create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'xxxxxx';
grant all privileges on redmine.* to 'redmine'@'localhost;
> flush privileges;
> \q
 


redmineというユーザとredmineというDBを作って完了です。



Redmineのインストール


インストールしたバージョンは2.3.1です。公式ブログを見ながらほぼそのままの手順ですね。ググると1.4とかの記事が散見されるので、一応メモメモ。

落としてきて、展開して、RailsのアレをすればOKですかね。




wget http://rubyforge.org/frs/download.php/76933/redmine-2.3.1.tar.gz
tar xvfz redmine-2.3.1.tar.gz
mv redmine-2.3.1 /var/www/redmine
cd /var/www/redmine
 


2.x系はbundleでいけるらしい。DBはMySQLなのでPostgresとかSQLiteは無効に。あとrmagickも無効に。
あと、後述しますがUnicornも使うのでここで入れておいちゃいます。




$ echo "gem 'unicorn'" >> Gemfile.local
bundle install --without development test postgresql sqlite rmagick
 


と、ここでmysql2が入らないって怒られました><Redmine2系からはmysql2らしいです。libmysqlclientが入ってなかった様子。




$ sudo apt-get install libmysqlclient-dev


で、再度bundle install。



DB設定。設定ファイルをコピーしてproductionの項目に設定記述。




cp config/database.yml.example config/database.yml
vim config/database.yml

production
:
  
adaptermysql2
  database
redmine
  host
localhost
  username
redmine
  password
: ******
  
encodingutf8
 


ファイルに書き込み権限付与。今回はnginxなのでnginxが書き込めるようにします。




chown -R nginx:nginx files log tmp plugins
chmod -R 755 files log tmp plugins
 



参考サイトにはpublic/plugin_assetsってあるんですが、何か今回のパッケージにはありませんでした。

んで、おきまりのアレ。




bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data → [ja]を選択
 


Webrickで動作テスト。(このへんからめんどくさいなーって思い始める)




bundle exec rails s -e production
=> Booting WEBrick
=> Rails 3.2.13 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
 


うん、動いてますね。続いてUnicornの設定を。



Unicornの設定と起動


Unicornでサーバ立てて、Nginxでリバースプロキシするのが一般的なようで、そんな感じで私もやります。設定ファイルは下記を参考にさせていただきました。config/unicorn.rbとして配置。

https://gist.github.com/letsspeak/3981772#file_unicorn.rb

起動ファイルは下記を参考にさせて頂きました。/etc/init.d/unicornとして配置。以下の部分を変更しています。

・configファイルの配置指定
・NAMEはredmineに変更
・startオプションのコマンドに「-p 5001」を追記

https://gist.github.com/arosh/3616832#file_unicorn

ありがとうございます。
Rubyあんまり書けないので…(´;ω;`)

ともあれ、自動起動設定設定して起動。




sudo sysv-rc-conf unicorn on
sudo /etc/init.d/unicorn start
 


起動完了。あとはnginxからリバースプロキシの設定をすればOKです。



Nginxの設定


今回Nginxはaptで入れたものなので、その構造に従って記述します。まずはnginx.confにupetramを追記。




sudo vim /etc/nginx/nginx.conf

http 
{

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


sites-availablesにredmineのホストを追加。




sudo vim /etc/nginx/sites-availables/redmine.example.jp

server 
{
        
listen 80;

        
root /var/www/html;
        
index index.html index.htm;

        
# Make site accessible from http://localhost/ 
        
server_name redmine.example.jp;

        
# Basic Authorization
        
auth_basic "Authorization Required";
        
auth_basic_user_file "/var/www/redmine/.htpasswd"

        
access_log /var/log/nginx/redmine.example.jp_access.log
        
error_log /var/log/nginx/redmineexample.jp_error.log
        
        
proxy_connect_timeout 60
        
proxy_read_timeout 60;
        
proxy_send_timeout 60

        
location / { 
                
root /var/www/redmine/public;
                if (-
f $request_filename) { 
                  break;
                }
     
                
fastcgi_buffers 16 16K;
                
fastcgi_buffer_size 32K;  
                
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://redmine;  
                
proxy_redirect off;
}
 


example.jpのところは適宜読み替えてください。あとはsites-enabledにシンボリックリンクを貼ってnginxを再起動。アクセスして、初期画面が表示されればOKです!



$ sudo ln -s /etc/nginx/sites-available/redmine.example.jp /etc/nginx/sites-enabled/redmine.example.jp
$ sudo /etc/init.d/nginx restart


終わりに


完全に覚書になってますね…。それでも昔より簡単になったような気がしないでもないです。
誰かの何かの参考になれば。というか上記の参考エントリを見てもらうのが早いと思います(´・ω・`)

« 前の記事 次の記事 »

1件のコメント

akemuravev さん

[url=http://100mgcheapest-price-viagra.com/]100mgcheapest-price-viagra.com.ankor[/url] <a href="http://tadalafil-buy-5mg.com/">tadalafil-buy-5mg.com.ankor</a> http://20mgprednisone-order.com/

コメントを投稿する

 画像に表示されている文字を入力してください。