redmine3.3.2 を redmine5.0 に移行する。ついでにtextile形式からmarkdown形式に変換もする。
2023/10/15 21:00:00
前提 #
- 移行元は GMO vps で centos6.0 + apache + mariadb? + redmine3.3.2
- 移行元のredmineはdb含めてバックアップ済みであること
バックアップ対象は以下の2個- redmineディレクトリのfilesディレクトリ(添付ファイル一式)
- redmine db のバックアップ
# db バックアップのコマンド $ mysqldump -u [ユーザ] -p[パスワード] [DB名] > redmine332_msqldump.txt
- 移行元のredmineはtextile形式で移行先はmarkdown形式に変換する
- 移行先は kagoya vps で ubuntu20.04 + apache2.4 + mariadb15.1 + redmine5.0
- kagoya vps は契約済みであること
- ruby1.8.7 で動作させたいwebアプリがあるため ubuntu20.04 にしている
ubuntu22.04 だと apache 経由でruby1.8.7のcgiが動作しない。セグメンテーション違反が発生する
kogoya vps インスタンス起動 #
- OS選択
Ubuntu20.04 を選択する - アプリケーションセットアップ設定
特に追加設定はなし
- スペック選択
2コア/2GB/SSD 200GB 選択
「スタンダードタブ」にはないので、「大容量」タブを選択すること
- ログイン用認証キー登録
以下の画面の「ログイン用認証キー追加」ボタンをクリックすると追加画面に遷移する
基本的に以下の「ログイン用認証キー名」を入力し、登録ボタンを押下すると、ssh接続用認証キーが生成され、ssh 接続用のkeyはブラウザが自動でダウンロードしてくれる
ここでは kagoya.ubuntu20.04.root.key としておく 備考欄は何のキーなのかわかるように記載しておくと便利かもしれない。
※ rootログイン用なのでセキュリティ的に問題になりそうなので、サーバ構築完了したらば削除していいはず。
登録完了すると、「ログイン用認証キー名」が表示される
- virtio, セキュリティグループ, ネットワーク設定
デフォルトから変更しない
- コンソールログインパスワードを登録
ssh 接続せずに、kagoya コンソール使って、ログインする時のパスワードを設定する。
※ これもセキュリティ的に問題になりそうなので最終的にはログイン不可にする必要があるかもしれない。
→ root ログインを禁止すればいいだけのはず。
- ユーザデータ設定
何も設定しない。
たぶん、インスタンス生成時に実行したいコマンドを記載する箇所と思う。Dockerfileみたいなものやと思う
- インスタンス名設定
インスタンス名を設定する
- 備考設定
必要があれば情報を記載しておくこと。
- 料金を確認とインスタンス作成
料金を確認に、問題なければ「インスタンス作成」ボンタンを押下する - 生成したインスタンスのグローバルIPアドレスを確認しておく
ここでは、123.45.678.9 としておく
kakogya vps に接続 #
- 「ログイン用認証キー登録」でダウンロードしたkagoya.ubuntu20.04.rootを~/.ssh ディレクトリに配置
$ cp kagoya.ubuntu20.04.root ~/.ssh/. $ chmod 600 ~/.ssh/kagoya.ubuntu20.04.root.key
- ssh 設定
「ログイン用認証キー登録」でブラウザがダウンロードしたkeyをssh設定に追加する
ip アドレスはインスタンス一覧画面で確認した 123.45.678.9 としている$ emacs ~/.ssh/config
1Host kagoya.ubuntu20.04.root 2HostName 123.45.678.9 3Port 22 4User root 5IdentityFile ~/.ssh/kagoya.ubuntu20.04.root.key
- ssh 接続確認
以下のコマンドで生成したインスタンスにrootとしてログインできるはず
$ ssh kagoya.ubuntu20.04.root
ubuntu20.04 基本設定 #
$ ssh kagoya.ubuntu20.04.root で接続すると root でログインしている
- ユーザ追加
# -mオプションによって、ユーザのホームディレクトリが作られる $ useradd -m developer $ passwd developer password-string # sudo コマンド有効にしておく $ visudo ... developer ALL=(ALL) ALL # 以後、developerユーザで操作する $ su - developer # ユーザ確認 $ whoami developer
- システム更新
時間がかかるが以下を実施するとシステムが最新になる
$ sudo apt update && sudo apt upgrade -y
- git 設定
# git インストール $ sudo apt install git git version 2.25.1 # git 最低限設定 $ git config --global core.autocrlf false $ git config --global push.default simple $ git config --global core.ignorecase false $ git config --global core.quotepath false $ git config --global pull.rebase false $ git config --global core.filemode true $ git config --global user.name "名前" <--- 書き換えること $ git config --global user.email "メール" <--- 書き換えること $ git config --global credential.helper store
- emacs インストール
# インストール可能バージョン確認 $ apt list emacs -a Listing... Done emacs/focal,focal 1:26.3+1-1ubuntu2 all # 新しめの emacs28 リポジトリ追加 $ sudo add-apt-repository ppa:kelleyk/emacs $ sudo apt update # 再確認 $ apt list -a emacs28 Listing... Done emacs28/focal 28.1~1.git5a223c7f2e-kk3+20.04 amd64 # emacs28 インストール $ sudo apt install emacs28 $ emacs --version GNU Emacs 28.1 Copyright (C) 2022 Free Software Foundation, Inc. GNU Emacs comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of GNU Emacs under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. # emacs 設定 $ git clone https://github.com/oya3/.emacs.d $ sudo apt install ripgrep # emacs 初回起動し、設定内容を反映させる # - 起動に時間はかかるが、問題なく初期設定されるはず # - 使い方は .emacs.d/readme.txt みれば理解できるはず # - .emacs.d/init.el に設定内容は集約している $ emacs # emacs でpython静的解析用パッケージをインストールしておく $ ls -la /usr/bin/python* lrwxrwxrwx 1 root root 9 8月 18 2020 /usr/bin/python3 -> python3.8 -rwxr-xr-x 1 root root 5494584 5月 26 23:05 /usr/bin/python3.8 $ sudo apt install python3-pip $ pip3 install --upgrade pip setuptools # 警告出るけど無視 # 以下の手順で解決できるかもしれない # $ pip3 install testresources # $ echo 'export PATH=$PATH:/home/developer/.local/bin' >> ~/.bashrc # $ source ~/.bashrc # $ pip3 install --upgrade pip setuptools
- fish インストール
fish にテーマ設定とpeco(履歴)設定を反映させる
$ sudo apt install fish # fish の場所を確認 $ cat /etc/shells ... /usr/bin/fish $ chsh -s /usr/bin/fish Password: password-string # 再ログイン $ exit $ su - developer # curl インストール $ sudo apt install curl # fisherman インストール $ curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher # fish テーマをインストール $ fisher install oh-my-fish/theme-bobthefish # peco (履歴) $ sudo apt install peco $ fisher install oh-my-fish/plugin-peco
また、theme-agnoster テーマは python 仮想環境を表示するのでfish側を非表示にしておく$ emacs ~/.config/fish/config.fish
fish 設定反映1... 2# デフォルトの pyenv 名表示非表示( oh-my-fish/theme-bobthefish に任せる ) 3set -gx VIRTUAL_ENV_DISABLE_PROMPT 1 4# bobthefish テーマのカラーをドラキュラにする 5set -g theme_color_scheme dracula 6 7# peco history 8# set fish_plugins theme peco 9function fish_user_key_bindings 10 bind \cr peco_select_history 11end
その他、追加設定$ exec $SHELL -l
# bd で候補選択開始できる $ fisher install 0rax/fish-bd # z で候補選択開始できる $ fisher install jethrokuan/z
- tig インストール
$ sudo apt install tig
- git, tig 等のdiffカラー設定
diff ハイライトをシステムに反映
diff ハイライトを tig に反映
$ sudo chmod +x /usr/share/doc/git/contrib/diff-highlight/diff-highlight $ sudo ln -s /usr/share/doc/git/contrib/diff-highlight/diff-highlight /usr/local/bin/diff-highlight
$ emacs ~/.tigrc
diff ハイライトを git に反映# 差分表示に diff-highlight を使う (要 tig 2.2.1 以降. diff-highlight が $PATH にあること) set diff-highlight = true # カラー設定 # カーソル color cursor black cyan # diff-view で境界が見やすくなるように変更 color diff-header default magenta color diff-chunk black white
※ git の diff show log でも単語単位色替えに対応させておく$ emacs ~/.gitconfig
... [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less
- anyenv install
↑の指示に従い、anyenv init を呼び出し。ただし、fish, version 3.3.1 の場合、最初からis-nteractive分岐があるので、そこに記載する
$ git clone https://github.com/anyenv/anyenv ~/.anyenv # 現 fish_user_paths の確認(何もないはず) $ echo $fish_user_paths $ set -Ux fish_user_paths $HOME/.anyenv/bin $fish_user_paths # fish_user_paths に anyenv/bin が追加される $ echo $fish_user_paths /home/developer/.anyenv/bin $ ~/.anyenv/bin/anyenv init # Load anyenv automatically by adding # the following to ~/.config/fish/config.fish: status --is-interactive; and source (anyenv init -|psub)
$ emacs .config/fish/config.fish
ターミナル再起動し、反映/初期設定する1... 2status --is-interactive; and source (anyenv init -|psub) 3...
$ exec $SHELL -l # ANYENV_DEFINITION_ROOT(/home/developer/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by: # > anyenv install --init $ anyenv install --init Manifest directory doesn't exist: /home/developer/.config/anyenv/anyenv-install Do you want to checkout https://github.com/anyenv/anyenv-install.git? [y/N]: y # <--- anyenv 管理ディレクトリがないからcheckoutして作成することを聞いてきている。 Cloning https://github.com/anyenv/anyenv-install.git master to /home/developer/.config/anyenv/anyenv-install... Cloning into '/home/developer/.config/anyenv/anyenv-install'... remote: Enumerating objects: 71, done. remote: Counting objects: 100% (14/14), done. remote: Compressing objects: 100% (13/13), done. remote: Total 71 (delta 4), reused 4 (delta 1), pack-reused 57 Receiving objects: 100% (71/71), 13.15 KiB | 1.01 MiB/s, done. Resolving deltas: 100% (11/11), done. Completed! # 再度ターミナル再起動し反映させる $ exec $SHELL -l
developerユーザでログインできるようにする #
root ユーザでsshログインするのは問題があるのでdeveloperユーザでログインできるようにする
# developerユーザの暗号鍵生成と設定
$ ssh-keygen -t rsa
Enter file in which to save the key (/home/oya/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):password-string
Enter same passphrase again:password-string
$ cd .ssh
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ la
total 16K
drwx------ 2 developer developer 4.0K 10月 10 01:22 ./
drwxr-xr-x 8 developer developer 4.0K 10月 10 01:20 ../
-rw------- 1 developer developer 578 10月 10 01:20 authorized_keys
-rw------- 1 developer developer 2.6K 10月 10 01:20 id_rsa
$ exit
接続元へ鍵を転送しssh接続設定を追加しておく
$ scp kagoya.ubuntu20.04.root:/home/developer/.ssh/id_rsa ~/.ssh/kagoya.ubuntu20.04.developer.key
$ chmod 600 ~/.ssh/kagoya.ubuntu20.04.developer.key
ssh config に追記
$ emacs ~/.ssh/config
Host kagoya.ubuntu20.04.developer
HostName 123.45.678.9
Port 22
User developer
IdentityFile ~/.ssh/kagoya.ubuntu20.04.developer.key
developer ユーザでssh接続できるか確認しておく
$ ssh kagoya.ubuntu20.04.developer
developerで接続できれば、ここでは実施してないがrootログインを禁止しておいたほうがいい。
apache インストール&設定 #
# 現状のサービス一覧確認しておく(apacheが存在しないことを確認)
$ service --status-all
[ + ] acpid
[ + ] alsa-utils
[ - ] anacron
[ - ] apparmor
[ + ] apport
[ + ] atd
[ - ] avahi-daemon
[ - ] bluetooth
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ - ] cups
[ - ] cups-browsed
[ + ] dbus
[ - ] gdm3
[ - ] grub-common
[ - ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] kerneloops
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] multipath-tools
[ - ] network-manager
[ - ] open-iscsi
[ - ] open-vm-tools
[ - ] openvpn
[ - ] plymouth
[ - ] plymouth-log
[ - ] pppd-dns
[ + ] procps
[ + ] pulseaudio-enable-autospawn
[ - ] rsync
[ + ] rsyslog
[ + ] saned
[ - ] screen-cleanup
[ - ] speech-dispatcher
[ + ] spice-vdagent
[ + ] ssh
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd
[ - ] whoopsie
[ - ] x11-common
# apache install
$ sudo apt install apache2 apache2-dev
$ systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-10-10 02:27:44 JST; 24s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 12089 (apache2)
Tasks: 55 (limit: 2203)
Memory: 4.9M
CGroup: /system.slice/apache2.service
├─12089 /usr/sbin/apache2 -k start
├─12090 /usr/sbin/apache2 -k start
└─12091 /usr/sbin/apache2 -k start
rbenv インストール #
$ anyenv install rbenv
$ exec $SHELL -l
$ sudo apt install build-essential checkinstall zlib1g-dev
# ruby 1.8.7 が必要ない場合は、redmine インストールまで進むこと。
# ruby 1.8.7 インストール(他のwebサービスで使うため。ここではインストール方法を残すために記載しておく)
$ rbenv install --patch 1.8.7-p249 < (curl -sSL https://git.io/ruby-1.8.7-p249-patch | psub)
# apache2 cgi 有効(apacheでcgiとしてruby実行したい場合、必要)
$ sudo a2enmod cgid
redmine インストール #
- 準備
# svn インストール $ sudo apt install -y subversion # RubyとPassengerのビルドに必要な開発ツールやヘッダファイルのインストール $ sudo apt install -y build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev # 日本語フォントのインストール $ sudo apt install -y imagemagick fonts-takao-pgothic # mariadb(mysql)インストール $ sudo apt install -y mariadb-server mariadb-client libmysqlclient-dev $ sudo mysql_secure_installation # root の現在のパスワードを入力 (なしの場合は入力): # ルートパスワードを設定しますか? [はい/いいえ] # 匿名ユーザーを削除しますか? [はい/いいえ] # リモートでの root ログインを禁止しますか? [はい/いいえ] # テスト データベースを削除してアクセスしますか? [はい/いいえ] # 今すぐ特権テーブルをリロードしますか? [はい/いいえ]。 Enter current password for root (enter for none): Set root password? [Y/n]:n Remove anonymous users? [Y/n]:y Disallow root login remotely? [Y/n]y: Remove test database and access to it? [Y/n]:y Reload privilege tables now? [Y/n]:y # mysql コマンド # user 一覧 # > select user,host from mysql.user; # user 削除 # > drop user user_redmine@localhost; # database一覧 # > show databases; # db 削除 # > drop database xxxx; # table一覧 # > show tables from xxx; # root でログイン(パスワードなし) $ sudo mysql -u root -p Enter password: <--- エンター押下のみ > CREATE DATABASE redmine50 default CHARACTER SET utf8mb4; > CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password-string'; > GRANT ALL PRIVILEGES ON redmine50.* TO 'redmine'@'localhost'; > flush privileges; > exit; # redmine ユーザでログインしてredmine_5_0があるか調べる $ sudo mysql -u redmine -p Enter password:password-string > show databases; +--------------------+ | Database | +--------------------+ | information_schema | | redmine50 | +--------------------+ 2 rows in set (0.005 sec) > exit;
- redmine5.0 を取得とrubyバージョン設定
redmine5.0 は /home/developer/redmine-5.0 に配置するようにする
$ svn co https://svn.redmine.org/redmine/branches/5.0-stable redmine-5.0 $ cd redmine-5.0 $ rbenv install 3.1.4 $ rbenv local 3.1.4 $ rbenv versions * 3.1.4 (set by /home/developer/redmine-5.0/.ruby-version) $ ruby -v
- db 設定
サンプルをコピーして編集する
$ cp config/database.yml.example config/database.yml
$ emacs config/database.yml
1production: 2 adapter: mysql2 3 database: redmine50 4 host: localhost 5 username: redmine 6 password: "password-string" 7 encoding: utf8mb4
- apache に redmine サイト設定を追加
redmine.test.com とサブドメインでredmineを運用する場合の設定
$ sudo emacs /etc/apache2/sites-available/redmine50.conf
redmine50.conf 反映1<VirtualHost *:80> 2 ServerName redmine.test.com 3 DocumentRoot /home/developer/redmine-5.0/public 4 <Directory "/home/developer/redmine-5.0"> 5 Options Includes ExecCGI FollowSymLinks 6 AllowOverride All 7 Order allow,deny 8 Allow from all 9 Require all granted 10 </Directory> 11</VirtualHost>
# テスト実施 $ sudo apache2ctl configtest # apache に適用 $ sudo a2ensite redmine50 # apache 設定反映 $ sudo systemctl reload apache2
- gem install
redmine-5.0 ディレクトリで実施
ここでは、旧redmine3.3.2 のtextile形式をmarkdown形式に変換するためにpandoc gemも追加インストールしている
まずは、redmine5.0のbundle installを実施textile2md2 を実行するために pandoc 追加$ bundle config set --local without 'development test' $ bundle i
$ sudo apt install pandoc
$ emacs Gemfile
再度、bundle install を実施(pandoc-ruby 一式がインストールされる)1... 2gem 'pandoc-ruby' 3...
textile形式からmarkdownに変換するスクリプトを取得して、lib/tasksに配置する$ bundle i
この変換スクリプトはpandocとオリジナルの変換ロジックを混ぜて作成した自作スクリプト。
pandoc だけでは完全な形式に変換することは不可能なので、必要に応じてスクリプトを変更することで期待の変換ができるかもしれない。
現状は自分の都合のよい変換結果となるように細工してあるだけで、完璧に変換はできないので問題があれば頑張って変更してみてもいいかも。。。$ wget https://github.com/oya3/textile2md2/raw/main/textile2md2.rake $ mv textile2md2.rake lib/tasks/.
- バックアップしたdbdump/fileを書き戻す
旧サーバからコピーしておくこと。
$ scp redmine332_msqldump.txt kagoya.ubuntu20.04.developer:/home/developer/redmine-5.0/. $ scp -r files kagoya.ubuntu20.04.developer:/home/developer/redmine-5.0/.
$ sudo mysql -u redmine -p redmine50 < redmine332_msqldump.txt
- 鍵生成
$ bundle exec rake generate_secret_token
- 全体DB更新
$ bundle exec rake db:migrate RAILS_ENV=production
- クリーンナップ
$ bundle exec rake tmp:cache:clear RAILS_ENV=production
- textile 形式から markdown形式 に変換
もし、textile2md2 実行中にメモリ不足が発生した場合、以下を実施し一時的にスワップファイルを作成する
$ bundle exec rake textile2md2:execute RAILS_ENV=production
$ dd if=/dev/zero of=/tmp/swap.img bs=1M count=10240 $ chmod 600 /tmp/swap.img $ mkswap /tmp/swap.img $ sudo swapon /tmp/swap.img
- passenger 設定
passenger インストールと動作確認$ gem install passenger -N $ passenger-install-apache2-module --auto --languages ruby # apache に設定する passernger 設定を確認 $ passenger-install-apache2-module --snippet LoadModule passenger_module /home/developer/.anyenv/envs/rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /home/developer/.anyenv/envs/rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/passenger-6.0.17 PassengerDefaultRuby /home/developer/.anyenv/envs/rbenv/versions/3.1.2/bin/ruby </IfModule>
- apache conf-available に passenger 設定追加
ここでは、versions/3.1.2/bin/rubyの固定バージョンではなく、shims/ruby にしているので注意$ sudo emacs /etc/apache2/conf-available/passenger.conf
1LoadModule passenger_module /home/developer/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/passenger-6.0.18/buildout/apache2/mod_passenger.so 2<IfModule mod_passenger.c> 3 PassengerRoot /home/developer/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/passenger-6.0.18 4 PassengerDefaultRuby /home/developer/.anyenv/envs/rbenv/shims/ruby <--- ここ変更している 5 PassengerUserSwitching off 6 PassengerDefaultUser developer 7</IfModule>
- passenger 設定をapacheに反映
$ sudo apache2ctl configtest Syntax OK $ sudo a2enconf passenger # redmine 再起動 $ sudo systemctl restart apache2
redmine 起動確認と初期設定 #
- ブラウザで redmine.test.com にアクセスする
- ログイン画面が表示されたらadminでログインする
- テキスト形式を textile形式からmarkdown(CommonMark Markdown(GitHub Flavored) experimental)に変更しておく
管理→設定→全般タブに「テキスト形式」設定欄がある
- 管理に移動
- 設定に移動
- markdownに変更
https アクセス設定 #
-
certbot インストール
$ sudo apt -y install certbot
-
apache ssl & rewrite設定有効
$ sudo a2enmod ssl rewrite
-
https 接続用証明書一式作成
$ sudo certbot certonly --webroot -w /home/developer/redmine-5.0/public -d redmine.test.com -m "メールアドレス" # 以下の選択しが表示されるはず。 # 1. 利用規約同意 yes # 2. メール通知許可 yes(no でもいいかもしれない)
上記コマンドで以下が生成されていれば成功
- SSLCertificateFile 用が /etc/letsencrypt/live/test.com/cert.pem
- SSLCertificateKeyFile 用が /etc/letsencrypt/live/test.com/privkey.pem
- SSLCertificateChainFile 用が /etc/letsencrypt/live/test.com/fullchain.pem
-
redmine50.conf に https アクセス設定を追加
以下の設定でhttps接続追加と、httpにアクセスした場合、https に転送される設定が追加される$sudo emacs /etc/apache2/sites-available/redmine50.conf
1<VirtualHost *:80> 2 ServerName redmine.test.com 3 DocumentRoot /home/developer/redmine-5.0/public 4 <Directory "/home/developer/redmine-5.0"> 5 Options Includes ExecCGI FollowSymLinks 6 AllowOverride All 7 Order allow,deny 8 Allow from all 9 Require all granted 10 </Directory> 11 # 転送設定 12 RewriteEngine On 13 RewriteCond %{HTTPS} off 14 RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 15</VirtualHost> 16 17<VirtualHost *:443> 18 ServerName redmine.test.com 19 DocumentRoot /home/developer/redmine-5.0/public 20 <Directory "/home/developer/redmine-5.0"> 21 Options Includes ExecCGI FollowSymLinks 22 AllowOverride All 23 Order allow,deny 24 Allow from all 25 Require all granted 26 </Directory> 27 SSLEngine on 28 SSLCertificateFile /etc/letsencrypt/live/test.com/cert.pem 29 SSLCertificateKeyFile /etc/letsencrypt/live/test.com/privkey.pem 30 SSLCertificateChainFile /etc/letsencrypt/live/test.com/fullchain.pem 31</VirtualHost>
https アクセス設定を反映
$ sudo apache2ctl configtest Syntax OK # redmine 再起動 $ sudo systemctl restart apache2
その他 #
DNS 設定 #
https://redmine.test.com でアクセスできることを想定して以下の設定にしている
※ a * 123.45.678.9, a @ 123.45.678.9 だけでも問題ないかもしれないが試してない
a * 123.45.678.9
a www 123.45.678.9
a redmine 123.45.678.9
a @ 123.45.678.9