Drupal9の準備も兼ねてDebian 10への移行の調査をした

hagi に投稿

来週、Drupalは久しぶりのメジャーバージョンアップで9になる予定である。

前回のDrupal8へのバージョンアップで多くのユーザーがついて来られなかった反省も踏まえ、今回のバージョンアップはかなり丁寧に準備が進められており、中でもすごいのは、upgrade_statusというModuleが提供されている点である。完全かどうかは置いておくとしても、チェックしてもらえるのは大変ありがたい。

当ブログの場合は、Drupal本体(core)のレベルで、2つの問題がある。1つ目はPHP7.2で、もう一つはMariadbのバージョンだ。もちろん、現在のOS - Debian 9のまま対応することも可能なのだが、どうせなら、OSをDebian 10に上げれば、自動的にPHP7.3、Mariadb10.3が標準になる。OSの移行を行うと、いろいろな断捨離ができることもあり、今日は最初のトライアルを行った。ちなみに、これが成功すれば、現在のさくらのクラウドからGCPに移行できる可能性があるところも魅力の一つだ。

ちょっと欲を出して、WebサーバーをApache2からNginxに変えるのも同時にやってみてハマった。やはり本当は一度に一つだけやるのが正しい。

結論から言えば、Nginxへの移行を除くと非常に簡単だった。

委細は別途書くとして、Debianインストール、apt update、apt upgrade後にやるのは、

apt install mariadb-server
apt install curl php php-mysqlnd php-fpm php-common php-pear php-mbstring php-dom php-gd php-curl zip unzip
curl -sS https://getcomposer.org/installer|php
mv composer.phar /usr/local/bin/composer

でほぼ終わり。ただ、certbotは、まだ移行実験はやっていない。

後は、稼働中のサイトで、プロジェクトのルートから全部tarを取って再現し、mysqldumpで取ったデータベースイメージをロードすれば良い。分かってしまえば、サイトあたり3時間かかることは無いだろう。

nginx移行は、/etc/nginx/sites-available/defaultを適切に設定すればOK。構成情報は、https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/ にあるので、それを適用すれば問題ないようだ。が、"502 Bad Gateway"が発生してうまく動かない。いろいろ探してみて結局分かったのは、上記の構成情報の中に
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
という記述が入っていたので、動かなかったのだ。これを
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
に変えればOK。慣れないことをやると勘が効かないので約3時間ロストした。

まあ、OS移行はなんとかなるだろう。ただ、使っているモジュールの多くでDrupal9対応は、委細を見る限り深刻な感じは無いが、未対応だ。

Upgrade status

実際にD9に上げるのは、夏以降になると思うが多分いけると思う。

タグ