みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

移転を見据えたDrupalのバックアップ・リストアの方法

Drupalでサイトを運営していると、サイトをバックアップしたり、復元したり、時には移転することもあると思います。移転するときにDrupalが崩壊してしまうと泣いても泣ききれないので、予めしっかりとDrupalの扱い方を熟知する必要があります。みーの備忘録も兼ねてここにまとめておきます。

なお、ここに記載した方法は、みーが全て実際に行い、うまくいくことを確認していますが、このページを利用することによって発生したいかなる損害にたいしてみーは責任を取りませんのであしからず。ちなみにみーが使用したバージョンは Drupal core 7.2 を含んだSpark ディストリビューションです。

Drupalのディレクトリ

Drupalには以下のディレクトリがあり、

includes/
 misc/
 modules/
 profiles/
 scripts/
 sites/
 themes/

以下のファイルがあります。

.htaccess
 authorize.php
 cron.php
 index.php
 robots.txt
 update.php
 web.config
 xmlrpc.php

それと、MySQLデータベースにデータが記録されています。

これらを、バックアップの観点から、下記の3つに分類します。

  • sites/
  • sites/ 以外のファイルとディレクトリ
  • データベース

Drupalのバックアップ方法

みーはBackup and Migrate を使うのが好きですので、これを使用します。このモジュールをインストールすれば、データベースのバックアップがとれるようになります。メニューからBackup and Migrateをクリックして、データベースをバックアップします。日々のバックアップはこれだけでおっけーです。適宜スケジュールを設定しておけばよいでしょう。注意するべきは、初期設定の通り、データベースのテーブル全てをバックアップするようにしてください。中途半端に設定すると、データの不整合が起こるかもしれません。

sites/ 以外のファイルは基本的にバックアップ不要です。なぜかというと、DrupalをDrupal.orgからダウンロードして展開すれば入手できるファイル群だからです。念の為にインストールに使用したzipを持っておくのもよいかもしれません。

sites/ は、ファイルをアップロードしたりモジュールをインストールしたらバックアップが必要なディレクトリです。このディレクトリには、みーたちがDrupalに設定をすることによって生成されるファイルが入っているからです。画像を1枚一枚アップロードする毎にバックアップするのは面倒なので、週に1回ぐらい、FTPクライアントからsites/ 以下のファイルをダウンロードしてzipしておけばいいでしょう。

Drupalのリストア方法

リストアは簡単です。用意するのは、以前にとっておいたBackup and Migrateのバックアップファイルと、その時点でのsites/ のファイル群です。データベースはモジュールのRestore画面から、sites/ のアップロードはFTPクライアントから行います。これで完了です。

もしもsites/ 以外のファイルが壊れている場合は、一旦全てのファイルを消去して、Drupalのインストールを新規に行い、sites/ を上書きした上で、Drupalの初期設定を行い、Backup and Migrateモジュールのインストールをして、データベースのリストアをすれば完了です。

念の為に、作業中はサイトをオフラインにした方がよいかもしれません。

Drupalサイトの移転方法

上記のバックアップをしていれば、いつでもDrupalが対応している別のサーバーに引っ越しをすることができます。リストアのsites/ 以下の修復と全く同じことを行うだけです。新規のサーバーにDrupalをインストールし、sites/ を上書きした上で、Drupalの初期設定を行い、Backup and Migrateモジュールのインストールをして、データベースのリストアをするということです。

ただし、MySQLデータベースのホスト名が変更になる場合はもう1ステップ必要です。ローカルにあるsites/ バックアップから、sites/default/settings.phpというファイルを削除してからアップロードしてください。このファイルにはデータベースのログイン情報などが記載されているので、これを削除しないと以前のサーバーの設定が残ったままになってエラーが表示されてしまいます。

以上です。みーはDrupalの専門家ではありませんが、みーの大いなる直感で操作して上記のようにすっきりと移転ができるので、Drupalでサイトを運営しよう!って思わせるものがありますね。