Ubuntu + Redmine + nginx + MySQL

前提として、MySQL は既に apt でインストール済みということで進めます。
redmine 1.2 を nginx で動かすことがゴールです。

Ruby/Rails関連のインストール

ruby とその関連モジュールをインストールする。

$ sudo aptitude install ruby ruby1.8 ruby1.8-dev libopenssl-ruby1.8 -y


rubygems をインストールする。

$  wget http://rubyforge.org/frs/download.php/74445/rubygems-1.6.2.tgz
$  tar zxvf rubygems-1.6.2.tgz
$  cd rubygems-1.6.2/
$  sudo ruby setup.rb
$  sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
$  gem -v

redmine に必要な gem をインストールする。
各々の gem のバージョンに注意しないとうまくいかない。

$  sudo gem install i18n -v=0.4.2 --no-rdoc --no-ri
$  sudo gem install mysql --no-rdoc --no-ri
$  sudo gem install rack -v=1.1.2 --no-rdoc --no-ri
$  sudo gem install rake -v=0.8.7 --no-rdoc --no-ri
$  sudo gem install rails -v=2.3.11 --no-rdoc --no-ri
$  sudo gem install passenger --no-rdoc --no-ri

意図せずインストールされたバージョンをアンインストールしておきます。

$  gem list

*** LOCAL GEMS ***

actionmailer (2.3.11)
actionpack (2.3.11)
activerecord (2.3.11)
activeresource (2.3.11)
activesupport (2.3.11)
daemon_controller (0.2.6)
fastthread (1.0.7)
i18n (0.4.2)
mysql (2.8.1)
passenger (3.0.9)
rack (1.3.3, 1.1.2)
rails (2.3.11)
rake (0.9.2, 0.8.7)

このようにインストールされていたので、 rack 1.3.3 と rake 0.9.2 をアンインストールします。

$  sudo gem uninstall rack -v=1.3.3
$  sudo gem uninstall rake -v=0.9.2
$  gem list

*** LOCAL GEMS ***

actionmailer (2.3.11)
actionpack (2.3.11)
activerecord (2.3.11)
activeresource (2.3.11)
activesupport (2.3.11)
daemon_controller (0.2.6)
fastthread (1.0.7)
i18n (0.4.2)
mysql (2.8.1)
passenger (3.0.9)
rack (1.1.2)
rails (2.3.11)
rake (0.8.7)

こんな感じであればOK。

Redmine のソースコードを取得

こんな感じ。

$ hg clone --updaterev 1.2-stable https://bitbucket.org/redmine/redmine redmine-1.2

MySQL の準備

以下のSQLでデータベースとユーザを作成する。

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

Redmine のインストール

続いて RedmineInstall – Installation-procedure にのっとって作業を進めれば、基本的に問題なくいけるはず。
次に、先ほどダウンロードした redmine ソースコードのディレクトリに移動して、config/database.yml を作成する。

# MySQL (default setup).

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

development:
  adapter: mysql
  database: redmine_development
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: mysql
  database: redmine_test
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

続いてお決まりの作業を進める。

$ rake generate_session_store
$ RAILS_ENV=production rake db:migrate
$ RAILS_ENV=production rake redmine:load_default_data
$ sudo chown -R redmine:redmine files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets

これで、Redmine の準備は終了です。

passenger のインストール

たしか、依存関係の問題で libcurl3-dev を入れた方が良かった気がする。

$  sudo aptitude install libcurl3-dev -y

続いて、passernger のインストール

$  sudo gem install passenger --no-rdoc --no-ri
$  sudo passenger-install-nginx-module
Welcome to the Phusion Passenger Nginx module installer, v3.0.9.

This installer will guide you through the entire installation process. It
shouldn't take more than 5 minutes in total.

Here's what you can expect from the installation process:

 1. This installer will compile and install Nginx with Passenger support.
 2. You'll learn how to configure Passenger in Nginx.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.


--------------------------------------------

Checking for required software...

 * GNU C++ compiler... found at /usr/bin/g++
 * The 'make' tool... found at /usr/bin/make
 * A download tool like 'wget' or 'curl'... found at /usr/bin/wget
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/bin/rake
 * rack... found
 * Curl development headers with SSL support... found
 * OpenSSL development headers... found
 * Zlib development headers... found

--------------------------------------------

Automatically download and install Nginx?

Nginx doesn't support loadable modules such as some other web servers do,
so in order to install Nginx with Passenger support, it must be recompiled.

Do you want this installer to download, compile and install Nginx for you?

 1. Yes: download, compile and install Nginx for me. (recommended)
    The easiest way to get started. A stock Nginx 1.0.6 with Passenger
    support, but with no other additional third party modules, will be
    installed for you to a directory of your choice.

 2. No: I want to customize my Nginx installation. (for advanced users)
    Choose this if you want to compile Nginx with more third party modules
    besides Passenger, or if you need to pass additional options to Nginx's
    'configure' script. This installer will  1) ask you for the location of
    the Nginx source code,  2) run the 'configure' script according to your
    instructions, and  3) run 'make install'.

Whichever you choose, if you already have an existing Nginx configuration file,
then it will be preserved.

Enter your choice (1 or 2) or press Ctrl-C to abort: 2

既にインストール済みのnginxがあったので、2 を選択しました。
続けて nginx のソースコードの場所と、インストール先を指定を要求されるので、
ただしく入力すればOKです。
インストールが完了したら、以下のメッセージが表示されるので、
その通りに nginx の設定ファイルを修正します。

Nginx with Passenger support was successfully installed.

Please edit your Nginx configuration file (probably /usr/local/nginx/conf/nginx.conf),
and set the passenger_root and passenger_ruby configuration options in the
'http' block, like this:

  http {
      ...
      passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9;
      passenger_ruby /usr/bin/ruby1.8;
      ...
  }

After you (re)start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.

Press ENTER to continue.

--------------------------------------------

Deploying a Ruby on Rails application: an example

Suppose you have a Ruby on Rails application in /somewhere. Add a server block
to your Nginx configuration file, set its root to /somewhere/public, and set
'passenger_enabled on', like this:

   server {
      listen 80;
      server_name www.yourhost.com;
      root /somewhere/public;   # <--- be sure to point to 'public'!
      passenger_enabled on;
   }

And that's it! You may also want to check the Users Guide for security and
optimization tips and other useful information:

  /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9/doc/Users guide Nginx.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.

nginx を再起動し、表示確認して終了です。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中