背景
仕事で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 |
Ubuntuのセットアップ
基本設定
- ユーザー「redmine」の作成
adduser
コマンドでユーザーを作成する。
adduser redmine
- ユーザーにsudo権限を付与
作成したユーザーに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での警告音を無効化
vimrc
に設定を追加する。
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
ネットワーク設定
- 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
- ファイルのパーミッションを変更
netplan
の設定ファイルの権限を設定する。
sudo chmod 600 /etc/netplan/99_config.yaml
- 設定の反映
netplan
コマンドを使用して設定を反映する。
sudo netplan apply
ip addr
プロキシ設定
プロキシ環境下での設定方法を説明する。社内ネットワークで通信する場合は必須となるが、直接通信している場合は省略可能。
- proxy.confの設定
プロキシサーバーのIPアドレスを指定する。
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:<ポート番号>";
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:<ポート番号>
sudo nano .bashrc export HTTP_PROXY=http://xxx.xxx.xxx.xxx:<ポート番号> export HTTPS_PROXY=https://xxx.xxx.xxx.xxx:<ポート番号>
その他設定
- NTP設定
timesyncd.conf
にNTPサーバのIPアドレスを指定する。
sudo nano /etc/systemd/timesyncd.conf NTP=http://xxx.xxx.xxx.xxx
- 自動スリープ無効化
リモートでの操作を前提とするため、スリープモードを無効にする。
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
sudo nano /etc/ssh/sshd_config PermitRootLogin yes service sshd restart
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
稼働しているかを確認する。
systemctl status mysql
- MySQLの初期設定
mysql_secure_installation
コマンドを実行し、安全性を高めるための設定を行う。
sudo mysql_secure_installation
データベースとユーザーの作成
mysql -u root -p
- データベースとユーザーの作成
Redmine用のデータベースとユーザーを作成する。my_password
は適宜変更すること。
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;
Rubyのセットアップ
rbenvのインストール
- rbenvのインストール
以下のコマンドでrbenvをインストールし、初期設定を行う。
sudo apt install -y rbenv rbenv init
- 設定の反映
.bashrc
に以下を追加し、設定を反映させる。
eval "$(rbenv init -)" source .bashrc
Rubyのインストール
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
rbenv install 3.2.4 rbenv global 3.2.4 ruby -v
Redmineのセットアップ
Redmineのインストール
- Redmineのダウンロードと展開
最新版をダウンロードし、展開する。
wget https://www.redmine.org/releases/redmine-5.1.2.tar.gz cd /opt sudo tar xvf ~/redmine-5.1.2.tar.gz
- リンクの作成と所有者変更
リンクを作成し、所有者を変更する。
sudo ln -s redmine-5.1.2 redmine sudo chown -R redmine:redmine 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
Passengerと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-install-apache2-module --snippet
Apacheの設定
sudo nano /etc/apache2/sites-available/redmine.conf
sudo a2ensite redmine sudo systemctl restart apache2
CORSの設定
- Rack CORS Middlewareのインストール
Gemfile.local
にCORS設定を追加し、インストールする。
cd /opt/redmine sudo nano Gemfile.local gem 'rack-cors' bundle install
- CORS設定ファイルの作成
CORSの設定をconfig/initializers/cors.rb
に追加する。
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
サーバーの起動確認
ブラウザで以下のURLにアクセスし、Redmineが正しくセットアップされているかを確認する。 Redmineの初期ページが表示されれば、正常にセットアップ完了。
http://xxx.xxx.xxx.xxx/redmine