はじめに
サーバー構築に取り組む中で、Ubuntu 22.04 LTS上にApacheとMySQLを組み合わせてRedmineのセットアップを行った。
この記事では、私が実際に行った全工程を詳細に記録する。
実施した環境
下記の表に、今回使用したツールとそのバージョンを示す。すべての工程は、この環境下での実践に基づく。
ツール | バージョン | 備考 |
---|---|---|
Ubuntu | 22.04 LTS | OS(Linux) |
Redmine | 5.1.2 | |
Ruby | 3.2.4 | |
Apache | 2.4.52 | |
Phusion Passenger | 6.0.22 | |
MySQL | 8.0.30 |
1. Ubuntuのセットアップ
1.1 基本設定
まずはシステムの基本設定から始めた。以下の手順で、システムの基盤を固める。
- ユーザー「redmine」の作成
adduser
コマンドで新規ユーザーを作成する。adduser redmine
この一手で、専用ユーザーが生まれ、作業環境が区別される。
-
ユーザーにsudo権限を付与
作成したユーザーに管理権限を付加する。sudo gpasswd -a redmine sudo
- rootユーザーのパスワード設定
システム管理の基本、passwd
コマンドでrootのパスワードを設定。sudo passwd root
- ホスト名設定
hostnamectl
でホスト名を変更し、環境を明確にする。hostnamectl set-hostname "変更後のホスト名"
- ターミナルの警告音を無効化
inputrc
ファイルを編集し、不要な警告音をオフにする。sed -i -e "s/# set bell-style none/set bell-style none/g" /etc/inputrc
- Vimでの警告音を無効化
Vimの設定ファイルに追記し、操作中の煩わしさを排除する。echo "set belloff=all" >> /etc/vim/vimrc
- 起動時初期ディレクトリの設定
起動時に自動でホームディレクトリに移動するスクリプトを作成する。sudo nano /etc/profile.d/startdir.sh
スクリプト内容は以下の通り。
#startdir.sh #!/bin/bash cd ~
- ライブラリのインストール
パッケージリストを更新し、システム全体のモジュールを最新化する。sudo apt update sudo apt upgrade -y
- manコマンドの日本語化
日本語のmanページをインストールして、操作時の理解を深める。sudo apt update sudo apt install manpages-ja manpages-ja-dev language-pack-ja sudo update-locale LANG=ja_JP.UTF-8 man ls
1.2 ネットワーク設定
次に、ネットワークの基盤を整える。IPアドレスの割り当てやルーティング設定により、通信環境を確実にする。
- netplan設定
yaml
ファイルを編集してネットワークの基本設定を実施。sudo nano /etc/netplan/00-installer-config.yaml
設定例:
network: ethernets: enp0s25: addresses: [xxx.xxx.xxx.xxx/24] routes: - to: default via: xxx.xxx.xxx.254 scope: link renderer: networkd version: 2
- ファイルのパーミッションを変更
設定ファイルの権限を適切に設定し、セキュリティを確保する。sudo chmod 600 /etc/netplan/99_config.yaml
- 設定の反映
netplan apply
コマンドで設定内容を反映。sudo netplan apply
- IPアドレスの確認
現在のIPアドレスを確認し、設定が正しく反映されたかを検証する。ip addr
1.3 プロキシ設定
プロキシ環境下での通信が必要な場合、各ツールごとに設定を行う。直接通信の場合はこの工程を省略可能だ。
- proxy.confの設定
apt用のプロキシ設定ファイルを作成し、プロキシサーバのアドレスを指定。sudo nano /etc/apt/apt.conf.d/proxy.conf
設定内容:
Acquire::http::Proxy "http://xxx.xxx.xxx.xxx:<ポート番号>"; Acquire::https::Proxy "https://xxx.xxx.xxx.xxx:<ポート番号>";
- wget/aptコマンドの設定
wgetの設定ファイルにプロキシを記述する。sudo nano /etc/wgetrc
例:
http_proxy = http://xxx.xxx.xxx.xxx:<ポート番号> https_proxy = https://xxx.xxx.xxx.xxx:<ポート番号>
- gitコマンドの設定
グローバル設定でgitのプロキシを有効にする。git config --global http.proxy http://xxx.xxx.xxx.xxx:<ポート番号>
- curlコマンドの設定
.bashrcに環境変数としてプロキシ設定を追加する。sudo nano ~/.bashrc
以下を追記:
export HTTP_PROXY=http://xxx.xxx.xxx.xxx:<ポート番号> export HTTPS_PROXY=https://xxx.xxx.xxx.xxx:<ポート番号>
1.4 その他設定
さらに、時刻同期やリモート操作に関する細かい設定も行った。
- NTP設定
timesyncd.conf
にNTPサーバのアドレスを指定する。sudo nano /etc/systemd/timesyncd.conf
設定例:
NTP=http://xxx.xxx.xxx.xxx
- 自動スリープ無効化
リモート作業を前提に、自動スリープ機能を無効にする。sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
- rootのSSH接続を許可
SSH接続においてrootログインを許可するため、設定ファイルを編集。sudo nano /etc/ssh/sshd_config
PermitRootLogin yes
と記述し、サービスを再起動する。service sshd restart
2. MySQLのセットアップ
2.1 MySQLのインストールと初期設定
MySQL 8.0.30をインストールし、安全性を考慮した初期設定を行った。
- MySQLのインストール
以下の手順でMySQLのパッケージをダウンロードし、インストールを実施。cd ~ wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb sudo apt update sudo apt install -y mysql-server libmysqlclient-dev
- MySQLの稼働確認
systemctl status mysql
により、MySQLが正常に動作しているか確認。systemctl status mysql
- MySQLの初期設定
セキュリティを強化するため、mysql_secure_installation
を実行。sudo mysql_secure_installation
2.2 データベースとユーザーの作成
Redmine専用のデータベースとユーザーを作成し、アクセス権限を設定する。
- MySQLシェルの起動
MySQLシェルを起動して作業を開始。mysql -u root -p
- データベースとユーザーの作成
SQLコマンドで、Redmine用のデータベースとユーザーを生成する。CREATE DATABASE redmine CHARACTER SET utf8mb4; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; FLUSH PRIVILEGES; EXIT;
3. Rubyのセットアップ
3.1 rbenvのインストールと設定反映
Ruby環境の管理ツールであるrbenvを用い、Rubyのインストール環境を整える。
- rbenvのインストール
以下のコマンドでrbenvをインストールし、初期設定を開始。sudo apt install -y rbenv rbenv init
- 設定の反映
.bashrc
に設定を追加し、rbenvの環境変数を読み込ませる。eval "$(rbenv init -)" source ~/.bashrc
3.2 Rubyのインストール
ruby-buildを利用し、必要なRubyバージョンをインストールする。
- ruby-buildのインストール
プラグインとしてruby-buildをrbenvに組み込む。cd ~ mkdir -p "$(rbenv root)"/plugins git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
- Rubyのインストールとバージョン設定
rbenvを用いてRuby 3.2.4をインストールし、グローバルバージョンに設定する。rbenv install 3.2.4 rbenv global 3.2.4 ruby -v
4. Redmineのセットアップ
4.1 Redmineのインストール
Redmineの最新版をダウンロードし、展開および必要なリンク作成を行う。
- Redmineのダウンロードと展開
最新版のRedmine 5.1.2を取得し、/optディレクトリに展開する。wget https://www.redmine.org/releases/redmine-5.1.2.tar.gz cd /opt sudo tar xvf ~/redmine-5.1.2.tar.gz
- リンクの作成と所有者変更
利便性のためシンボリックリンクを作成し、所有者をredmineユーザーに変更する。sudo ln -s redmine-5.1.2 redmine sudo chown -R redmine:redmine redmine/
4.2 データベースの設定
Redmineの動作に必要なセッションストアシークレットの生成、設定ファイルの準備、及びデータベースの初期化を行う。
- Session Store Secretの作成
セッション管理用のシークレットを生成する。RAILS_ENV=production bundle exec rake generate_secret_token
- データベース設定ファイルの作成
サンプル設定ファイルをコピーし、実際のdatabase.yml
として編集する。sudo cp redmine/config/database.yml.example redmine/config/database.yml sudo nano redmine/config/database.yml
- データベースの初期化
マイグレーションの実行と、デフォルトデータのロードを行う。RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake redmine:load_default_data
5. PassengerとApacheのインストールおよび設定
5.1 Passengerのインストール
RedmineをApache上で動作させるため、Passengerモジュールをインストールする。
- Passengerのインストール
Apacheと開発用ライブラリをインストール後、Passengerモジュールを追加する。sudo apt install apache2 apache2-dev sudo apt-get install -y libapache2-mod-passenger sudo systemctl restart apache2
- Passenger設定の確認
Passengerの設定スニペットを表示し、設定内容を確認する。passenger-install-apache2-module --snippet
5.2 Apacheの設定
Redmine専用のApache設定ファイルを作成し、サイトを有効化する。
- RedmineのApache設定
/etc/apache2/sites-available/redmine.conf
を編集し、Redmine動作用の設定を記述する。sudo nano /etc/apache2/sites-available/redmine.conf
- Apacheに設定を反映
設定ファイルを有効にし、Apacheを再起動して反映させる。sudo a2ensite redmine sudo systemctl restart apache2
5.3 CORSの設定
外部リソースとの連携をスムーズにするため、CORS対応も行う。
- Rack CORS Middlewareのインストール
Gemfile.local
にCORS設定を追加し、bundle installを実施する。cd /opt/redmine sudo nano Gemfile.local gem 'rack-cors' bundle install
- CORS設定ファイルの作成
config/initializers/cors.rb
にCORS用の設定を記述する。Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', headers: :any, methods: [:get, :post, :patch, :put, :delete, :options] end end
6. サーバーの起動確認
最後に、ブラウザでRedmineの初期ページにアクセスし、全工程が正しく反映されているか確認する。
アクセスURL例:
初期ページが表示されれば、セットアップは完了。すべての工程が連携し、システムが無事稼働する姿は、まさにはじける達成感を感じさせる瞬間だ。
まとめ
今回の記事は、Ubuntu 22.04 LTS上でRedmine環境を構築するためのすべての工程を、私自身の実践記録として網羅的にまとめた。
これらの手順を順を追って実行することで、複雑な工程がひとつひとつ解消され、最終的には確かなシステムが完成する。
各工程は実環境に合わせて適宜パラメータを調整する必要がある。特にセキュリティ関連の設定は、最新の情報や推奨設定を確認の上、実施することを推奨する。
コメント