この記事では、カスタマイズ時に便利なデバッグモードの設定または解除方法について紹介しています。
本番モードのエラー画面

デバッグモードのエラー画面

デバッグモード中は、変数の中身を確認できるdump()
関数も使えるようになります。
カスタマイズに必須ともいえる関数ですので、合わせて使いこなせるようにしておきましょう。

デバッグモードの設定方法
デバッグモードは、EC-CUBEのルートディレクトリ直下にある「.env」ファイルを少し修正するだけで簡単に設定できます。

「.env」ファイルの6~9行目あたりを以下の通り修正します。
.envファイル 修正前
# This file is a "template" of which env vars needs to be defined in your configuration or in an .env file
# Set variables here that may be different on each deployment target of the app, e.g. development, staging, production.
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
###> symfony/framework-bundle ###
# For production servers, use: "APP_ENV=prod" and "APP_DEBUG=0"
# For local development, use: "APP_ENV=dev" and "APP_DEBUG=1"
APP_ENV=prod
APP_DEBUG=0
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=^localhost$,^example\.com$
###< symfony/framework-bundle ###
.envファイル 修正後
# This file is a "template" of which env vars needs to be defined in your configuration or in an .env file
# Set variables here that may be different on each deployment target of the app, e.g. development, staging, production.
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
###> symfony/framework-bundle ###
# For production servers, use: "APP_ENV=prod" and "APP_DEBUG=0"
# For local development, use: "APP_ENV=dev" and "APP_DEBUG=1"
#APP_ENV=prod
#APP_DEBUG=0
APP_ENV=env
APP_DEBUG=1
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=^localhost$,^example\.com$
###< symfony/framework-bundle ###
APP_ENV
- 本番環境 → APP_ENV = prod
- 開発環境 → APP_ENV = dev
APP_DEBUG
- エラー時に最小限の表示を行う → APP_DEBUG = 0
- エラー時に詳細表示を行う → APP_DEBUG = 1
EC-CUBE 4.2以降は、ファイル内に本番環境(For production servers)と開発環境(For local development)の設定に関するコメントが記載されるようになりました。
修正が終わったファイルをサーバーにアップし、デバッグモードの設定は終了です。
念のため管理画面からキャッシュを削除し、エラーページが変わっているか確認しておきましょう。


本番環境ではデバッグモードの解除を忘れずに
デバッグモードのままでも通常表示はきちんと行われるので、本番環境に戻すのを意外と忘れがち。
ただデバッグモードでは、ページがインデックス登録されないなどの問題が発生してしまいます。
本番環境に戻すのを忘れないようにしましょう。
デバッグモードを解除したときにエラーが発生する場合
デバッグモードでカスタマイズを行ったあと、本番環境に戻すと稀にエラー画面が表示される場合がありました。(デバッグモード中では特にエラーは出ていないにも関わらず。)
そんなときは、キャッシュを削除すると解消される場合があります。
キャッシュは「EC-CUBE管理画面」→「コンテンツ管理」→「キャッシュ管理」で削除できます。
が、エラーの発生状況によってはそもそも管理画面にすら入れないパターンもあります。
その場合は、ちょっと面倒ですがサーバーにSSH接続をして、ルートディレクトリに移動した状態で以下コマンドを打ち込むと、キャッシュを削除できます。
bin/console cache:clear --no-warmup
SSH接続の方法については、XServer限定ですが以下記事で解説しています。
「bin/console: 許可がありません」と表示されたら・・・
以下コマンドを順に実行し、権限を付与してから再度実行します。
cd bin
chmod 0704 console
cd ..
PHPのバージョン要件を満たしておらず、エラーメッセージが表示されたら・・・
適切なPHPバージョンを指定してコマンドを実行します。
例)PHPのバージョン(php8.3)を指定して、EC-CUBEのキャッシュをクリアしたい場合
/usr/bin/php8.3 bin/console cache:clear --no-warmup

カスタマイズ時によくわからないエラーが発生した場合は、とりあえずキャッシュを削除する癖をつけておくと良さそうです。
