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でサイトを運営しよう!って思わせるものがありますね。