EC-CUBE4 .env

EC-CUBE4の管理画面URLは/admin固定ではありません。インストール時に変更できるようになっていて、変更が推奨されてもいます。そのため「前任者が設定したURLが分からない」「サーバーを移行したら入れなくなった」ということが実際に起こります。確認する場所は.envの一行です。あわせて、URLを変更するときに.envを書き換えるだけでは反映されない点も、実際の応答を取って確かめました。

初期値は/adminだが、変更されている可能性がある

EC-CUBE4をそのままインストールすると、管理画面は https://example.com/admin になります。ただしこれは初期値にすぎません。インストール時の入力画面で任意の文字列を指定でき、指定すればそのURLが管理画面になります。

さらに、初期値のまま運用していると管理画面側から変更を促されます。EC-CUBEは/adminのまま使うことをセキュリティ上の懸念として扱っていて、推測されにくい値へ変えるよう案内します。

つまり実運用中のサイトほど/adminではない可能性が高いということです。他社が構築したサイトを引き継いだ場合や、久しぶりに触るサイトでは、まず設定を確認するのが確実です。

.envのECCUBE_ADMIN_ROUTEを確認する

管理画面URLは、EC-CUBEをインストールしたディレクトリ直下の .env に書かれています。FTPで接続して、テキストエディタで開いてください。

.env はドットで始まるファイルなので、FTPソフトの設定によっては一覧に表示されません。見当たらない場合は「隠しファイルを表示する」設定を有効にしてください。

ファイルの中に、こういう行があります。

ECCUBE_ADMIN_ROUTE=admin

このadminの部分が管理画面のURLです。ECCUBE_ADMIN_ROUTE=kanri98となっていれば、管理画面は https://example.com/kanri98 です。

.env の ECCUBE_ADMIN_ROUTE

SSHが使えるならgrepで一行だけ取り出せる

サーバーにSSHで入れる場合は、ファイルを開かずに該当行だけ確認できます。

grep ECCUBE_ADMIN_ROUTE .env

出力はこうなります。

ECCUBE_ADMIN_ROUTE=kanri-demo98

.envにはデータベースの接続情報やメール送信の設定も含まれるため、画面共有中や作業ログを残す場面では、この方法で必要な一行だけ表示するほうが安全です。

Dockerで動かしている場合もホスト側の.envを見る

Docker環境でも参照先は同じで、リポジトリ直下の.envです。docker-compose.ymlと同じ階層にあります。

コンテナの中に入って確認することもできます。

docker compose exec ec-cube grep ECCUBE_ADMIN_ROUTE .env

サービス名は環境によって異なるので、docker compose ps で確認してから実行してください。

管理画面URLを変更するにはキャッシュクリアが必要

ここが実際に詰まるところです。.envを書き換えただけでは、管理画面のURLは変わりません。

検証環境で ECCUBE_ADMIN_ROUTEadmin から kanri-demo98 に書き換え、その直後にHTTPステータスを取った結果がこちらです。

$ curl -s -o /dev/null -w "%{http_code}\n" https://example.com/admin
200
$ curl -s -o /dev/null -w "%{http_code}\n" https://example.com/kanri-demo98
404

古いURLが生きたままで、新しいURLは404。.envの中身は書き換わっているのに、挙動はまったく変わっていません。EC-CUBE4はSymfonyベースで、ルーティング情報がキャッシュされているためです。

キャッシュをクリアします。

php bin/console cache:clear --no-warmup

実行後、同じURLを叩き直すと反転します。

$ curl -s -o /dev/null -w "%{http_code}\n" https://example.com/admin
404
$ curl -s -o /dev/null -w "%{http_code}\n" https://example.com/kanri-demo98
200

これで変更が反映されました。表にするとこうなります。

URL .env書き換え直後 cache:clear後
/admin(旧) 200 404
/kanri-demo98(新) 404 200

コマンドが使えない環境では、var/cache ディレクトリの中身を削除しても同じ結果になります。キャッシュクリアの手段はキャッシュをクリアする4つの方法にまとめています。

なお、変更後はブックマークが効かなくなります。複数人で運用しているサイトなら、変更前に関係者へ周知してください。

.envを開けないときに確認する順番

「FTPもSSHも分からない」という状態でも、辿れる場合があります。

  1. レンタルサーバーの管理画面にログインできるなら、ファイルマネージャー機能でサーバー上のファイルを直接閲覧できます。EC-CUBEを設置したディレクトリの.envを探してください
  2. サーバーの契約情報を確認します。契約時のメールにFTPのホスト名・ユーザー名・初期パスワードが記載されていることがあります
  3. 制作会社との過去のやり取りを探します。納品時に接続情報一式が渡されているケースが多く、メールの添付ファイルに残っていることがあります

どれも辿れない場合、問題は管理画面のURLではありません。サーバーへのアクセス手段そのものが引き継がれていない状態です。この状態はURLが分からないこと以上に深刻で、脆弱性が見つかっても更新できず、障害が起きても原因を追えません。ドメインとサーバーの契約先を特定するところから整理を始めてください。

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEに関するお問い合わせ


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ