はじめに
前回の構築手順を再度やり直して、アウトプットとして投稿させていただきます。
【前回の構築URL】
構成概要
リソース | 内容 |
---|---|
EC2 | Redmine アプリケーションサーバ(Amazon Linux 2) |
RDS | MySQL 8.0(Redmine用データベース) |
前提条件
・EC2:Amazon Linux 2 または Ubuntu 20.04(ここでは Amazon Linux 2 で進行)
・RDS:MySQL 8.0
・Redmineバージョン:5.1系推奨
構築手順
ステップ1:EC2の作成と接続
ステップ2:RDSの作成(MySQL)
ステップ3:Ruby・rbenvのインストール
ステップ4:Redmineインストール
ステップ5:Nokogiriのバージョン指定 & Bundle Install
ステップ6:データベース設定
ステップ7:Passenger + Apacheで起動
✅ 動作確認
ステップ1:EC2の作成と接続
1.Amazon Linux 2 を使用してEC2インスタンスを作成
2.セキュリティグループで以下を許可
・22(SSH)
・80(HTTP)
・3306(RDS接続用)
3.SSHでログインし、以下を実行:
sudo yum update -y
sudo yum install -y git gcc gcc-c++ make zlib-devel curl-devel openssl-devel \
readline-devel libyaml-devel libffi-devel mariadb-devel ImageMagick-devel
ステップ2:RDSの作成(MySQL)
・RDS画面にて、「データベース作成」
・エンジンの選択 → MySQL(8.0系)
・DBインスタンス識別子、マスターユーザー名/パスワードを設定
・パブリックアクセス:いいえ
・セキュリティグループ:EC2と同じSGまたは3306許可SG
ステップ3:Ruby・rbenvのインストール
# rbenvとruby-build
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
# 追加で必要なパッケージ
sudo yum install -y gcc gcc-c++ make \
openssl-devel readline-devel zlib-devel \
libffi-devel libyaml-devel \
bzip2 tar git
# Rubyインストール(Redmine推奨:3.2〜3.3系)
rbenv install 3.2.2
rbenv global 3.2.2
# Bundler
gem install bundler
ステップ4:Redmineインストール
sudo mkdir /var/www
# 最新のRedmineをダウンロード(例:5.1)
cd /var/www
sudo git clone https://github.com/redmine/redmine.git -b 5.1-stable redmine
sudo chown ec2-user redmine
cd redmine
ステップ5:Nokogiriのバージョン指定 & Bundle Install
Gemfile内に以下を追記:
gem 'nokogiri', '~> 1.15.7'
その後、以下を実行:
bundle config set --local build.nokogiri --use-system-libraries
bundle install --without development test
ステップ6:データベース設定
MariaDBインストール・DB起動及び初期設定
sudo yum install -y mariadb mariadb-server mariadb-devel
sudo systemctl start mariadb
sudo mysql_secure_installation
cp config/database.yml.example config/database.yml
vi config/database.yml
編集内容
production:
adapter: mysql2
database: redmine
host: [RDSのエンドポイント]
username: [RDSのユーザー名]
password: [RDSのパスワード]
encoding: utf8mb4
ログの出力先設定
# logディレクトリがなければ作成
mkdir -p /var/www/redmine/log
# production.log を作成
touch /var/www/redmine/log/production.log
# アクセス権を設定(Redmineが書き込みできるように)
chmod 664 /var/www/redmine/log/production.log
# 所有権を正しく設定(ec2-user で操作している場合)
chown ec2-user:ec2-user /var/www/redmine/log/production.log
データベース作成
mysql -h <RDSのエンドポイント> -u admin -p
CREATE DATABASE redmine CHARACTER SET utf8mb4;
EXIT;
RAILS_ENV=production bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
ステップ7:Passenger + Apacheで起動
スワップ領域の追加(2GB)
# スワップファイルを作成
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# スワップファイルを有効化
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 反映確認
swapon -s
free -m
Passenger + Apacheインストール
sudo yum install -y httpd
sudo yum groupinstall -y "Development Tools"
sudo yum install -y curl-devel httpd-devel apr-devel apr-util-devel
gem install passenger
passenger-install-apache2-module
Apache設定1(/etc/httpd/conf.d/passenger.conf)に以下を追記:
LoadModule passenger_module /home/ec2-user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.27/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/ec2-user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.27
PassengerDefaultRuby /home/ec2-user/.rbenv/versions/3.2.2/bin/ruby
</IfModule>
Apache設定2(/etc/httpd/conf.d/redmine.conf)に以下を追記:
<VirtualHost *:80>
ServerName redmine.local
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
Require all granted
Options -MultiViews
</Directory>
</VirtualHost>
Apache設定3(/etc/hosts)に以下を追記:
[EC2のIPアドレス] redmine.local
Apache再起動:
sudo systemctl restart httpd
✅ 動作確認
ブラウザで http://[EC2のパブリックIP] にアクセス
ログインID:admin
パスワード:admin
おわりに
もう一度、同じ手順でやり直してみても、上手くいかない部分が発生して、時間はかかりましたが、各コマンドの意味や設定ファイルの内容についての理解が深まりました。
今後もハンズオンを通して、成長していきたいと思います