それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

CentOS7.x の環境に Redmine (+rbenv/ruby-build) をインストールしたメモ

Apache経由でやろうとしたらうまくいかなかったので、Passneger Standalone で起動するとこまでやってみたメモ c⌒っ゚д゚)っφ

参考URL

依存パッケージのインストール

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:// へアクセスし、Redmine が表示される事を確認する。 問題なければ一旦停止する。

$ 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を使い始めるための初期設定 を参照して初期設定を行ったりアレコレしてく。

以上