search
LoginSignup
54

More than 5 years have passed since last update.

posted at

updated at

Organization

rbenv,CentOS6.5で作るredmine環境

Qiita初投稿!こんにちはこんにちは!

動機

リアルで引越がしたくなり、タスク管理する必要に駆られて何使うかなぁと思い、
咄嗟にRedmineを使いたくなったので、衝動で持て余していたVPSに入れることにした。

環境

さくらのVPS(2G)

legnoh.jp のサブドメイン rm.legnoh.jp で入れる。

CentOS 6.5 x86_64

OS放置してて何入ってるか思い出せないので再インスコした。
VPSのカスタムOS再インスコ時に出るはずのVNCコンソールが、Java6でないと動かないとかぬかすので、
入れ直したけど動きませんでしたふぁっく(´・ω・`)

結局以前入れていたものをそのまま入れなおすだけで妥協。

Redmine 2.4.3

はい最新版。

Ruby 2.1.0 with rbenv

正直Rubyすら触ったことないのでアレなのだけど、とりあえず最新入れときゃ動くだろ的発想。

MySQLとかApacheとかわらわら

  • 基本epelから引っ張ってる。

戦闘開始

前哨戦

ログインできるのを確認し、手元の公開鍵を ~/.ssh/authorized_keys に放り込んだ後、

$ ssh root@legnoh.jp
$ mkdir .ssh
$ touch ~/.ssh/authorized_keys
...(セキュリティ上、SCPせずに手打ちでコピペする)
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

SSHの設定を変えて鍵オンリーに。

$ vim /etc/ssh/sshd_config
/etc/ssh/sshd_config
Port 10022
PermitRootLogin without-password
PasswordAuthentication no
...

再起して適用。

$ service sshd restart

手元のMacにも、ホスト用の設定おいてログインを簡略化。

$ vim .ssh/config
~/.ssh/config
Host legnoh
    User root
    HostName legnoh.jp
    Port 10022
    IdentityFile ~/.ssh/id_rsa
    ForwardAgent yes

SELinuxはさくらVPSだと元々止まってるし、epelも最新版が入ってたので作業の必要がなかった。
iptablesはプロトコルをまだ調べてなかったので、あとから設定でも良いかと思いスキップ。
以上前哨戦。

ベースパッケージのインスコ

Redmine本家のインスコ手順に沿って、必要なパッケージをひとまずバコンバコンと。

$ yum install -y openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
$ yum install -y mysql-server mysql-devel
$ yum install -y httpd httpd-devel
$ yum install -y ImageMagick ImageMagick-devel
$ yum install -y ipa-pgothic-fonts

rbenv

基本は、本家の手順そのまんま。途中抜けるのがめんどいので、.bash_profileはさくっとリロード。
ruby-buildもさっくり入れてやれ。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ type rbenv
#=> "rbenv is a function"
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

いよいよRuby本体にかかる。

$ rbenv install -l
...
 2.0.0-p195
 2.0.0-rc2
 2.1.0
 2.1.0-dev
 2.1.0-preview1
 2.1.0-preview2
 2.1.0-rc1
...

安定版が2.1.0 と本家でもアナウンスされていたのでこっちでいいでしょ。
インスコ打って待つ。コンパイル終わり次第バージョン指定。

$ rbenv install 2.1.0
$ rbenv rehash

apacheからの実行になるので、rbenv配下に実行権限を与えておく。

chmod o+x /root/ .rbenv/

ruby完了。

bundler

すんげー詳しく書いてた人がいたので参考にした。特に以下。

基本的には、そのプロジェクトでのみ使いたいgemであれば、bundlerで
bundle install --path vendor/bundleして、プロジェクトに閉じた形で
gemをローカルインストールし、bundle exec ~で実行する形を取るのがよい。
ただし、bundlerpryなど、

  • どのプロジェクトでも共通して使いたい。
  • 複数のバージョンを使い分ける必要性が基本的になく、常に最新バージョンであればよい。

という性質のgemであれば、bundlerでローカルインストールするのでなく、
rbenv exec gem install ~としてRuby環境に直接インストールしてしまった方が利便性が高い。
gemの特性と自分の利用シーンに合わせて、gemのインストール場所は使い分けよう。

あい、そうします。

$ rbenv exec gem install bundler --no-rdoc --no-ri
$ rbenv rehash

MySQL

ここでまたRedmine本家 の手順に戻る。

$ vim /etc/my.cnf
/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

# 任意設定
innodb_file_per_table
query-cache-size=16M

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

[mysql]
default-character-set=utf8

起動とスタート設定もやっておく。

$ service mysqld start
$ chkconfig mysqld on

MySQLにログインして、全部の文字コードがUTf8になってるか確認し、rootパスワード設定、匿名ユーザ追放、Redmine用のDBを作成し、user_redmineに権限付与して反映、終了。

$ mysql -uroot
mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> use mysql;
mysql> update user set password=password('********') where user = 'root';
mysql> delete from user where user = '';
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine identified by '†††††††††';
mysql> flush privileges;
mysql> exit;

Redmine

tarballをDLして展開、そのフォルダを配置場所で移動する。

$ wget http://www.redmine.org/releases/redmine-2.4.3.tar.gz
$ tar zxf redmine-2.4.3.tar.gz
$ mv redmine-2.4.3 /var/lib/redmine

次に設定ファイルを2つ、それぞれ先ほどのパスワードを用いる。

$ vim /var/lib/redmine/config/database.yml
database.yml
production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: †††††††††
  encoding: utf8
$ vim /var/lib/redmine/config/configuration.yml
configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'rm.legnoh.jp'

  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

Gem

Redmineのみで必要になるパッケージを入れる。こちらはRuby環境を汚さないように直接Redmine側に入れる。
また、Redmineで使うRubyのバージョンも指定しておく。

$ cd /var/lib/redmine
$ rbenv local 2.1.0
$ rbenv rehash
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
$ bundle install --without development test
$ bundle exec rake generate_secret_token
$ RAILS_ENV=production bundle exec rake db:migrate

Passenger

これはどちらかというとPF系?な匂いがしたので、Ruby環境に入れる。

$ rbenv exec gem install passenger --no-rdoc --no-ri
$ rbenv rehash
$ passenger-install-apache2-module
(Enter連打)
$ passenger-install-apache2-module --snippet

で、出てきたスニペットをそのままApacheの設定にぶちこむ。

$ vim /etc/httpd/conf.d/passenger.conf
/etc/httpd/conf.d/passenger.conf
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
PassengerMaxPreloaderIdleTime 0

一番下の行については、古いと言われたのでこちらで新規設定に変えた。
そしてApache起動、自動設定。Redmineディレクトリの権限変更。

$ service httpd configtest
$ service httpd start
$ chkconfig httpd on
$ chown -R apache:apache /var/lib/redmine

バーチャルホスト

httpd.conf の最下端にあったバーチャルホスト設定をコメントアウトし、
サブドメインで分けられるようにした。

/etc/httpd/conf/httpd.conf
NameVirtualHost *:80

<VirtualHost *:80>
   ServerName legnoh.jp
   DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
   ServerName rm.legnoh.jp
   DocumentRoot /var/lib/redmine/public
</VirtualHost>

次にゾーン情報。
私の場合、さくらのドメインでドメイン取ってたので、さくらインターネット 会員メニュー - ドメイン名一覧 から、

rm   A   (IPアドレス)

で追加。約15分ほどでDNSに反映され、サブドメインが有効になった。

$ service httpd configtest
$ service httpd start

締め

これで本体にはアクセス可能に。-> rm.legnoh.jp
後は、気に入らないところを変えるための施策を打つ。

admin変更

デフォルトデータのロード

RedmineでMarkdown

$ rbenv exec gem install redcarpet
$ rbenv rehash
$ git clone https://github.com/alminium/redmine_redcarpet_formatter.git /var/lib/redmine/plugins/redmine_redcarpet_formatter
$ cd redmine_redcarpet_formatter
$ git checkout v2.0.1
$ service httpd restart

[管理]->[設定]->[全般]->[テキストの書式]->[Markdown]が選べるのでこれに設定。

Githubライクなテーマに

$ git clone git://github.com/makotokw/redmine-theme-gitmike.git /var/lib/redmine/gitmike
$ service httpd restart

[管理]->[設定]->[表示]->[テーマ]->[Gitmike]が選べるのでこれに設定。

これだけ。あとは好みに応じて好き勝手しましょう。お疲れ様でした。

参考

Github 連携

本家Githubに連携手順が書いてあったのでそれに従う。

[管理]->[設定]->[リポジトリ]->[リポジトリ管理用のWebサービスを有効にする]にチェックを入れ、
下の「キーの生成」を押す。
 2014-02-09 12.36.19.png

Githubの対象リポジトリを、Redmineサーバのローカル上にcloneする。
今回はこちら。legnoh/rm_gh

$ mkdir ~/code
$ git clone https://github.com/legnoh/rm_gh.git ~/code

Redmineのプロジェクトごとの[設定]->[リポジトリ]->[新しいリポジトリ]で、先ほどcloneしたパスを設定する。
 2014-02-09 12.47.32.png
この時点では、まだリポジトリにコミットが存在しない扱いになってしまう。

Github側のリポジトリ設定->[Service Hooks]->[Redmine] を選び、
そこにRedmineのURL、プロジェクト名、先ほど取得したAPIキーを入力する。
 2014-02-09 12.52.56.png

はい。

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
What you can do with signing up
54