Debian GNU/Linux 上に Redmine 5.0.5 を構築する手順です
※nginx、mariadbのインストールや設定も含んだ手順になっています。
(ちなみに Tera Term Pro で SSH接続して操作しています)
- Virtual Box ネットワーク設定
「NAT」設定なので構築後の Redmine へhttpアクセスするための「ポートフォワーディング」設定をする(これをやらないと動作確認とかできない)
名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート HTTP TCP 192.168.1.19 80 10.0.2.15 80 Redmine Test TCP 192.168.1.19 3000 10.0.2.15 3000 Redmineテスト用Webサーバ「WEBrick」(Rails)への接続(3000)と、Redmine構築後の正規の接続(80)の2つを追加登録する
※上記IPの内容の調べ方は、「Virtual Box 上の Linux に SSH接続できるようにする設定」をご参考に。 - Debian GNU/Linux に root でログイン
※Tera Term Pro用 ログインマクロ公開中。(公開ページ) - Network Security Service ライブラリ
# apt-get install libnss3-tools
- 必要なパッケージ
# apt-get install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev
- Webサーバー「nginx」パッケージ
# apt-get install nginx
- nginx 設定
redmine用の設定ファイル作成# cd /etc/nginx/conf.d/
# vi redmine.conf (以下を入力して保存(wq!) upstream unicorn-redmine { server unix:/usr/share/redmine/tmp/sockets/unicorn_redmine.sock; } server { listen 80; server_name 127.0.0.1; root /usr/share/redmine/public; client_max_body_size 1G; location / { try_files $uri/index.html $uri.html $uri @app; } location @app { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 600; proxy_pass http://unicorn-redmine; } error_page 500 502 503 504 /500.html; }
デフォルト設定削除(デフォルト設定とredmine.confの設定と被るのか、これをしないとポート80でredmineにアクセスできない)
# cd /etc/nginx/sites-enabled/
# ls default@ # rm default ← シンボリックリンクを削除する
- DBサーバー「mariadb」パッケージ (2つ)
# apt-get install mariadb-server
# apt-get install libmariadb-dev-compat
- mariadb 初期設定
※ root パスワード “password”、各設問はすべて”Y”を入力 として進める# mysql_secure_installation
- mariadb 接続確認
# mysql -u root -ppassword -DB mysql
- ruby パッケージ (2つ)
# apt-get install ruby
# apt-get install ruby-dev
- Ruby On Rails パッケージ (Ruby Gems)
# gem install rails
- Redmine インストール
- ソースダウンロード
# cd /root/
# wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz --no-check-certificate
※以降の画像は5.0.4ですが、5.0.5ソースでも同じイメージになります
- ハッシュ値チェック
# sha256sum redmine-5.0.5.tar.gz a89ad1c4bb9bf025e6527c77ab18c8faf7749c94a975caf2cfdbba00eb12a481 redmine-5.0.5.tar.gz
※ハッシュ値は Redmineサイトで確認できます
- ソース解凍
# tar zxvf redmine-5.0.5.tar.gz
# ls -l drwxrwxr-x 17 redmine redmine 4096 12月 2 00:40 redmine-5.0.5/ -rw-r--r-- 1 root root 3114593 12月 2 00:40 redmine-5.0.5.tar.gz
- ソース移動
# mv redmine-5.0.5/ /usr/share/redmine
- Redmine DB設定
# cd /usr/share/redmine/config/
# cp database.yml.example database.yml
# vi database.yml (以下"username:"、"password:"の2項目を変更) production: .. username: redmine password: "password" ..
- bundler パッケージ (Ruby Gems)
# gem install bundler
- openssl パッケージ (Ruby Gems)
# gem install openssl
- mysql2 パッケージ (Ruby Gems) ※mariadbもこれを使用
# gem install mysql2:0.5.4 --source 'https://rubygems.org/'
- bundle インストール (正直この辺りは何やってるかよくわからない…)
# cd /usr/share/redmine
# bundle install --without development test rmagick
- rake (正直この辺りは何やってるかよくわからない…)
# bundle exec rake generate_secret_token
- DB設定 (mariadb上に Redmine用オブジェクト生成 → DB生成、ユーザー生成、権限設定)
- Maria DB にログイン
# mysql -u root -ppassword -DB mysql MariaDB [mysql]>
- DBを生成
MariaDB [mysql]> CREATE DATABASE redmine CHARACTER SET utf8mb4;
- ユーザーを生成
MariaDB [mysql]> CREATE USER redmine IDENTIFIED BY 'password';
- 権限を付与(1)
MariaDB [mysql]> GRANT ALL PRIVILEGES ON redmine.* TO redmine@"%" WITH GRANT OPTION;
- 権限を付与(2) (だと思う)
MariaDB [mysql]> GRANT PROCESS ON *.* TO redmine;
- Maria DB からログアウト
MariaDB [mysql]> exit
- Maria DB にログイン
- DBマイグレーション (Redmineに必要なテーブルを mariadb.redmine(DB) に生成)
# bundle exec rake db:migrate RAILS_ENV=production
- Redmine テスト起動 (Rails 簡易Webサーバー「WEBrick」起動)
# rails s -e production
- Redmine アクセス (動作確認)
ブラウザで
http://192.168.1.19:3000/ にアクセス - Rails 簡易Webサーバー「WEBrick」停止
コンソールで Ctrl + C で停止
- unicorn 設定 (正直この辺りは何やってるかよくわからない…)
# cd /usr/share/redmine
# vi Gemfile.local gem "unicorn"
- bundle 更新 (正直この辺りは何やってるかよくわからない…)
# bundle update
- unicorn 設定ファイル作成
# cd /usr/share/redmine/config
# vi unicorn.rb (以下内容を入力して保存) worker_processes 2 app_path = "/usr/share/redmine" listen File.expand_path('tmp/sockets/unicorn_redmine.sock', app_path) pid File.expand_path('tmp/pids/unicorn.pid', app_path) stderr_path File.expand_path('log/unicorn.stderr.log', app_path) stdout_path File.expand_path('log/unicorn.stdout.log', app_path) preload_app true timeout 30 if GC.respond_to?(:copy_on_write_friendly=) GC.copy_on_write_friendly = true end before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
- redmineサブディレクトリ起動 設定①
# cd /usr/share/redmine/
# vi config.ru (以下内容を入力して保存) #run Rails.application ← コメント化して以下を追加 map ActionController::Base.relative_url_root || "/" do run RedmineApp::Application end
- redmineサブディレクトリ起動 設定②
# cd /usr/share/redmine/config/
# vi environment.rb (末尾に以下を追加) ActionController::Base.relative_url_root = "/redmine"
- ソースダウンロード
- unicorn サービス設定
# cd /usr/lib/systemd/system/
# vi redmine-unicorn.service (以下内容を入力して保存) [Unit] Description=Redmine Unicorn Server After=mariadb.service [Service] WorkingDirectory=/usr/share/redmine Environment=RAILS_ENV=production SyslogIdentifier=redmine-unicorn PIDFile=/usr/share/redmine/tmp/pids/unicorn.pid ExecStart= /usr/share/redmine/bin/bundle exec "unicorn_rails -c config/unicorn.rb -E production" ExecStop=/usr/bin/kill -QUIT $MAINPID ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target
- unicorn 起動
# systemctl start redmine-unicorn
- unicorn 状態確認
# systemctl status redmine-unicorn
- unicorn サービス登録
# systemctl enable redmine-unicorn
※OS再起動してもRedmineが自動起動する
- Redmine アクセス
ブラウザで
http://192.168.1.19/redmine/ にアクセス
※アクセスできない場合は、サーバー再起動をしてからアクセスしてみてください# reboot