CakePHP4、CakePHP5の「warning: DebugKit is disabling...」の対処方法
2025/01/31
CakePHPのDebugKitに関するワーニングを解消する方法解説
CakePHPで開発を行っていると、ローカル環境で「ログファイル(/logs/error.log)」に下記のようなワーニングが出力されていることがあります。
2024-01-01 00:00:00 warning: DebugKit is disabling itself as your host
test.example.com
is not in the known safe list of top-level-domains (localhost, invalid, test, example, local, internal). If you would like to force DebugKit on use the DebugKit.forceEnable
Configure option.
メッセージの内容は、「DebugKitを使用していいリストにないので無効になってる」というものです。
これの解消方法を解説します。
この記事のポイントとしては、Gitなどのソース管理ツールを利用していても本番環境に影響がない(Git管理下にない)「/config/app_local.php」ファイルに設定する内容となっています。
そのため、CakePHP4系、CakePHP5系の記事としていますが、「/config/bootstrap.php」に設定する方法は CakePHP3でも有効ですので、お試しください。
/config/bootstrap.php に許可するトップレベルドメインを設定する
おそらく、「DebugKit」のワーニングに対するオーソドックスな対処方法は、「/config/bootstrap.php」に許可するトップレベルドメインを設定する方法です。
対象ファイル:/config/bootstrap.php
CakePHP5の場合は 116行目辺りに「if (Configure::read('debug')) {
」の記述がありますので、その if文の中に下記を追記します。
1 |
Configure::write('DebugKit.safeTld', ['com']); // .comドメインを登録する例 |
上記の例は「example.com」のように「.com」ドメインを登録するものですので、使用しているドメインに合わせて設定を変更してください。
/config/bootstrap.php に強制的に許可する設定をする・非推奨
前項のトップレベルドメインを設定する方法が推奨されていますが、強制的に許可する設定も用意されています。
公式サイトには、前項の方が安全なのでそちらがオススメ、と書いてありますが。
対象ファイル:/config/bootstrap.php
前項と同じく、CakePHP5の場合は 116行目辺りに「if (Configure::read('debug')) {
」の記述がありますので、その if文の中に下記を追記します。
1 |
Configure::write('DebugKit.forceEnable', true); |
/config/app_local.php に強制的に許可する設定をする
前項の設定は「bootstrap.php」に記述しました。
Gitなどのソース管理ツールを使用する場合、「bootstrap.php」ファイルはその管理下にあるファイルとなります。
そのため、本番環境にリリースする場合は「bootstrap.php」に設定した記述を変更する必要もあるかと思います。
そのため、Gitなどの管理下にない「app_local.php」に記述することで、影響範囲を開発で使用するローカル環境に留めることができる、という対応方法の紹介です。
対象ファイル:/config/app_local.php
1 2 3 |
'DebugKit' => [ 'forceEnable' => true, ], |
上記の処理を「app_local.php」の最後の方などに追加します。
DebugKitの記事に関するおまけ
「bootstrap.php」に記述した下記の設定を「app_local.php」に記述する方法もあるようですが、いろいろと試してみましたが、私の環境では CakePHP4系、CakePHP5系のいずれも想定の動作はしませんでした。残念...
1 |
Configure::write('DebugKit.safeTld', ['com']); // .comドメインを登録する例 |
また、この記事を書くにあたって参考にしたサイトは下記になります。
CakePHP4 オフィシャルサイト Debug Kit 設定
https://book.cakephp.org/debugkit/4/ja/index.html#id2
CakePHP5 オフィシャルサイト Debug Kit 設定
https://book.cakephp.org/debugkit/5/ja/index.html#id2
CakePHP4の関連記事
CakePHP4系でJSONレスポンスの処理ではwithStringBodyを使う。3との違い解説CakePHP4、CakePHP5の「warning: DebugKit is disabling...」の対処方法
MySQL+CakePHPのdate型、datetime型項目は「2999-12-31」までしか扱えない
CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4から外部のデータベースにアクセスする方法解説
CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない
CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説
その他の「CakePHP4」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
CakePHP 2.3 ログイン、操作履歴、アクセスログ出力
CakePHPでログインや操作履歴などのアクセスログ出力処理を作成します。
-
CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説
CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。
-
CakePHP3のOGPはHTMLヘルパーの$this->Html->meta()を使って設定
CakePHP3でOGPを設定する方法を解説。metaタグを編集するHTMLヘルパーを利用してOGPのタグを編集する。また、エレメントとして分割することでメンテナンス性も向上させる。
-
CakePHP3でデータを保存する save()で発生するエラーを確認する方法を解説
CakePHP3でデータ保存処理のログを取得する方法。save()では true、falseの戻り値しか取得できないが、saveOrFail()と try…catch文を使いエラーログ、エンティティを取得し、不具合の解析を行う。
-
CakePHP3でファイルのアップロード処理を自作・解説付き・その1
CakePHP3でファイルをアップロードする処理を、php.netにある「エラーを起こさない」と説明がある処理を参考に作成。サンプルソースとその解説付きで、コピペでも動くし、カスタマイズも簡単!
-
CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
CakePHP4、CakePHP5でクリエビルダーを利用してテーブルからレコードを取得する際、asを使用してカラムの別名で値を取得したい場合の対応方法を解説。また、別名にはハイフンやアスタリスクなど使用できない文字がある点も解説。
-
CakePHP3のForm Helperの使い方のまとめ
CakePHP3になりフォームヘルパーの使い方も大きく変わりましたので、使い方をまとめました。基本的な使い方からプラスアルファの便利な使い方まで紹介。
-
CakePHP3でkeywords、DescriptionをHTMLヘルパーを使って設定する
CakePHP3のkeywordsとdescriptionを設定する方法の解説。CakePHP3にはmetaタグを編集するHTMLヘルパーが用意されているためそれを利用すればOK!ポイントはブロック化を有効にすること。
-
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でajaxを利用する処理の実装方法を解説。プルダウンを変更するとデータベースの値を取得し検索結果の内容を変更するというような処理を想定。CakePHP3.6以降の CSRF対策対応済。
-
CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法
CakePHPのバージョンの調べ方2点を紹介。CakePHP3~CakePHP5は共通だが CakePHP2はフォルダ構成が異なるためコマンドのパスもオプションも異なる。