postfixadminのバージョンアップ

Table of Contents

PostfixAdminの更新

本番更新はメンテナンス時間を確保して実施します。更新先のリリースノートでPHP・DB要件とアップグレード手順を確認してください。例ではGitチェックアウトを /opt/postfixadmin とします。

更新前の確認とバックアップ

作業ツリーの変更がないこと、現在のバージョンとDB名を確認します。ローカル変更がある場合は、内容を確認して別途保存・反映してから更新してください。

# cd /opt/postfixadmin
# git status --short
# git rev-parse --short HEAD

アプリケーションをメンテナンス状態にし、DBとローカル設定ファイルをバックアップします。DB名と設定ファイルの場所は実環境に合わせてください。バックアップにはDB資格情報やメール情報が含まれるため、アクセス権を制限し、安全な場所に保管します。

# install -d -m 0700 /var/backups/postfixadmin
# umask 077
# mysqldump -u root -p --single-transaction --routines --triggers --events postfixdb > /var/backups/postfixadmin/postfixdb-$(date +%Y%m%d-%H%M%S).sql
# cp -a /opt/postfixadmin/config.local.php /var/backups/postfixadmin/

config.local.php が存在しない場合は、実際に使っている設定ファイルをバックアップしてください。ダンプが作成され、サイズが0でないことを確認してから続行します。

更新するリリースの取得

最新の安定版タグは、PostfixAdmin公式リポジトリのリリース情報・変更履歴と照合して選びます。git pull で任意のブランチを更新するのではなく、更新先のリリースタグを指定します。

# cd /opt/postfixadmin
# git fetch --tags origin
# git tag --list 'postfixadmin-*' --sort=-version:refname

更新先として確認したタグを指定します。以下の値は例です。公式に公開された対象タグへ置き換えてください。

# TAG=postfixadmin-4.0.5
# git show --no-patch --decorate "$TAG"
# git checkout --detach "$TAG"

リリース固有の更新手順と確認

チェックアウトしたリリースのアップグレード手順に従い、必要なPHP依存関係やDBスキーマの更新を行います。install.sh を含むスクリプトを、リリースの説明を確認せずに実行しないでください。setup.php は、そのリリースの公式手順でDB更新に必要とされる場合に限り使用します。

セットアップ画面を使用する場合はHTTPSでアクセスし、接続元を管理者のみに制限してください。更新完了後はセットアップ機能を無効化または削除し、再アクセスできないことを確認します。

# git status --short
# php -v

Web画面、メール送受信、Postfix/Dovecot連携を確認してからメンテナンス状態を解除します。問題があればコードを以前のコミットへ戻すだけでなく、必要に応じて更新前DBバックアップも復元してください。コードとDBのバージョンを不整合のまま運用しないでください。

参考

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です