Drupal10を最新版にアップデートする

Drupal10を最新版にアップデートする
sinceretechnology

 

 

 

 

はじめに

 

 

Drupalのセキュリティパッチは頻繁にアップデートされていますので、公開されているサイトは常に最新版にしておく必要があります。ここでは、バックエンド側で実施する手順を説明しています。

 

ちなみにDrupal9以降のリリースサイクルは次のとおりです。

  1. 毎月パッチリリース日程を固定して、バグフィックスを提供
  2. 6ヶ月ごとに新しいマイナーバージョンがリリースされる。これにはAPIの変更や新機能が含まれることがある
  3. 各マイナーアップデートに対するセキュリティアップデートは、次のマイナーバージョンがリリースされた後も6ヶ月間提供される(つまりコミュニティによる各マイナーアップデートのサポートは合計1年)

 

 

 

 

 

Drupalのバージョン確認

 

 

Drupalのバージョン確認の方法は、いくつかありますがここでは管理画面からGUIで確認する方法を紹介します。

 

1.管理者権限でログインする

2.メニューバーから、Reportsを選択する

3.Status reportを選択する(下図イメージ1)

4.Drupal VersionブロックのDrupalバージョンを確認する(下図イメージ2)

 

イメージ1

 

 

イメージ2

 

 

 

 

 

Drupal10のバックアップ

 

 

Drupalのバックアップはデータベースのバックアップとファイルのバックアップの両方を同じタイミングで実施する必要があります。

 

 

 

 

 

データベースのバックアップ

 

 

MYSQLの場合、mysqldumpコマンドを使ってバックアップする方法もありますが、ここではDRUSHのデータベースエクスポートコマンドを使用します。

 

drush sql:dump > {バックアップファイルパス}

 

 

lando 環境の場合は以下のコマンドになります

 

lando drush sql:dump > {バックアップファイルパス}

 

 

 

 

ファイルのバックアップ

 

 

ファイルはドキュメントルート(webフォルダ)をすべて圧縮してバックアップします

ここではTARコマンドを使用します

 

tar cvzf {バックアップファイルパス} ./web

 

 

 

 

 

Drupal10のバージョンアップ

 

 

Drupal10のコアモジュールのバージョンアップは、次の3つの方法があります。

 

  • Composerでおこなう
  • マニュアルでおこなう
  • Drushでおこなう

 

ここでは、ComposerでDrupal10のコアモジュールのバージョンアップを行う方法について説明しています。

 

 

 

 

ComposerでDrupalを最新版にアップデートする

 

 

 

DrupalがComposerのdrupal/core-recomendedコマンドでインストールされている場合は、プロジェクトフォルダで以下のコマンドをタイプしてください。
パッケージの一覧が表示されるはずです。

 

composer show drupal/core-recommended

 

 

次に、念のため、実際のアップデートする前に--dry-run オプションでエラーが出ないことを確認してください。

 

composer update "drupal/core-*" --with-all-dependencies --dry-run

 

 

エラーが表示されていなければ、コマンドでアップロードを実施します

 

composer update "drupal/core-*" --with-all-dependencies

 

 

 

特定のバージョンにアップデートする

 

上記の方法で最新版をとってこれない場合や特定の過去のバージョンをインストールしたい場合は、対象のバージョン番号を指定します。10.1.1にアップデートする場合は以下のコマンドです。

 

composer require drupal/core-recommended:10.1.1 drupal/core-composer-scaffold:10.1.1 drupal/core-project-message:10.1.1 --update-with-all-dependencies

 

 

PHP Fatal Errorが発生した場合の対応

 

 

次のエラーが発生したときの対処法です。

PHP Fatal error:  Cannot declare class Dealerdirect\Composer\Plugin\Installers\PHPCodeSniffer\Plugin, because the name is already in use in /vendor/dealerdirect/phpcodesniffer-composer-installer/src/Plugin.php on line 35

 

 

次のコードをコマンドラインから実行してください。

 

composer require drupal/coder -W

https://www.drupal.org/forum/support/upgrading-drupal/2023-03-03/solved-updating-to-drupal-core-954-php-fatal-error

 

 

Drupalコアのアップデートが成功したら、コントリビュートモジュールのアップデートを実施します。

 

個別に指定するのは面倒なのでコントリビュートモジュールのアップデートは以下のコマンドで一気にに行い、エラーが発生した場合は個別に確認してエラー箇所を対応後にサイドコマンドを実施してください。(個々のエラー対応方法はdrupal.orgを確認するかググって調べましょう)

composer update

 

 

 

トラブルシューティング

 

バージョンが更新されない場合、上記「特定のバージョンにアップデートする」を参考にバージョン番号を指定してインストールを実施する。エラーまたはワーニングが表示される場合は、それを参考に原因を調べる。

 

また以下のコマンドを実行すると、対象モジュールのバージョンが更新されない原因が表示されます。

 

composer why-not drupal/core 10.2.2

 

 

 

データベースの更新

 

 

Web ベースでもデータベースの更新をすることができますが、 Drush が実行できる環境がある場合は、こちらのほうが速くて簡単です。

 

Drushを使用する場合は以下のコマンドで完了します。

drush updatedb

 

WEBベースの場合は、画面から「データベースのアップデートスクリプト」リンクをクリックすると、データベースの更新ページに移動します。ここで指示に従って進めていくと更新が完了します

 

最後に次のコマンドでキャッシュのクリアとリビルドは忘れずに。

drush cr

 

 

以上になります。

 

 

 

 

 

 

参考

 

 

Updating Drupal core via Composer

https://www.drupal.org/docs/updating-drupal/updating-drupal-core-via-composer

 

Drupal 9からDrupal10へのアップグレード方法

https://www.mochiya.ad.jp/blog/drupal_knowledge/detail/how_to_upgrade_

 

 

 

 

 


この記事に関するご質問やご意見などございましたらお問い合わせフォームからお気軽にご連絡ください。