カテゴリー
Linux

【CentOS】Ruby と Ruby on rails すら無い状態から Redmine をインストールする!【rbenv】

現在の環境と目指すところ

  • CentOS 5.10
  • Apache 2.2.3
  • MySQL 5.5.35
  • http://192.168.56.111/ でウェブブラウザからアクセス可能

PHP はインストールされておりますけれども、Ruby はされておりません。

といいますか、、、Ruby ってなにかしら?わたくし、宝石大好き!という程度です♪

そんな状態ですの。

さて、Redmine をインストールしたく存じます。どうやら Ruby と MySQL が必要なようですわね?また、ウェブアプリケーションですので、Ruby と Apache の連携も必要ですの。

本投稿では、WordPress 程度(Apache、MySQL、PHP)しか扱ったことのないわたくしたちが、Ruby をインストール、Apache 都の連携、そして Redmine のインストールまで試行錯誤しながら実現させていく、、、はずですわ♪

0.参考ページ♪

次の 4 つのページを参考にすれば、構築できるかしら。

Ruby のインストール方法は、サードパーティツールを使用することにこだわりました。といいますのも、yum や、ソースからのコンパイルでは、次のような問題点があると Ruby のページを拝見して納得し、わたくしもそう思ったからでした。

大半のパッケージマネージャは公式リポジトリに古いバージョンの Ruby しかない

サードパーティ製ツールかパッケージマネージャを使う方が良い考えです。 何故なら、ソースからインストールされた Ruby はどのツールからも管理されないからです。

1.Ruby 環境構築!

環境構築していくなかで、何かと何かをダウンロードしますでしょうから、場所を /tmp/ に移動しまして、放っておいてもインストール後に不要なファイルが削除されるようにいたします。

cd /tmp/

さて、インストールの仕方ですけれども大きな流れとしては次のページのインストール方法に従います。

  1. sstephenson/rbenv · GitHub
  2. sstephenson/ruby-build · GitHub
  3. rbenv install バージョン、でインストール

次に、使用したコマンドを抜き書きいたします。なお、Ruby はバージョンを 3 つインストールしております。これは、今回 Ruby を初めて触るということもあり、本当に複数バージョンを扱えるのか試したかったからですの。

# rbenv をインストールするのに必要な git をインストール
yum install git

# 複数バージョンを扱える Rubyのパッケージ管理ツールのインストール
# rbenv リポジトリのコピーを取得
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
# rbenv をコマンドとして使えるようにするために .bash_profileに 2 つ追加、シェル再起動
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL -l
# rbenv の起動を確認
rbenv
# ruby-build インストール
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# Ruby インストール(2014年1月30日時点最新、前世代、古い安定版)、リハッシュ
rbenv install -v 2.1.0
rbenv rehash
rbenv install -v 2.0.0-p353
rbenv rehash
rbenv install -v 1.9.3-p484
rbenv rehash
# 使用できる Ruby を確認
rbenv versions
# OS 全体で使用する Ruby を指定
rbenv global 2.1.0

# Ruby バージョンの確認
ruby -v

# gem(Ruby のライブラリ)アップデート
gem update --system -V
# gem の一括インストールツール Bundler インストール
gem install bundler
# Ruby インストール時や コマンドのある gem の場合は rbenv リハッシュ
rbenv rehash

以下、ポイントや苦労したところを記述します。

  • /tmp/ にわざわざ移動しましたけれども rbenv インストール時点では不要でした。ファイルがここにダウンロードされることはありませんでした。rbenv のリポジトリコピーはユーザのホームディレクトリ「~」を指定して取得しますので。
  • Ruby インストール時は /tmp/ にダウンロードされました。
  • シェル再起動は「exec $SHELL -l」で行いました。参考ページ通りの「type rbenv」ですとできませんでした。次のようなエラーメッセージとなりました。
    [root@localhost tmp]# type rbenv
    -bash: type: rbenv: not found
    [root@localhost tmp]#
  • rbenv で起動を確認した時のメッセージですわ。ヘルプになっておりますの。
    [root@localhost tmp]# rbenv
    rbenv 0.4.0-89-g14bc162
    Usage: rbenv <command> [<args>]
    
    Some useful rbenv commands are:
       commands    List all available rbenv commands
       local       Set or show the local application-specific Ruby version
       global      Set or show the global Ruby version
       shell       Set or show the shell-specific Ruby version
       rehash      Rehash rbenv shims (run this after installing executables)
       version     Show the current Ruby version and its origin
       versions    List all Ruby versions available to rbenv
       which       Display the full path to an executable
       whence      List all Ruby versions that contain the given executable
    
    See `rbenv help <command>' for information on a specific command.
    For full documentation, see: https://github.com/sstephenson/rbenv#readme
    [root@localhost tmp]#
  • ruby-build をインストールしますと、rbenv のヘルプにインストール、アインストールが追加されますの♪
    [root@localhost tmp]# rbenv
    …略…
       install     Install a Ruby version using ruby-build
       uninstall   Uninstall a specific Ruby version
    …略…
    [root@localhost tmp]#
  • rbenv install バージョン、で指定できる Ruby バージョンは次の公式ページのものを使用しました。
    ダウンロード https://www.ruby-lang.org/ja/downloads/
  • rbenv install 2.1.0 でエラーとなりました><。メッセージを読むと、「gcc」など、コンパイル関係が足りないようです。次をインストールいたしましてエラーを解消しました。
    # 開発ツール(Cコンパイラ等)
    yum groupinstall "Development Tools"
    # RubyとPassengerのビルドに必要なヘッダファイルなど
    yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
  • rbenv install -v 2.1.0 のように「-v」オプションで途中経過を表示してくださいますので安心できます。ですけどもとても多いです。逆に、オプションを付けないと、次のような簡素な表示となりました。
    [root@localhost tmp]# rbenv install 2.1.0
    Downloading ruby-2.1.0.tar.gz...
    -> http://dqw8nmjcqpjn7.cloudfront.net/9e6386d53f5200a3e7069107405b93f7
    Installing ruby-2.1.0...
    Installed ruby-2.1.0 to /root/.rbenv/versions/2.1.0
    
    [root@localhost tmp]#
  • Ruby のインストールには非常に時間がかかりました。15 分ほどでしたでしょうか。気長に待ちましょう。
  • gem コマンドで Bundler をインストールしましたけれども、Bundler は rbenv で指定した現在動いているバージョンの Ruby にのみインストールされます。バージョンを切り替え「gem list」で確認しますと、Bundler は入っておりませんでした。
  • Bundler インストール後に rbenv rehash いたしましたけれども、本当に必要かどうかはわかりません。Bundler がコマンドを提供しているかどうか、知らないからですの。よくわかりませんので、保険として rehash しておりますの。
  • 無くても良いけれども、あれば「ガントチャートをPNG形式の画像にエクスポートする機能、添付ファイルのサムネイル画像を作成」ができる、そのためのパッケージをインストールいたします。
    # ImageMagickとヘッダファイル・日本語フォント
    yum install ImageMagick ImageMagick-devel
    yum install ipa-pgothic-fonts

2.Redmine をインストール!

次を順に行って、Redmine をインストール、動作確認いたします♪

  • MySQL にデータベースを作成
  • Redmine のダウンロード、展開、配置、そして設定ファイルの編集
  • Gem パッケージのインストール
  • Redmine の初期設定とデータベースのテーブル作成
  • Apache 設定!Passenger のインストール
  • Apache 設定!Passenger の設定
  • Apache 設定!Redmine を動かすための設定
  • Redmine にウェブブラウザからアクセス♪

2−1.MySQL にデータベースを作成♪

MySQL にログインして、Redmine 用のデータベースを作成します。特に変わったところはなく、普通に作ります。

指定しておりませんので、この場合 MySQL ユーザの host は % となります。localhost ではありませんでした。

CREATE DATABASE redminedb DEFAULT CHARACTER SET utf8;
GRANT ALL ON redminedb.* TO redmineuser IDENTIFIED BY 'redminepass';
FLUSH PRIVILEGES;

2−2.Redmine のダウンロード、そして設定ファイルの編集

次のページからダウンロードいたします。

本当は参考ページをなぞって「ダウンロード、展開、配置、そして設定ファイルの編集」の予定でした。

けれども、rbenv の時のように GitHub からのダウンロードもございますことを知りました。Git を使えば展開(解凍)は不要ですし、配置(移動)もいらないのではないでしょうか?ちょっと試してみますわね♪

git clone https://github.com/redmine/redmine.git /var/lib/redmine

うん!これでよいですわ!git clone を使えば展開不要で場所を指定してソースを収めるディレクトリも作成してダウンロードすることができました♪

設定ファイルの編集へと移りますが、まずはデータベース接続設定ファイルです。

# Redmine をインストールしたディレクトリに移動
cd /var/lib/redmine/
# Redmine データベース設定例ファイルをコピー
cp config/database.yml.example config/database.yml
# データベース設定ファイルを編集
vim config/database.yml

作成したデータベース情報に書き換え、次のようにいたしました。他の部分は全てコメントにいたしました。

production:
  adapter: mysql2
  database: redminedb
  host: localhost
  username: redmineuser
  password: redminepass
  encoding: utf8

なお、「adapter: mysql2」は、ruby1.9 の場合の記述とのことです。ruby2.1.0 を使用しておりますが、このままで大丈夫、でしょうか、、、なのだと思います。ただし、ruby1.8 の場合は「adapter: mysql」と変更しなければならないようです。

# Default setup is given for MySQL with ruby1.9. If you’re running Redmine

# with MySQL and ruby1.8, replace the adapter name with `mysql`.

続いて、メール、日本語フォントへのパスの設定などを行うファイルです。

設定のサンプルファイルを参考にする場合はまずコピー、次にファイルを開きます。

# 設定サンプルをコピー
cp config/configuration.yml.example config/configuration.yml
# メール、日本語フォントへのパスの設定
vim config/configuration.yml

default には全ての環境に共通する設定を記述するということです。本投稿では 1 つの環境の Redmine だけですので、ここのサンプルを編集すれば、、、なのですけれども、面倒ですのでサンプルを参考に新しくファイルを作成します。

# 一旦ベースにしようと思った設定ファイルを削除
rm config/configuration.yml
# 新規ファイルとして設定ファイルを作成
vim config/configuration.yml

内容は、サンプルからコピーして次のようにいたしました。

# ==== Simple SMTP server at localhost
#
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25

# Configuration of RMagcik font.
#
rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

今回の Redmine 環境はローカルの VirtualBox 上に構築しております。そして、メールはろくに設定しておりません。ですのでメール設定部分は当てにしておりません。ですけれども、これをベースにメールを使える環境で設定すれば良いと存じます。

2−3.Gem パッケージのインストール

Gem(Ruby のライブラリ)の依存関係解決ツールである Bundler を利用して、Redmine に必要な Gem をインストールいたします♪

Redmine ソースを配置したディレクトリで次のコマンドを実行します。

cd /var/lib/redmine/
bundle install --without development test

しかし、エラーとなりました><。

An error occurred while installing mysql2 (0.3.15), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.15'` succeeds before bundling.

MySQL の何かがインストールされていないのかしら?どうやら、mysql-devel が足りないようですのでインストールします。

yum install mysql-devel

もう一度、上述の bundle コマンドを試してみますわね。あっ、、、別のエラーですわ><。

An error occurred while installing rmagick (2.13.2), and Bundler cannot continue.
Make sure that `gem install rmagick -v '2.13.2'` succeeds before bundling.

gem の rmagick がインストールされていないのか、バージョンが変なのか、そういった印象を受けます。エラーメッセージにあった、コマンドを実行してみます。

gem install rmagick -v '2.13.2'

エラーです><。どうやら CentOS にインストールした ImageMagic のバージョンが低いようですの><。

Can't install RMagick 2.13.2. You must have ImageMagick 6.4.9 or later.

こうしました。

# 一旦 ImageMagick、ImageMagick-devel を削除
yum remove ImageMagick
# 作業場所に移動
cd /tmp/
# ダウンロード
wget ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/i386/ImageMagick-6.8.8-4.i386.rpm
wget ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/i386/ImageMagick-devel-6.8.8-4.i386.rpm
# インストール
rpm -Uvh ImageMagick-6.8.8-4.i386.rpm

ここでまたエラーです><

エラー: 依存性の欠如:
    libfftw3.so.3 は ImageMagick-6.8.8-4.i386 に必要とされています

libfftw3.so.3、つまり fftw3 が足りないとのことですので、yum でインストールいたしました。

yum install fftw3

これで無事に ImageMagic をインストールできました。

# インストール
rpm -Uvh ImageMagick-6.8.8-4.i386.rpm

次は ImageMagic-devel ですけれども、、、次のエラーとなりました><。

エラー: 依存性の欠如:
    ImageMagick-libs = 6.8.8-4 は ImageMagick-devel-6.8.8-4.i386 に必要とされています
    freetype-devel は ImageMagick-devel-6.8.8-4.i386 に必要とされています
    jasper-devel は ImageMagick-devel-6.8.8-4.i386 に必要とされています

か、解決すべく、これらをインストールします!

yum install freetype-devel jasper-devel

しかし、「ImageMagick-libs = 6.8.8-4 」がどうしても見つかりません。仕方ありませんので、ImageMagic を一旦アンインストールしまして、ImageMagic-lib のバージョンと揃った ImageMagic をインストールいたします。

# 別のバージョンのパッケージをダウンロード
wget ftp://rpmfind.net/linux/fedora/linux/development/rawhide/armhfp/os/Packages/i/ImageMagick-libs-6.8.7.0-4.fc21.armv7hl.rpm
wget ftp://rpmfind.net/linux/fedora/linux/development/rawhide/armhfp/os/Packages/i/ImageMagick-6.8.7.0-4.fc21.armv7hl.rpm

# アンインストール
rpm -e ImageMagick-6.8.8-4
# アンインストールの確認
rpm -q ImageMagick.i386
パッケージ ImageMagick.i386 はインストールされていません。

では ImageMagick-libs-6.8.7.0-4.fc21.armv7hl.rpm、ImageMagick-6.8.7.0-4.fc21.armv7hl.rpm をインストールしていきます。

rpm -Uvh ImageMagick-libs-6.8.7.0-4.fc21.armv7hl.rpm

ダメでした。どちらも、依存性の欠如で更に多くのパッケージを入れるべし!とエラーが出ました><。

キリがなさそうですわね。今回は諦めます!

・・・ハアー!ハアー!いいえ!こんなことでは諦めきれません!くやしいですもの!

そこで、先日の投稿で ImageMagick を試行錯誤の上、ソースからビルドしてインストールいたしました。

そしてようやく、bundle install が成功したのでした♪ヤッタ!

[root@localhost ~]# cd /var/lib/redmine/
[root@localhost redmine]# vim config/configuration.yml
[root@localhost redmine]# bundle install --without development test
Using rake (10.1.1)
Using i18n (0.6.9)
Using multi_json (1.8.4)
Using activesupport (3.2.16)
Using builder (3.0.0)
Using activemodel (3.2.16)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.5)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.3)
Using tilt (1.4.1)
Using sprockets (2.2.2)
Using actionpack (3.2.16)
Using mime-types (1.25.1)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (3.2.16)
Using arel (3.0.3)
Using tzinfo (0.3.38)
Using activerecord (3.2.16)
Using activeresource (3.2.16)
Using awesome_nested_set (2.1.6)
Using coderay (1.1.0)
Using rack-ssl (1.3.3)
Using json (1.8.1)
Using rdoc (3.12.2)
Using thor (0.18.1)
Using railties (3.2.16)
Using jquery-rails (2.0.3)
Using mysql2 (0.3.15)
Using net-ldap (0.3.1)
Using ruby-openid (2.3.0)
Using rack-openid (1.4.2)
Using bundler (1.5.2)
Using rails (3.2.16)
Using redcarpet (2.3.0)
Using rmagick (2.13.2)
Your bundle is complete!
Gems in the groups development and test were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
[root@localhost redmine]#

2−4.Redmine の初期設定とデータベースのテーブル作成

まずは失敗例から。これ、アカンですの><。これ、先ほどの bundle install が成功しなかった段階で無理矢理に行ってみた時のエラーですの。

無理矢理はいけませんわね♪

[root@localhost redmine]# cd /var/lib/redmine/
[root@localhost redmine]# bundle exec rake generate_secret_token
Could not find gem 'selenium-webdriver (>= 0) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.
[root@localhost redmine]#

さて、Gem パッケージのインストールが成功した後ですと、次のコマンドでアッサリとセッションデータ改ざん防止用の鍵生成とデータベースのテーブル作成が成功しました。

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

さて、テーブル作成に成功したようです。とても長いですので、その表示は省略しますわね。

2−5.Apache 設定!Passenger のインストール

PHP の場合、yum でインストールした時点で Apache と連携がとれておりましたけれども、Ruby の場合は Gem パッケージとしてインストールする必要があるようですわね。

gem install passenger --no-rdoc --no-ri
Fetching: daemon_controller-1.1.8.gem (100%)
Successfully installed daemon_controller-1.1.8
Fetching: passenger-4.0.37.gem (100%)
Building native extensions.  This could take a while...
Successfully installed passenger-4.0.37
2 gems installed

インストールしましたが、まだ完了ではありませんの。

もうひとつ、インストール手順がございます。

Passenger はインストールしたけれども、Passenger と Apache を連携するモジュールがまだ、これから行うのは Apache モジュールのインストール、そのように考えておりますわ。

では、Passenger の Apache 用モジュールのインストールをして参りましょう。

passenger-install-apache2-module
-bash: passenger-install-apache2-module: command not found

・・・アイエエエエエ・・・パスが通っておりませんの!?

あ、忘れておりましたわ♪rehash しなければ♪

rbenv rehash

そうしますと、先ほどの「passenger-install-apache2-module」コマンドで次のインストールに進むことができました♪

しかし!エラーとなりました><。

Welcome to the Phusion Passenger Apache 2 module installer, v4.0.37.

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

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

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 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.

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

Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, ensure that your terminal supports UTF-8.

 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor

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

Warning: some directories may be inaccessible by the web server!

The web server typically runs under a separate user account for security
reasons. That user must be able to access the Phusion Passenger files.
However, it appears that some directories have too strict permissions. This
may prevent the web server user from accessing Phusion Passenger files.

It is recommended that you relax permissions as follows:

  sudo chmod o+x "/root"

Press Ctrl-C to return to the shell. (Recommended)
After relaxing permissions, re-run this installer.
  -OR-
Press Enter to continue anyway.

パーミッションがきつすぎますので「chmod o+x “/root”」のコマンドで緩めてね♪ということのようですわね。

# /root ディレクトリのパーミッションを緩める
# 変更前 drwxr-x---   6 root root  4096 11月 27 21:40 root
# 変更後 drwxr-x--x   6 root root  4096 11月 27 21:40 root
chmod o+x /root/

これを設定後、再びインストールコマンドを叩き、先ほどの続きですの。

あら、また。今度は、エラーではなく警告ですわね。

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

Checking for required software...

 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
 * Checking for C++ compiler...
      Found: yes
      Location: /usr/bin/c++
 * Checking for Curl development headers with SSL support...
      Found: yes
      curl-config location: /usr/bin/curl-config
      Header location: somewhere, not sure where
      Version: libcurl 7.21.7
      Usable: yes
      Supports SSL: yes
 * Checking for OpenSSL development headers...
      Found: yes
      Location: true
 * Checking for Zlib development headers...
      Found: yes
      Location: true
 * Checking for Apache 2...
      Found: yes
      Location of httpd: /usr/sbin/httpd
      Apache version: 2.2.3
 * Checking for Apache 2 development headers...
      Found: no
 * Checking for Rake (associated with /root/.rbenv/versions/2.1.0/bin/ruby)...
      Found: yes
      Location: /root/.rbenv/versions/2.1.0/bin/ruby /root/.rbenv/versions/2.1.0/bin/rake
 * Checking for OpenSSL support for Ruby...
      Found: yes
 * Checking for RubyGems...
      Found: yes
 * Checking for Ruby development headers...
      Found: yes
      Location: /root/.rbenv/versions/2.1.0/include/ruby-2.1.0/ruby.h
 * Checking for rack...
      Found: yes
 * Checking for Apache Portable Runtime (APR) development headers...
      Found: no
 * Checking for Apache Portable Runtime Utility (APU) development headers...
      Found: no

Some required software is not installed.
But don't worry, this installer will tell you how to install them.
Press Enter to continue, or Ctrl-C to abort.

パーミッションは問題なさそうですわね。Apache 側の何かで問題が起きているようです。まずはこのまま、進めてみますの♪

まあ!解決方法が提示されましたわ!パッケージが、足りないのですね!てへ。

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

Installation instructions for required software

 * To install Apache 2 development headers:
   Please install it with yum install httpd-devel

 * To install Apache Portable Runtime (APR) development headers:
   Please install it with yum install apr-devel

 * To install Apache Portable Runtime Utility (APU) development headers:
   Please install it with yum install apr-util-devel

If the aforementioned instructions didn't solve your problem, then please take
a look at the Users Guide:

  /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37/doc/Users guide Apache.html
  http://www.modrails.com/documentation/Users%20guide%20Apache.html

そこで、表示に従って「httpd-devel」「apr-devel」「apr-util-devel」をインストールいたします。

yum install httpd-devel apr-devel apr-util-devel

ではもう一度、「passenger-install-apache2-module」を実行いたします!今度こそ!最後まで行くはずですわ♪

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

Checking for required software...

 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
 * Checking for C++ compiler...
      Found: yes
      Location: /usr/bin/c++
 * Checking for Curl development headers with SSL support...
      Found: yes
      curl-config location: /usr/bin/curl-config
      Header location: somewhere, not sure where
      Version: libcurl 7.21.7
      Usable: yes
      Supports SSL: yes
 * Checking for OpenSSL development headers...
      Found: yes
      Location: true
 * Checking for Zlib development headers...
      Found: yes
      Location: true
 * Checking for Apache 2...
      Found: yes
      Location of httpd: /usr/sbin/httpd
      Apache version: 2.2.3
 * Checking for Apache 2 development headers...
      Found: yes
      Location of apxs2: /usr/sbin/apxs
 * Checking for Rake (associated with /root/.rbenv/versions/2.1.0/bin/ruby)...
      Found: yes
      Location: /root/.rbenv/versions/2.1.0/bin/ruby /root/.rbenv/versions/2.1.0/bin/rake
 * Checking for OpenSSL support for Ruby...
      Found: yes
 * Checking for RubyGems...
      Found: yes
 * Checking for Ruby development headers...
      Found: yes
      Location: /root/.rbenv/versions/2.1.0/include/ruby-2.1.0/ruby.h
 * Checking for rack...
      Found: yes
 * Checking for Apache Portable Runtime (APR) development headers...
      Found: yes
      Location: /usr/bin/apr-1-config
      Version: 1.2.7
 * Checking for Apache Portable Runtime Utility (APU) development headers...
      Found: yes
      Location: /usr/bin/apu-1-config
      Version: 1.2.7

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

Sanity checking Apache installation...
All good!

--------------------------------------------
Compiling and installing Apache 2 module...
cd /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37
# /root/.rbenv/versions/2.1.0/bin/ruby /root/.rbenv/versions/2.1.0/bin/rake RELEASE=yes apache2:clean apache2
rm -rf buildout/cache

… おそらく数千行のコンパイルログ。略 …

--------------------------------------------
Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37
     PassengerDefaultRuby /root/.rbenv/versions/2.1.0/bin/ruby
   </IfModule>

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER to continue.

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

Deploying a web application: an example

Suppose you have a web application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /somewhere/public    
      <Directory /somewhere/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>
   </VirtualHost>

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

  /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37/doc/Users guide Apache.html
  http://www.modrails.com/documentation/Users%20guide%20Apache.html

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

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

成功しましたわね♪ヤッタ。ここで大事なのは最後部の「Please edit your Apache configuration file, and add these lines:」の次ですわね♪

これを、Apache に読み込ませますの♪次の 2-6. で行いますわ。

と、その前に。

ゆるめた「/root」のパーミッションを元に戻しますの。

chmod 750 /root/

追記。ゆるめたパーミッションは元に戻してはいけません。つまり「chmod 750 /root/」は不要です。Redmine が実行できなくなります。詳しくは後述の「2−8.Redmine にウェブブラウザからアクセス♪」をご参照くださいませ。

2−6.Apache 設定!Passenger の設定

管理しやすいよう、Passenger の設定は別ファイルにまとめますの♪

vim /etc/httpd/conf.d/passenger.conf

最初の基本設定は、Passenger の Apache モジュールインストールの最後に表示された部分を貼り付けます。

それ以外の部分は、参考ページをそのまま貼り付けました。

# Passengerの基本設定
#
LoadModule passenger_module /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37
  PassengerDefaultRuby /root/.rbenv/versions/2.1.0/bin/ruby
</IfModule>

# Passengerが追加するHTTPヘッダを削除するための設定(任意)。
#
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)をご覧ください。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0

文法テストをいたしましたら、警告が出ましたの。

apachectl configtest
WARNING: The 'RailsFrameworkSpawnerIdleTime' option is obsolete. Please use 'PassengerMaxPreloaderIdleTime' instead.
Syntax OK

設定の最後の行ですわね。もはや RailsFrameworkSpawnerIdleTime は使われない設定ということで、「PassengerMaxPreloaderIdleTime 0」へ修正いたしました。

もう一度文法テストを実施いたしまして、問題が無いことを確認し、Apache 再起動です!

/etc/init.d/httpd restart

2−7.Apache 設定!Redmine を動かすための設定

Apache が Redmine を実行できるように、ファイル一式を配置しました /var/lib/redmine/ ディレクトリの所有者を apache ユーザに変更します。

chown -R apache:apache /var/lib/redmine/

次に、Redmine へどのような URL でアクセスするかです。他の開発も試す環境にインストールを実施しておりますので、サブディレクトリで Redmine を実行する、たとえば http://example.com/redmine/ で Redmine へアクセスできるようにいたします。

まずはシンボリックリンクを作成します。

ln -s /var/lib/redmine/public /var/www/html/redmine

・・・今まで PHP に慣れ親しんでいるためか、Apache の Alias 設定ではなく、Linux の シンボリックリンクを使用することに違和感を感じます。ですが郷に入っては郷に従えですの。

続いて、Apache 設定に次を追加いたします。

vim /etc/httpd/conf.d/passenger.conf
# サブディレクトリで Redmine を実行
#
RackBaseURI /redmine

そして、Apache 再起動です!

apachectl configtest
/etc/init.d/httpd restart

これでいよいよ、インストール完了!ですわよね?

2−8.Redmine にウェブブラウザからアクセス♪

そして仮想マシンの IP アドレスでウェブブラウザからアクセス「http://192.168.56.113/redmine/」

っターン!

スクリーンショット 2014-02-04 23.06.34.png

あらら><。

では、Passenger の Apache モジュールをインストールした時の、/root/ ディレクトリの制限をゆるめてみましょうか。

chmod o+x /root/

そしてもう一度、ッターン!

スクリーンショット 2014-02-04 23.11.58.png

・・・上手くいきました。ですけれども、、/root/ ディレクトリのパーミッションを緩めることが、少しだけ気になりますの!なんとかできないかしら?

「Cannot execute “/root/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-4.0.37/buildout/agents/SpawnPreparer”: Permission denied (errno=13)」とあります。

ですのでお試しに、SpawnPreparer の所有者ユーザおよびグループを root から apache に変更し、/root/ ディレクトリのパーミッションも 750 に戻して Apache を再起動してみましたの。

ダメでしたわ!

仕方ありません。諦めて元に戻し、Ruby や Passenger をインストールした /root/ ディレクトリのパーミションは 751 のまま、進めますの。

おわりに

ドットインストールは手順の俯瞰や結果が実際に現れるのをこの目で見る、という点で大変便利と感じましたわ♪

一方で、なぜそうなるのか、そのコマンドの裏には何があるのか、といった「なぜ?」を満足させることは難しいとも感じました。

ドットインストールは「短い動画」が最大の長所、武器のひとつとしていることと存じますので致し方ないと存じます。心ない方なら、「バイトのマニュアル」と断じるかもしれません><。

というような事を最初に少し思いましたけれども、ImageMagick のインストールで躓いた時に完全に意識の外に追いやられました。わたくしたちには、かのサービスの質など興味ありませんものね。

いくつかの事を諦めました。必要なパッケージの yum での管理、/root/ ディレクトリのパーミッション。。。あら?2 つだけかしら?

振り返ってみますと、苦労したところなど、まさに言葉通り点でしかありませんでしたわね。ですけれども、学んだことはたくさん、でしたの♪

試してよかったですわ♪

また Redmine をインストールするときは、もっともっと時間を短縮して、きっとできますの♪

以上です。

コメントを残す