4,579 views
この記事は最終更新から 816日 が経過しています。
1. やりたいこと
1) SAKURA VPS に CentOS7 を入れる。
2) その CentOS7 に Redmine 4.0.4 を入れる。
2. やってみた!
2.1 SAKURAレンタルサーバーに CentOS7を入れる。
SAKURA VPSの管理画面にて簡単にインストールできる。
特筆することは無いので、手順だけを記録しておく。
1) 管理画面にログインする。
2) 「標準OSインストール」から「CentOS x86_64」を選択する。
3) インストールを実行する。
2.2 CentOS7に Redmine 4.0.4を入れる。
今回使用した各プログラムのバージョン
・Redmine 4.0.4
・Ruby 2.6.3
・PostgreSQL 9.2.24
・Apache 2.4.6
基本的には公式サイトの情報に従う。
http://blog.redmine.jp/articles/3_4/install/centos/
(1) Redmine安定板をダウンロードする。
ここでは、最新の安定版 Redmine 4.0.4 をダウンロードする。(2019年7月29日時点)
http://www.redmine.org/projects/redmine/wiki/Download
SAKURA VPS上の CentOS上でダウンロードを実行する。
$ cd ~ $ mkdir ./work $ cd ./work $ wget http://www.redmine.org/releases/redmine-4.0.4.tar.gz
解凍する。
$ tar -zxvf redmine-4.0.4.tar.gz
参考情報:
z : gz形式
x (extract) : 圧縮されたファイルを解凍
v (verbose) : 処理内容を表示
f (filename) : ファイル名を指定
(2) firewallで HTTPプロトコルを許可する。
現在 HTTPが通過できているかを確認する。
$ su - # rootになる。 # firewall-cmd --zone=public --list-services http pop3s vnc-server smtp imaps https
もし無ければ許可設定する。
# firewall-cmd --zone=public --add-service=http --permanent
success
# firewall-cmd --reload
success
(3) 「Development Tools」をインストールする。
まずは yumの grouplistを見てみる。
# yum grouplist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile : Available Groups: Cinnamon Compatibility Libraries Console Internet Tools Development Tools ←コレ Educational Software Electronic Lab : Done
Development Tools をインストールする。
# yum -y groupinstall "Development Tools"
(4) Ruby, Passengerのビルドに必要な物をインストールする。
Rubyと Passengerのビルドに必要なヘッダファイルなどのインストールする。
# yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
(5) PostgreSQLをインストールする。
データベースには PostgreSQL を使用する。
# yum -y install postgresql-server postgresql-devel
(6) ImageMagickをインストールする。
画像処理ライブラリには ImageMagick を使用する。
# yum -y install ImageMagick ImageMagick-devel
(7) 日本語フォントをインストールする。
IPAが無料公開しているフォントを使用する。
# yum -y install ipa-pgothic-fonts
(8) Rubyをビルドする。
Rubyの最新安定板 2.6.3 をダウンロードする。(2019年7月29日時点)
# exit $ cd ~/work $ curl -O https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.gz
Rubyをビルドする。
$ tar -xvf ruby-2.6.3.tar.gz $ cd ./ruby-2.6.3 $ ./configure --disable-install-doc # ←インストールに必要な情報を作成 $ make $ sudo make install # ←sudo出来ないならば rootになる。
Rubyのバージョンを確認する。
$ cd $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
OKだ!
(9) bundlerをインストールする。
Ruby用のパッケージ管理ツールであるbundlerをインストールする。
redmineが使用する gemパッケージのインストールに使用する。
$ su - # rootになる。
# gem install bundler
(10) PostgreSQLの設定をする。
データベースクラスタを新規作成する。
# postgresql-setup initdb
Redmineから PosygreSQLに接続するための設定を追加する。
# vi /var/lib/pgsql/data/pg_hba.conf
以下を編集する。
ここでは名前を redmine_aa としている。(後で複数の redmineを同居させるため。)
67 # Put your actual configuration here
68 # ----------------------------------
69 #
70 # If you want to allow non-local connections, you need to add more
71 # "host" records. In that case you will also need to make PostgreSQL
72 # listen on a non-local interface via the listen_addresses
73 # configuration parameter, or via the -i or -h command line switches.
74 host redmine_aa redmine_aa 127.0.0.1/32 md5
75 host redmine_aa redmine_aa ::1/128 md5
マシン起動時に PoastgreSQLを自動起動するように設定しておく。
# systemctl start postgresql.service # systemctl enable postgresql.service
状態を確認しておく。
# systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2019-07-29 12:03:08 JST; 14s ago Main PID: 2560 (postgres) CGroup: /system.slice/postgresql.service ├─2560 /usr/bin/postgres -D /var/lib/pgsql/data -p 5431 ├─2561 postgres: logger process ├─2563 postgres: checkpointer process ├─2564 postgres: writer process ├─2565 postgres: wal writer process ├─2566 postgres: autovacuum launcher process └─2567 postgres: stats collector process
データベースに Redmine用のユーザーを作成する。
# cd /var/lib/pgsql # sudo -u postgres createuser -P redmine_aa # 暫定パスワード qwertymnbvcxz とする。
※もし postgres ユーザーのパスワードを忘れたら?
Redmine用のデータベースを作成する。
# sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine_aa -T template0 redmine_aa
(11) Redmineをインストールする。
上記(1)でダウンロード&解凍した Redmine最新安定板を /var/lib 配下にコピーする。(移動でもよい)
# cp -r /home/hoge/work/redmine-4.0.4 /var/lib/redmine_aa # cd /var/lib/redmine_aa
データベースへの接続設定ファイルを編集する。
# cp config/database.yml.example config/database.yml # vi config/database.yml
開いたファイルを以下のように変更する。
# PostgreSQL configuration example production: adapter: postgresql database: redmine_aa # 上で作成したデータベース名を設定する。 host: localhost username: redmine_aa # 上で作成したユーザー名を設定する。 password: "qwertymnbvcxz" # 上で設定したパスワードを設定する。
コンフィグ設定ファイルを編集する。
# cp config/configuration.yml.example config/configuration.yml # vi config/configuration.yml
開いたファイルを以下のように変更する。
production: email_delivery: # ←メール設定 delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: "xxxxxxxxx.xxx" # ←自環境に合わせて Redmineで送受信するメールのドメイン名を設定する。 rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf # ←フォント設定
gemパッケージをインストールする。
インストール中に「rootでインストールするな」と警告が表示されるが、後で chownで apacheにユーザー変更するので無視する。
# cd /var/lib/redmine_aa # bundle install --without development test --path vendor/bundle
(12) Redmineの初期設定をする。
セッション改ざん防止用秘密鍵を作成する。
# bundle exec rake generate_secret_token
Redmineデータベースにテーブルを作成する。
# RAILS_ENV=production bundle exec rake db:migrate
データベースにデフォルトデータを登録する。
※必須ではない。トラッカー、ステータスなど、後でゼロから自分で登録してもよい。
# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
(13) Passengerをインストールする。
Apache上で Redmineなどの Railsアプリケーションを実行するために使われる Phusion Passengerをインストールする。
# gem install passenger
Apache用のモジュールをインストールする。
# passenger-install-apache2-module --auto --languages ruby
Apache用設定内容を表示、後で使うのでコピーしておく。
# passenger-install-apache2-module --snippet LoadModule passenger_module /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.soPassengerRoot /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.2 PassengerDefaultRuby /usr/local/bin/ruby
(14) Apacheの設定をする。
/etc/httpd/conf.d/redmine.conf を編集する。
# vi /etc/httpd/conf.d/redmine.conf
以下を記述する。
AllowOverride All Require all granted # 以下は上記(13)からコピーする。 LoadModule passenger_module /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.soPassengerRoot /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.2 PassengerDefaultRuby /usr/local/bin/ruby RackBaseURI /redmine_aa
マシン起動時に Apacheを自動起動させる。
systemctl start httpd.service systemctl enable httpd.service
Redmineのファイル群のオーナーをユーザー apache に変更する。
# chown -R apache:apache /var/lib/redmine_aa
/var/www/html から Redmineへシンボリックリンクを貼る。
# cd /var/www/html # ln -s /var/lib/redmine_aa/public ./redmine_aa
Apacheを再起動する。
# service httpd configtest # ←コンフィグファイルの設定にミスが無いかをチェックする。
# systemctl restart httpd.service
# systemctl status httpd.service
(15) WEBブラウザで Redmineにアクセスしてみる。
仮に設置場所が http://www.example.com/redmine_aa として開いてみる。
できた!
3) 応用
(1) 非ログイン状態では閲覧禁止にする。
まずは admin でログインする。
Redmineでは、ユーザー admin の初期パスワードは admin だ。
ログイン直後にパスワード変更を求められるので、任意のパスワードを設定する。
「管理」-「設定」-「認証」を開き、「認証が必要」項目で「はい」を選択する。
→ →
すると…
非ログイン状態では、必ずログイン画面が表示されるようになる。
この設定をしないと URLさえ知っていれば Read onlyで閲覧できてしまう。
(2) Basic認証を付けて安全性を高める。
えっ!Basic認証なんて危ないんじゃない?
って思われるかもしれないがそれは昔の話。
SSLと組み合わせれば ID, PW漏洩のリスクが格段に減るので使った方が良い。
Apacheの設定ファイルを編集する。
# vi /etc/httpd/conf.d/redmine.conf
以下を追記する。
<Location /redmine_nv/> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule /.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule> AuthType Basic AuthName "xxxxx" AuthUserFile /var/lib/redmine_aa/public/.htpasswd Require valid-user <LimitExcept GET PROPFIND OPTIONS REPORT> SSLRequireSSL </LimitExcept> </Location>
設定ファイル中に書いたパスに、パスワードファイルを設置する。
詳細は (49) htpasswdの作り方 を参照されたい。
# FPATH=/var/lib/redmine_aa/public/.htpasswd # USER=hoge # PASS=hogeA # htpasswd -cb $FPATH $USER $PASS
Apacheを再起動する。
# service httpd configtest # ←コンフィグファイルの設定にミスが無いかをチェックする。
# systemctl restart httpd.service
# systemctl status httpd.service
再度 Redmineを開いて見ると…
認証画面が表示された!
これにより、
第1の壁: Redmineの存在自体を隠す Basic認証
第2の壁: Redmineのユーザー認証
の二重の防御壁ができた。
(3) Redmineへの投稿時にメール送信する。
後日追記する。
(4) Redmineへのメール送信による投稿を実現する。
後日追記する。
(5) Subversionと連携する。
後日追記する。
4. 所感
・やっぱり Redmineは便利だ。
・年額1万円の SAKURA VPSに設置しているが、Redmineの動作が重たい…
→ 快適に使うためにはリソース割り当ての大きい高額なプランにする必要がある。
※自宅N/W上で Intel NUC (Pentium 4core)に設置している Redmineは快適だ。