Drupalバージョンアップでcore配下が消失した事例から学ぶ、所有者設定とバックアップの重要性

Drupal
2026.10.01
渡部
エンジニア

Drupalのバージョンアップやリリース作業では、ファイルやデータベースのバックアップを事前に取得することが基本です。

しかし、手順として「バックアップを取る」と理解していても、実際にどのような場面で必要になるのか、イメージしにくいこともあります。

特に注意したいのが、サーバー上のファイルやディレクトリの所有者・権限を変更しながら作業する環境です。なお、所有者の変更にはchownコマンドを、実行権限の変更にはchmodコマンドを使用しますが、本記事では主に所有者(chown)にまつわる問題を扱います。作業用アカウントとファイル所有者の関係によっては、コマンドが正常に実行できず、想定外のエラーにつながることがあります。

実際のDrupal案件でも、バージョンアップの検証中に所有者の変更漏れがあり、エラー発生後にcore配下のファイルが消失する事象が発生しました。事前にファイルとデータベースのバックアップを取得していたため復旧できましたが、バックアップがなければ影響が大きくなっていた可能性があります。

本記事では、この事例をもとに、Drupalのリリース・バージョンアップ作業で確認すべき所有者設定とバックアップについて整理します。

目次

    Drupalのリリース作業で所有者が問題になる理由

    Drupalサイトの構成やサーバー環境によっては、SSHなどで接続する作業者のアカウントと、Webサーバーや既存ファイルの所有者が異なる場合があります。

    このような環境では、単純にファイルを配置したりコマンドを実行したりするだけでは、権限不足によって処理できないケースがあります。Drupalのコアアップデートは一般にComposerを用いて実施しますが(例:composer update drupal/core-recommended)、この際にディレクトリへの書き込み権限がなければ、更新処理そのものが途中で失敗することがあります。

    そのため、以下のような手順が必要になることがあります。

    • 対象ディレクトリの所有者を作業用アカウントへ一時的に変更する
    • 必要な処理を実行する
    • 作業後に本来の所有者へ戻す

    重要なのは、この対応がDrupalそのものの一律の仕様ではなく、サーバー構成やアカウント設計によって必要性が変わることです。別のDrupal環境では同じ対応が不要な場合もあるため、既存の手順をそのまま流用するのではなく、対象環境のファイル所有者と実行ユーザーの関係を事前に確認する必要があります。

    バージョンアップごとに処理対象ファイルが異なる場合がある

    さらに注意したいのが、Drupalのバージョンアップです。以前のバージョンでは変更する必要がなかったファイルやディレクトリが、新しいバージョンでは処理対象になる場合があります。

    そのため、「前回はこの範囲だけ所有者を変更すれば問題なかった」という手順が、そのまま次回のバージョンアップでも使えるとは限りません。

    実案件でも、以前の作業では対象外だった箇所について所有者変更が必要になり、その一部が変更されていなかったことでエラーが発生しました。

    Drupalのバージョンアップでは、単にバージョン番号だけを見るのではなく、今回の更新によってどのファイルやディレクトリが処理対象になるのかまで確認することが重要です。ComposerやDrushを用いた更新コマンドがどのディレクトリに対して読み書きを行うのかも、事前に把握しておく必要があります。

    core配下のファイルが消失した事例

    実案件の検証環境では、バージョンアップ時に必要な所有者変更が一部行われていない状態で処理を実行したところ、エラーが発生しました。その後、Drupalのcore配下を確認すると、ファイルが消失している状態になっていました。

    ここで重要なのは、「所有者の設定を誤ると必ずcoreが消える」ということではありません。

    Composerによるアップデートでは、既存のcoreディレクトリを一旦削除し、そこへ新しいバージョンのファイルを配置するという処理が行われる場合があります。所有者の不一致によって削除処理までは成功し、その後の配置処理が権限不足で失敗すると、結果としてcoreディレクトリの中身が失われた状態になる可能性があります。ただし、実際にどの処理によってファイル削除まで至るかは、Drupalのバージョンや更新方法、サーバー構成によって異なるため、この推測がそのまますべての事例に当てはまるわけではありません。

    そのため、同様の事象が発生した場合は、エラーログや実行したコマンド、対象ファイルの状態を確認し、原因を切り分ける必要があります。

    バックアップによってすぐに復旧できた

    この事例で大きな障害につながらなかった理由は、作業前にバックアップを取得していたことです。

    バージョンアップ前には、以下のバックアップを取得していました。

    • データベース(DB)のバックアップ
    • Drupal関連ファイル一式のバックアップ

    そのため、core配下が消失した後もバックアップからファイルを戻し、作業前の状態へ復旧することができました。

    Drupalのバージョンアップでは、「更新が成功すること」を前提として作業するのではなく、途中で問題が起きても元に戻せる状態を作ってから開始することが重要です。

    Drupalバージョンアップ前に確認したいポイント

    バージョンアップやリリース前には、少なくとも次の点を確認しておくと安全です。

    ファイルとデータベースの両方をバックアップする

    Drupalサイトの状態は、データベース(コンテンツ・各種設定・ユーザー情報など)と、ファイルシステム(コアファイル・カスタムモジュール・カスタムテーマ・settings.php・公開ディレクトリ配下のファイルなど)の両方によって構成されています。

    ファイルだけ、あるいはデータベースだけを戻しても、サイトを完全に復旧できるとは限りません。障害の内容に応じて、両方を一致した状態で復旧できるようにしておく必要があります。

    実行ユーザーと所有者を確認する

    リリースやバージョンアップに使用するアカウントから、処理対象となるファイル・ディレクトリへ必要な操作ができるか確認します。

    環境ごとに権限設計が異なるため、本番環境と検証環境で差異がないかも確認が必要です。具体的には、Webサーバーの実行ユーザー(www-dataなど)、作業用アカウントに付与されたsudoersの設定内容、NFSなど外部ストレージのマウント設定の有無といった点が確認対象になります。

    今回のバージョンで処理対象になる範囲を確認する

    過去のバージョンアップ手順を参考にすることは有効ですが、そのまま再利用できるとは限りません。

    更新内容によって変更対象となるファイルや設定が変わっていないかを確認したうえで、必要な所有者・権限を整理します。

    検証環境で実際の手順を確認する

    本番環境で初めてバージョンアップ手順を実行するのは避け、可能な限り本番に近い検証環境で事前に実行します。

    コマンドが正常終了するかだけでなく、更新後のファイル状態や画面表示まで確認することで、本番作業時のリスクを抑えられます。

    バックアップは「取得」だけでなく「戻せること」が重要

    バックアップは、単にファイルを保存しておけばよいわけではありません。障害発生時に、どのバックアップを使用するか、どのファイルを戻すか、データベースも戻す必要があるか、どの時点まで切り戻すかを判断できる状態にしておく必要があります。

    特にバージョンアップのように複数のファイルや設定が一度に変更される作業では、問題の発生箇所がすぐに特定できない場合があります。その際に、作業開始前の状態へ確実に戻せる手段をあらかじめ確保しておくことで、原因調査に時間をかけることなく、まずサイトを正常な状態へ戻すという対応が可能になります。

    まとめ

    Drupalのリリースやバージョンアップでは、サーバー環境によってファイルの所有者・権限が作業に影響することがあります。

    特に注意したいポイントは次の通りです。

    • 作業用アカウントとファイル所有者の関係を事前に確認する
    • 過去と同じバージョンアップ手順がそのまま使えるとは考えない
    • 今回の更新で変更対象となるファイルやディレクトリを確認する
    • 本番作業前に検証環境で実際の手順を確認する
    • ファイルとデータベースのバックアップを取得し、復旧可能な状態にする

    バージョンアップそのものが短時間で実施できる場合でも、権限設定やバックアップを含めた事前準備を省略すべきではありません。

    「正常に終わるための手順」だけでなく、「失敗しても戻せる手順」まで含めて設計することが、Drupalを安定して運用するうえで重要です。

    よくある質問(FAQ)

    Q. Drupalのバージョンアップ前には、ファイルだけバックアップすればよいですか。

    ファイルだけではなく、データベースも含めてバックアップすることを推奨します。Drupalではコンテンツや設定の一部がデータベースに保持されているため、障害の内容によってはファイルだけを復元しても作業前の状態へ戻せない場合があります。サイト構成に応じて復旧対象を整理しておくことが重要です。

    Q. ファイル所有者は必ず作業用アカウントへ変更する必要がありますか。

    必ずしも必要ではありません。所有者変更が必要かどうかは、サーバー構成、実行ユーザー、デプロイ方法などによって異なります。重要なのは、使用するアカウントが対象ファイルに必要な操作を行えるかを確認することです。

    Q. 過去に問題なく使えたバージョンアップ手順をそのまま使ってもよいですか。

    過去の手順は参考になりますが、そのまま使用できるとは限りません。Drupal本体や利用しているモジュールのバージョンによって、処理対象となるファイルや必要な設定が変わることがあります。実施前に今回の更新内容を確認し、検証環境で手順を再確認することを推奨します。

    LYZONが提供するWebサービス

    Webに関するお悩みは、まずLYZONへ

    構築・運用・AIまで、Webに関わる課題をワンストップで対応。まず何ができるかをご覧ください。