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

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

はじめに

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で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

詳細は、Composer以外のアップロード手順についてはこちらのサイトをご覧ください

Access to this page has been denied.

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
Access to this page has been denied.

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

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

composer update

Add passwordless login to your app in minutes. Passkeys, 2FA, Social Logins, & more. Start for free.ads via Carbon

広告は DA を支えます。 会員向けには広告が非表示になります。 今日参加します

このページでは

Drupal の更新

Composer 経由で Drupal コアを更新する

最終 更新

2023 年 3 月 31 日

このセクションでは、Drupal サイトを新しいパッチまたはマイナー バージョンに更新するコンポーザー固有の手順のみを説明します。 更新手順の詳細については、次のセクションで説明します。 場合は アップグレードする Drupal を新しいメジャー バージョンに 、 「Drupal 8 (またはそれ以降) から新しいメジャー バージョンへのアップグレード」を参照してください。

Composer が Drupal の依存関係を管理する方法を理解するには、 「Using Composer with Drupal」を参照し、 利用可能なオプションを比較してください。 いることを確認してください これが既存の Drupal サイトで、これまで Composer を使用したことがない場合は、最初にComposer の準備ができて

利用可能な Drupal アップデートをリストする

composer outdated "drupal/*"

で始まる行がない場合は、 drupal/core, Composer はアップデートを認識していません。 更新がある場合は、以下のコマンドを続行します。

走る:

composer show drupal/core-recommended
  • もし drupal/core-recommendedインストールされている場合、このコマンドはパッケージに関する情報を返します。
  • もし drupal/core-recommendedインストールされていない場合、このコマンドは「パッケージ drupal/core-recommended not found」を返します。

2 つの違いは、drupal/core-recommend では、安定性を最大限に高めるために、ほとんどの依存関係がパッチレベルの更新に制限されることです。 drupal/coreこれは、依存関係の最新のマイナー バージョンを使用し、それらが適切に動作するかどうかのテストを行う場合に便利です。 詳細については、 README を参照してください。

Drupal コアコードを更新する

使用している場合 drupal/core-recommended:

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

注: 一部のシェル (zsh、fish など) では、 アスタリスクパッケージのワイルドカードの 処理が異なるため、引用符で囲む必要があります。

使用していない場合 drupal/core-recommendedしかしその代わりにだけ drupal/core:

composer update drupal/core --with-dependencies

実際には何も変更せずに更新をシミュレートし、何が起こるかを示すには、次を追加します --dry-run.

コアの最新パッチバージョンに更新します

サイトを最新のパッチ バージョンに更新するが、最新のマイナー バージョンには更新しない場合は、次を追加します --with=それぞれのオプション drupal/core-*にリストされている依存関係 composer.json.

たとえば、9.4 が現在のマイナー バージョンで、サイトを最新のパッチ バージョン 9.3 に更新する場合は、次のようにします。

composer update "drupal/core-*" --with-all-dependencies --with=drupal/core-recommended:~9.3.0 --with=drupal/core-composer-scaffold:~9.3.0

この例では、次のことを前提としています。 drupal/core-recommendedそして drupal/core-composer-scaffold唯一の Drupal コア依存関係 composer.json.

特定のバージョンのコアに更新する

一般に、特定のバージョンに固定することがわかっている場合を除き、更新時に Drupal コアの特定のバージョンを指定しないことをお勧めします。 サイトを特定のバージョンに固定したい場合は、次の例を使用できます。

サイトをバージョン 9.3.6 に固定し、それに応じてすべての依存関係を更新するには:

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

警告: サイトを特定のコア バージョンに固定すると、そのバージョンがロック ファイルに追加され、今後の更新はこのバージョンを超えることはありません。 以下に指定されているように require コマンドを再実行して、コアの「固定されていない」バージョンに戻ります。

特定のバージョンのコアからの固定解除

Drupal コアの固定バージョンを実行していて、サイトを別のバージョンに更新したい場合は、2 つの選択肢があります。

  1. 上記のcomposer requireコマンドを実行して、コアの新しい固定バージョンを指定できます。
  2. コア バージョンの固定を解除し、Drupal の最新バージョンに更新できます。

Drupal のバージョンの固定を解除するには、次のコマンドを実行します。

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

データベースの更新を実行する

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

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

drush updatedb

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

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

drush cr

Composer以外でアップデートする場合

詳細またはComposer以外のアップロード手順についてはこちらのサイトをご覧ください

マニュアルでアップデートする場合

Access to this page has been denied.

Drushでアップデートする場合

Access to this page has been denied.

参考

Updating Drupal core via Composer

Access to this page has been denied.

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

Drupal 9からDrupal10へのアップグレード方法 | モチヤ株式会社
このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました