このCopyContentDetectorはCakePHPで実装しています。サービスを運用していくなかで、どうしてもメンテナンスが必要な時があります。そのメンテナンスモードを簡単に実装できるプラグインを紹介します。
■Maintenance plugin
メンテナンスモードを簡単に実装できるプラグインです。導入後はbootstrap.phpにフラグを設定するだけでメンテナンスモードになります。設定方法を紹介します。
■導入までの手順
1.ダウンロードしてくる
gitHub上にソースコードが公開されています。gitHubのプロジェクトから、対象のプラグインをzipでダウンロードしてきます。
2.app/Pluginの下にmaintenaceというディレクトリ名で配置
ダウンロードしてきたzipを展開したあと、app/Pluginディレクトリにmaintenanceというディレクトリ名に変更して配置します。
3.bootstrap.phpに読み込み設定を記述
bootstrap.phpに以下の記述をして、読み込み設定を行います。
// メンテナンスモードプラグインの導入
CakePlugin::load('Maintenance');
Configure::write('Maintenance.enable', false); // trueにするとメンテナンスモードになる
4.AppController.phpにメンテナンスモードの設定を記述
AppControllerに設定を記述します。コンポーネントなので、$componentsに記述をします。今回の設定は、リダイレクト先とメンテナンスモード中でもアクセス可能なIPの一覧です。他にもいろいろ設定できるようです。
// コンポーネント読み込み
public $components = [
'Maintenance.Maintenance' => [
'maintenanceUrl' => [
'controller' => 'pages', // メンテナンス中にリダイレクトする
'action' => 'maintenance',
],
'allowedIp' => [
'10.0.2.2', // メンテナンス中も接続可能なIPアドレス
'127.0.0.1',
],
],
];
5.メンテナンスページを作成
今回はPagesコントローラーに作成しました。他のコントローラーでも問題ありません。
AppController.php
<?php
App::uses('AppController', 'Controller');
class PagesController extends AppController {
public function maintenance() {
}
}
View/Pages/maintenance.ctp
現在システムメンテナンス中です。今しばらくお待ち下さい。
これで、設定が完了です。bootstrap.phpのMaintenece.enableを以下のようにtrueにすると、すべてのアクセスがPages/maintenanceにリダイレクトされるようになります。
Configure::write('Maintenance.enable', true);
かなり簡単にメンテナンス画面が実装できます。また、htaccessで設定した時のように抜け漏れも発生しにくいかと思います。参考にしてみてください。では。