CentOS7.x の環境に Redmine (+rbenv/ruby-build) をインストールしたメモ
Apache経由でやろうとしたらうまくいかなかったので、Passneger Standalone で起動するとこまでやってみたメモ c⌒っ゚д゚)っφ
参考URL
- Redmine.jp
- Redmine 3.2をCentOS 7.1にインストールする手順(Redmine.jp Blog)
- rbenv(github)
- ruby-build(github)
- rbenv-gemset(github)
- Phusion Passenger(mod_rails for Apache)
- Deploying a Ruby application on Passenger Standalone
- Redmineを使い始めるための初期設定
依存パッケージのインストール
Ruby/Passengerのビルドに必要なファイルをインストールする。
# yum -y install @development openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
続けて Redmine を動かすために必要な PostgreSQL, ImageMagick, 日本語フォント をインストールする。
# yum -y install postgresql-server postgresql-devel ImageMagick ImageMagick-devel ipa-*-fonts
PostgreSQLサーバの初期設定
Redmine.jp Blog の内容そのまま
# postgresql-setup initdb# vi /var/lib/pgsql/data/pg_hba.conf
pg_hba.conf に下記2行を追加する。これも上記ブログのまま。
...# TYPE DATABASE USER ADDRESS METHODhost redmine redmine 127.0.0.1/32 md5 host redmine redmine ::1/128 md5 ...
自動起動を有効にし、起動する。
# systemctl enable postgresql# systemctl start postgresql
PostgreSQL/Redmine用DBの作成とユーザ登録
redmine で使うデータベース設定を行う。
# cd /var/lib/pgsql# sudo -u postgres createuser -P redmine# sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine# cd -
rbenv 環境の構築
Redmine を動かすのに必要なRubyの環境を rbenv を利用して構築する。 rbenv を用いてOS上でグローバルに利用するRubyとは別に Redmine 専用のRuby環境を作る。
ユーザを追加
Redmine(rails/passneger)を動かすためのユーザを作成し、次項以降はここで作成したユーザで作業を進める。
# useradd redmine# passwd redmine# su - redmine
"rbenv" のインストールと環境設定
公式サイト(github)に書かれている内容に従いインストールを行う。
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv$ cd ~/.rbenv && src/configure && make -C src$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
"ruby-build" のインストール
rbenv を利用してRubyのインスール行うために ruby-build プラグインを追加でインストールする。
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
"ruby-gemset" のインストール
gemの環境も良い感じに分けたいので rbenv-gemset プラグインも追加でインストールする。
$ git clone git://github.com/jf/rbenv-gemset.git ~/.rbenv/plugins/rbenv-gemset
rbenv の有効化
一旦ターミナルを抜けるか、別のターミナルからログインし直して "rbenv" が使えるようになっている事を確認する。
$ exit...(再ログイン)$ type rbenvrbenv is a function ...
Ruby のインストール
インストール可能なバージョンを確認し、お好みで好きなバージョンをインストールする。
$ rbenv install -l...2.3.1 #<-2016/08/09時点で v2.3.1 が最新だった ...$ rbenv install 2.3.1
Redmine のインストール
Redmine.jp Blog の内容を参考に、Redmine をインストールする。
$ curl -L -O http://www.redmine.org/releases/redmine-3.3.0.tar.gz$ tar zxvf redmine-3.3.0.tar.gz$ ln -s redmine-3.3.0 redmine
rbenv gemset を使い、Redmine用の環境を作成・適用する。
$ cd redmine$ rbenv gemset create 2.3.1 redmine-3.3.0 #<-Ruby2.3.1を元にRedmine用の環境を作成$ rbenv gemset list2.3.1: redmine-3.3.0$ rbenv local 2.3.1 #<-Ruby2.3.1を使用する(.ruby-version の作成)$ rbenv gemset init redmine-3.3.0 #<-Redmin用の環境を使用する(.rbenv-gemsets の作成)$ gem list$ gem install bundler #<-"bundelr"のインストール$ rbenv rehash #<-インストールした"bundler"を使えるようにする
データベース接続設定
データーベースへの接続設定ファイルを作成する。
$ cp ./config/database.yml.example ./config/database.yml$ vi ./config/database.yml
production: adapter: postgresql database: redmine host: localhost username: redmine password: ******** encoding: utf8
メール/日本語フォントの設定など
SMTPサーバの指定と、日本語フォントの指定を追記する。
$ cp ./config/configuration.yml.example ./config/configuration.yml$ vi ./config/configuration.yml
production: #<-"production"の配下に追記する。 email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: "example.com" rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
Redmine の初期設定
依存する gem のインストール
$ bundle install --without development test --path vendor/bundle
セッション改ざん防止用秘密鍵の作成
$ bundle exec rake generate_secret_token=>warningが出力されるが、ブログ記事でも同出力が記載されていたのでスルーする。
DBテーブルの作成と、データ登録
テーブルを作成して、Redmineのベースとなるデータを登録する。
$ RAILS_ENV=production bundle exec rake db:migrate$ RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data=>warningが出力されるが、ブログ記事でも同出力が記載されていたのでスルーする。
Passenger のインストール
元々Apache経由でRedmine(passenger)を動かそうと思っていたけど、なんかエラー吐かれて無理だったので、とりあえず passenger をスタンドアロンで動かすようにしてみた。 あとでNginxをフロントに噛ますとかは適当に。
$ gem install passenger$ rbenv rehash
Passenger 設定ファイルの作成
$ vi Passengerfile.json
{ // Run the app in a production environment. The default value is "development". "environment": "production", // Run Passenger on the given port. In this example, we use port 80, // the standard HTTP port. "port": 8080, // Tell Passenger to daemonize into the background. "daemonize": true, // Tell Passenger to run the app as the given user. Only has effect // if Passenger was started with root privileges. "user": "redmine"}
試しに起動してみる。
$ pwd/home/redmine/redmine$ passenger start
適当なブラウザで http://
$ passenger stop
"systemd" による自動起動設定
root に戻って systemd の設定を行う。 PIDFile は先に passenger を起動した際に出力されていた内容を指定する。
$ exit# vi /etc/systemd/system/redmine.service
[Unit]Description=Redmine (Passenger Standalone Application Server) After=network.target[Service]Type=forking PrivateTmp=yes User=redmine Group=redmine WorkingDirectory=/home/redmine/redmine PIDFile=/home/redmine/redmine/passenger.8080.pid ExecStart=/home/redmine/.rbenv/shims/passenger start ExecStop=/home/redmine/.rbenv/shims/passenger stop[Install]WantedBy=multi-user.target
作成した設定を systemd で読みなおして、起動確認
# systemctl daemon-reload# systemctl start redmine
ログ出力先を /var/log 下にしたいな〜とか思うけど、とりあえず動いたとこまで。
あとは Redmine.JP: Redmineを使い始めるための初期設定 を参照して初期設定を行ったりアレコレしてく。
以上