
EC-CUBE4をサブドメインにインストールした際、ログインできなくなる場合
EC-CUBE4をサブドメイン内で運営する際に、注意が必要です。
EU-CUBE4の管理画面までは表示できますが、ログインする事ができない場合があります。
その場合は.envファイルのECCUBE_COOKIE_PATHの値を/にする事で解決します。
EC-CUBE4をサブドメインにインストールした際の注意
本記事は小ネタです。
EU-CUBE4カートをサブドメインにインストールした場合に、管理画面にログインできなくなる場合があります。
その場合の対処方法について解説します。
インストールする区画
サブドメインを構築する方法については以下の記事をご覧ください。
サーバーのコントロールパネルでサブドメインを設定する際、データを入れる区画を設定します。
大体は、ドメイン配下のサブディレクトリのエリアを用意する事になりますね。
shop区画に入れる場合
データを入れる場所…xxxx.com/shop/
サブドメインURL…shop.xxxx.com
つまりEC-CUBE4は、/shopの中にインストールすればOKです。
レンタルサーバーの自動インストール機能を使う場合も同様です。
そうする事で、https://shop.xxxx.com/ でEC-CUBE4のTOPページが表示されるようになります。
カートTOPページ
EC-CUBE4のTOPページが表示された状態
ここまでは問題なく表示されていると思います。
ログインする事ができない
それでは次にインストールしたEC-CUBE4の管理画面を表示させます。
管理画面URL
https://shop.xxxx.com/がTOPページですから、ログインURLは以下の様になりますね。
https://shop.xxxx.com/administrator/login
ユーザー名かパスワードが違うアナウンス
ところがインストール時に決定したユーザー名とパスワードを入れてログインしようとしても、弾かれる事があります。
情報は間違っていないのにログインできない訳です。
これはパスワードの入力方式(HMACやPLAIN)の問題ではなく、サブドメインのURLが影響しています。
サブドメインの認識とEC-CUBE4の認識
EC-CUBE4にとって、本当はhttps://xxxx.com/shop/ が、EC-CUBE4構成のTOPであると認識しています。
ですがブラウザでは、https://shop.xxxx.com/ がTOPの表示になっていますね。
この差がログインが弾かれる原因になっている訳です。
.envファイルを修正する
それでは正常にログインできる様にする方法を紹介します。
.envファイルのダウンロード
サーバー上のEC-CUBE4構成のTOPディレクトリにある「.env」ファイルをFTPソフトなどでダウンロードしてきましょう。
.envファイルはメモ帳などのアプリで開けます。
ほとんどがコメントアウトされていますが、下にスクロールするといくつか設定が書きこまれているのがわかります。
ECCUBE_COOKIE_PATHの部分
番号で行くと59行目付近に以下の記述があります。
ECCUBE_COOKIE_PATH=/shop(インストールディレクトリ名)
おそらく/の後にインストールした時の「ディレクトリ名」が入っているのではないでしょうか。
今回はshopディレクトリにインストールしたので、最初から「/shop」と名称が入っているのです。
この部分を修正する事で解決します。
ディレクトリ名を消す
やり方は簡単です。このディレクトリの名称部分を消すだけです(「/」は残します)。
変更前
ECCUBE_COOKIE_PATH=/xxxxxx
変更後
ECCUBE_COOKIE_PATH=/
この状態で保存して、.envファイルをアップロードして上書きしましょう。
[an error occurred while processing this directive]再度ログインしてみる
それでは改めて管理画面URLを開いてみましょう。
既に開いていた場合は、Shift+F5を押して強制更新をして下さい。
次は手元のログイン情報できちんとログインができるはずです。
サブドメインURLとインストールディレクトリの関係性
確かにEC-CUBE4がインストールされているディレクトリは、/shopの中です。
ですがサブドメインURL(ブラウザ上)では、ディレクトリ内に収まっていないという形になっています。
ですので.envファイルのECCUBE_COOKIE_PATHを編集する事で解決するという訳です。