DrupalサイトサーバーをUbuntu 24.04から26.04へ

さくらのクラウドで複数のDrupalサイトを管理している。

いままで、Ubuntu 24.04でphp8.3(ondrej)で運用してきているが、Drupal 12からはphp8.4以上が必要になるのでどうせ環境に手を加えなければならないことと、Ubuntu 26.04.1 LTSが8月に出てondrejに頼らなくてもphp8.5が利用できるようになることから、移行する決断をした。2年前の24.04の時はクリーンインストールで始めたけれど、今回はバージョンアップグレード(do-release-upgrade)で実施した。

まずさくらのクラウドの機能で、稼働中のインスタンスのディスクのスナップショットを取得、そのスナップショットから、ディスクを作成し、開発サーバーを立ち上げる。さくらのコンソールから、netplanのIPアドレスを修正すれば、すんなりと検証環境が立ち上がる。

幸い、【2026年】Ubuntu 24.04から26.04へのアップグレード手順と注意点という記事があったので、これを参考にまず、バージョンアップグレードを実施した。クローニングした環境だから、「ステップ 0:事前準備(非常に重要)」は対応不要。「ステップ 1:現在のシステム(24.04)を最新にする」、「ステップ 2:アップグレードの実行」は記載の通りに実施して全く問題なく終わった。この段階で、開発環境のDrupalサイトにアクセスすると、問題なくアクセスできた。ここまで、記事の読み込みや検討などを含めて概ね3時間。ただ、この段階では、Drupalサイトのphpは8.3のままである。

ここで、phpのインストールやApacheへの組み込みを行う。過去のインストール記録から、必要なphpパッケージ等を特定してapt installするが、パッケージ構成が変わっていてパッケージが無くなっているもの(phpに吸収されたりmysqlに吸収されていたり)するものがあったりしてやや混乱したが、cli環境の8.5化に成功。composerを再インストールして、composer update -Wやdrush updbが無事に機能することを確認。ついで、sudo a2enmod php8.5等で、apacheの構成も8.5化を行い、Drupalサイトの8.5化にも成功。このステップが意外と時間がかかって概ね2時間。1日目の作業を終了。

翌朝(今朝)、再度スナップショットから再現したディスクをつなぎ直して、各ステップを再実行。その課程でphp-gd php-mbstringのapt install漏れが判明したが、本番移行が十分可能であると判断した。概ね2時間。

いよいよ本番移行。既に前日に告知していたが、Drupalサイトをメンテナンスモードにした上で、再度スナップショットを作成。そのスナップショットを開発環境につなぎ直して、手順通りにスクリプトを実施。概ね2時間。最後にnetplanでipアドレスを本番のものに修正して、shutdown、ディスクの切り離し。その後、本番サイトをshutdown、ディスクの入れ替えを行って立ち上げ、動作確認を行った。概ね30分。

以上で、入れ替え作業を終了。まあ、この記事の執筆を含めて12時間程度だから、1.5人日。無視できる工数ではないが、まあこの程度で済めば良しとすべきだろう。

備忘までにスクリプトを記載しておく。

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt dist-upgrade -y
sudo reboot
sudo do-release-upgrade -d
sudo apt install php php-fpm php-common php-cli php-readline libapache2-mod-php php-mysql php-xml php-gd php-mbstring
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
sudo a2enmod php8.5
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.5-fpm
sudo systemctl restart apache2

タグ
feedback
こちらに記入いただいた内容は執筆者のみに送られます。内容によっては、執筆者からメールにて連絡させていただきます。