LoginSignup
19
21

More than 5 years have passed since last update.

CentOS6へのredmineオフラインインストール

Last updated at Posted at 2014-06-14

オフライン(インターネットに接続できない)のサーバにredmineをインストールしなければいけない場合の手順メモ。

セキュリティの厳しい企業などでは、インターネットに接続できないサーバセグメントを使うところも(たまに)あります。
テクノロジとしてruby、python、nodejs系など合わないということはおいておいて、redmineとかはチーム開発に役に立つのでせめて使いたいなぁ。
みたいなときに。

事前にインターネットに接続できる環境でいくつかリソースを作っておくことを前提とします。
(ともかく、5-b-iをなんとかできればいけます)


環境

項目 内容 ruby2.0系 内容 ruby1.9系
Cent OS 6.5 同左
redmine 2.5.2.stable 同左
ruby 2.0.0-p481 1.9.3-p547
gem 2.4.1 同左
rails 3.2.19 同左
environment production 同左
database adapter mysql2 同左
アプリディレクトリ /usr/local/apl/redmine-2.5.2 同左
作業用ディレクトリ /usr/local/src 同左
httpdサブディレクトリ /var/www/html/redmine ※シンボリックリンク 同左
URL http://[hostname]/redmine 同左

事前準備

  1. インターネットに接続できる環境で、下記「インストール手順」の1〜5.1までを実施

  2. redmine配置先に移動

    # cd /usr/local/apl/redmine-2.5.2
    
  3. database.ymlを作成

    ./config/database.yml
    production:
      adapter: mysql2
      database: db_redmine
      host: localhost
      username: user_redmine
      password: "********"
      encoding: utf8
    
  4. bundleインストール(インターネット上の最新リソースを参照)

    "vendor/bundle"にgemパッケージ等をインストールする
    対象はproduction環境のみ、rmagickも除く
    # bundle install --without development test rmagick --path ./vendor/bundle
    
    bundleインストールしたリソースのキャッシュを作成
    # bundle package
    
  5. 上記で作成されたもの(redmine配置先の以下のファイル)をバックアップ

  • Gemfile.lock
    使用するgemパッケージのバージョンが記述されているファイル。

  • config/database.yml
    database接続情報が記述されているファイル(mysqlアダプタ指定)。

  • vendor/cache
    使用するgemパッケージがキャッシュされているディレクトリ。圧縮しておく。(bundle_cache.tar.gz)


インストール手順

0. ネットワーク関連

iptables、ip6tables、selinuxなどは必要に応じて設定。

1. yumパッケージ

CD-ROMからインストール
# mkdir /media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom/

※メディアのみの場合は"--disablerepo=\* --enablerepo=c6-media"を付与
# yum install gcc gcc-c++
# yum install httpd httpd-devel
# yum install mysql-server mysql-devel
# yum install openssl-devel readline-devel zlib-devel curl-devel 

2. libyaml

以下からlibyaml, libyaml-develをダウンロード
http://dl.fedoraproject.org/pub/epel/6/x86_64/

# rpm -ivh libyaml-0.1.6-1.el6.x86_64.rpm libyaml-devel-0.1.6-1.el6.x86_64.rpm

3. ruby

3.1. rubyインストール

以下からrubyソースパッケージをダウンロード
https://www.ruby-lang.org/ja/downloads/

解凍&展開
・ruby2.0系
# tar zxvf ruby-2.0.0-p481.tar.gz 
# cd ruby-2.0.0-p481
・ruby1.9系
# tar zxvf ruby-1.9.3-p547.tar.gz 
# cd ruby-1.9.3-p547

ビルド&インストール
# ./configure --disable-install-doc
# make
# make install

確認
・ruby2.0系
# ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-linux]

・ruby1.9系
# ruby -v
ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux]

3.2. gemパッケージインストール

オフラインの場合は以下から対象のgemパッケージを検索して
ダウンロードし、ファイル名指定でインストールする
https://rubygems.org/


■gemを最新版に更新
・オンライン
# gem update --system --no-rdoc --no-ri

・オフライン
# gem install rubygems-update-2.4.1.gem
# update_rubygems

gemバージョン確認
# gem -v
2.4.1


■bundlerインストール
# gem install bundler --no-rdoc --no-ri

■passenger関連gemインストール
# gem install daemon_controller rack passenger --no-rdoc --no-ri


■確認
・1.9系
# gem list
bigdecimal (1.1.0)
bundler (1.6.5)
daemon_controller (1.2.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
passenger (4.0.48)
rack (1.5.2)
rake (0.9.2.2)
rdoc (3.9.5)
rubygems-update (2.4.1)

・2.0系
# gem list
bigdecimal (1.2.0)
bundler (1.6.5)
daemon_controller (1.2.0)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
passenger (4.0.48)
psych (2.0.0)
rack (1.5.2)
rake (0.9.6)
rdoc (4.0.0)
rubygems-update (2.4.1)
test-unit (2.0.0.0)

4. mysql

4.1. my.cnfにutf8の設定を追加

/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8

4.2. mysqlサービス設定

起動
# service mysqld start

自動起動設定
# chkconfig mysqld on

セキュリティ設定(rootパスワード他)
# mysql_secure_installation

DB、ユーザー作成
# mysql -u root -p
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine@localhost identified by '********';
mysql> flush privileges;
mysql> exit

5. redmine

5.1. redmineリソース配置

以下から最新のredmineを取得する
http://www.redmine.org/projects/redmine/wiki/Download
redmine-2.5.2.tar.gz

配置する
# mkdir /usr/local/apl
# tar zxvf redmine-2.5.2.tar.gz
# mv ./redmine-2.5.2 /usr/local/apl/

5.2. redmineビルド(bundlerを使用)

5.2.1. 事前に作成したリソースの配置(※1 作成方法は「事前準備」)

Gemfile.lockの配置
# cp [Gemfile.lockファイル] /usr/local/apl/redmine-2.5.2/

database.ymlの配置
# cp [database.ymlファイル] /usr/local/apl/redmine-2.5.2/config/

キャッシュの配置
# tar zxvf bundle_cache.tar.gz
# mv  [解凍したディレクトリ] /usr/local/apl/redmine-2.5.2/vendor/

5.2.2. bundlerでredmineをビルド

redmine配置先に移動
# cd /usr/local/apl/redmine-2.5.2

bundleインストール(ローカルのキャッシュ参照)
# bundle install --without development test rmagick --path vendor/bundle --local

redmineのビルド
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate

6. passengerとhttpdの設定

6.1. httpdモジュールインストール

インストール
# passenger-install-apache2-module
-> 実行後、以下の部分を6-bに記載する
    LoadModule・・・
      <IfModule mod_passenger.c> 〜 </IfModule>

6.2. passenger用conf設定

/etc/httpd/conf.d/passenger.conf
・2.0系
LoadModule passenger_module /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.48/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/lib/ruby/gems/2.0.0/gems/passenger-4.0.48
     PassengerDefaultRuby /usr/local/bin/ruby
   </IfModule>

・1.9系
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.48/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.48
     PassengerDefaultRuby /usr/local/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"

PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0

# DocumentRootのサブディレクトリで実行する設定
RackBaseURI /redmine

6.3. シンボリックリンク作成

# ln -s /usr/local/apl/redmine-2.5.2/public /var/www/html/redmine

6.4. 権限設定

# chown -R apache:apache /var/www/html/redmine
# chown -R apache:apache /usr/local/apl/redmine-2.5.2

6.5. httpdサービス起動 or 再起動

httpdサービス自動起動有効化
# chkconfig httpd on

httpdサービス起動
# service httpd configtest
# service httpd start

またはhttpdサービスの再起動
# service httpd configtest
# service httpd graceful
19
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
21