アイキャッチ画像: デスクの上でパソコンを使用している

今回のブログは本番稼働しているサイトをローカルの開発環境に持ち帰ってきた時に設定すべき点をおさらいしてみました。 Drush が使用できて本番環境からファイルやデータベースをダウンロードしてローカル環境でサイトが確認できる状態になっていることを前提とします。 Drush のインストールについては手前味噌ですが以下のリンクをご覧ください。

Drupalの開発効率を劇的に向上させるDrushのインストール方法8通り

サイトのメールアドレスを変更

一般的にサイトから配信されるメールアドレスは管理者のメールアドレスに設定されている事が多いと思います。システムが間違ってメールを外部にメールを送信した場合に、そのメールの差出人は本番環境の管理者のアドレスになっているので、この時に Mailer Daemon から Unknown User などのメールが返信されると、管理者へつじつまの合わないメールが届いてしまうことになります。

この対策として Drush を使って以下のように自分のメールアドレスなどに変更します。管理ページ admin/config/system/site-information からも変更することができます。

$ drush vset site_mail my-mail@example.com

ユーザーのメールアドレスなどのデータをサニタイズする

サニタイズと言う言葉をご存知でしょうか。辞書で引いてみると消毒と言う意味ですが、IT用語で言うと無害化すると言う意味を持ちます。

システムにメールを送る仕組みがある場合、何らかのタイミングでユーザーへメールを誤送信をしてしまうリスクがありますが、メールアドレスをサニタイズしておけばこの様な事故を未然に防ぐことができます。

Drush にはデータベースをインポートする際にユーザーデータをサニタイズしてくれるオプションが用意されています。使用方法の一例は以下の通りです。

$ drush sql-sync @prod @self --sanitize

また、既にデータベースをインポートしている状態でも Drush には後からサニタイズできるコマンドが用意されています。

$ drush sql-sanitize
Do you really want to sanitize the current database? (y/n): y

Drush のサニタイズはメールアドレスの変更と同時にユーザーのパスワードを password に設定してくれるので、開発時のユーザーの切り換えが容易になります。

cron の自動実行をやめる

Drupal 7 以降では一定時間 Cron が実行されていないと自動的に Cron を実行する機能が備わっています。しかし cron 実行時にシステムが何らかのメールを配信する機能があると、ローカル環境から不要なメールを送ってしまうことになるのでその対策を行います。

Drush で以下の様に Cron の実行間隔を 0 にセットして無効にします。管理ページ admin/config/system/cron からも設定を変更できます。

$ drush vset cron_safe_threshold 0

PHP のエラーメッセージを表示する

本番運用のサイトでは通常セキュリティリスクを下げるため、ユーザーへ表示するエラーメッセージを消しますが、開発環境ではその必要は無いので全てのエラーメッセージを表示します。

$ drush vset error_level 2 -y

アップデートモジュールの無効化

セキュリティアップデートの通知を受け取るため、殆どの Drupal サイトは Update モジュールを有効にしているかと思います。Update モジュールは管理画面へのアクセスを重くする一因にもなるので、ローカル環境では無効にします。

$ drush dis update -y

その他にも Devel モジュールなどの開発専用のモジュールを入れることで開発効率をアップすることができます。それらのモジュールの紹介をしたいのですが、今回はサイトの設定を重視して解説しましたのでまたの機会にさせてください。