EC-CUBE4でログインパスワードを忘れた時の対処方法
EC-CUBE4でログインパスワードを忘れた場合は、phpMyAdminのdtb_memberテーブルでユーザー名と暗号化されたパスワードを調べます。
次にEC-CUBEのパスワードモードを「HMAC」から「PLAIN」に変更し、暗号化されたパスワードでログインできる様にします。
基本的にはDB上の暗号化されたパスワードを調べて一旦ログインし、新しいパスワードに変更する事になります。
EC-CUBE4でログインパスワードを忘れた場合
EC-CUBEで管理画面にログインする際は、ユーザー名とパスワードが必要ですよね。
このログインパスワードを失念すると、管理画面に入る事ができなくなります。
たまに焦ったクライアントから、この様なトラブルを受けます。
本記事ではログインパスワードを忘れた場合の対処方法をご紹介します。
※今回はEC-CUBE4を元に操作紹介しております。
基本的にはDB上の暗号化されたパスワードを調べて一旦ログインし、改めて新しいパスワードに変更する事になります。
データベースにアクセスする
一つずつ落ち着いて進めていきましょう。
まずは、EC-CUBEが使っているデータベース(MySQL)のテーブルデータを確認する必要があります。
契約レンタルサーバーのコントロールパネルに入りましょう。
ここではレンタルサーバーとして「エックスサーバー」を例に紹介しています。
データベース項目「phpMyAdmin」
管理画面にログインしたら、データベース項目にあるphpMyAdminを探します。
エックスサーバーではデータベースを扱うソフト「phpMyAdmin」が既にインストールされています。
他レンタルサーバーでもphpMyAdminは大体準備されていますが、自分でインストールが必要な場合もあります。
レンタルサーバーの仕様を確認してみて下さい。
phpMyAdminをクリックしてログイン画面を出します。
phpMyAdminへのログイン
phpMyAdminにログインする際は、以下の情報が必要です。
・ホスト名
・DBユーザー名
・DBパスワード
ホスト名は既に選択されている場合があり、その際は省略できます。
DBユーザー名やDBパスワードがわからない場合は、EC-CUBE内にDB情報が記述されているファイルがあります。
以下でファイルの場所を紹介しますので、前もって探しておきましょう。
EC-CUBE4構成におけるDB情報
EC-CUBE4では、DB情報が入ったファイルは以下の位置にあります。
インストールディレクトリ/.envファイル
インストールされている区画のTOPにある.envファイルがそれです。
.envファイル
このファイルのDATABASE_URLの欄に、DB情報の記載があります。
DBホスト・DBユーザー名・DBパスワードをコピペして、保存しておきましょう。
DATABASE_URL=SQL種類://ユーザー名:パスワード@ホスト名/データベース名
となっています。
EC-CUBE3の場合
EC-CUBE3の場合は、DB情報が書いてあるファイル位置が違います。
EC-CUBE3では以下のファイルに記述があります。
インストールディレクトリ/app/config/EC-CUBE/database.yml
database.ymlファイル
database.ymlには、以下の様な形で情報が記述されています。
DB情報がわかれば、phpMyAdminへログインする事ができますね。
dtb_memberテーブルを確認する
phpMyAdminでログインし、左メニュー欄にあるEC-CUBEのデータベース名を選択しましょう。
EC-CUBEが使っている、dtb_で始まるテーブル一覧が表示されます。
この中で「dtb_member」をクリックして、中のデータを確認してみましょう。
ユーザー名とパスワードがそれぞれ格納されています。
同じ様な情報が複数行あれば、その数だけログインアカウントの種類があるという事ですね。
パスワードは暗号化されている
ユーザー名はlogin_idの欄に表示されています。これでユーザー名がわかりましたね。
それに対しパスワードは暗号化された状態なので、英数字の羅列になっていますね。
暗号化された状態ではログインに使えませんし、この情報から元のパスワードを知る事はほぼ不可能になっています。
暗号化されたままで使える様に
ですのでこの暗号化されたパスワードを、ログインに使える様にします。
この暗号化パスワードでログインできれば、管理画面から新しいパスワードに変更する事ができますよね。
パスワードは変わってしまう事になりますが、これは致し方ありません。
情報のコピー
ではテーブルに格納されているログイン情報をコピー保存していきます。
ユーザー名はそのままドラッグコピーでOKですが、暗号化パスワードの方は最後まで表示されていません。
暗号化パスワードを完全に表示させるため、該当する段左端にある「編集」ボタンをクリックします。
該当レコードのフィールド編集画面になりますので、暗号化パスワード欄をコピーします。
コピーしたら他は触らず、前の画面に戻りましょう。
これでphpMyAdminの操作は終了です。
パスワード入力モードの変更
次にEC-CUBEのシステム側を操作します。
EC-CUBEのパスワード入力には2つのモードがあります。
一つは通常のパスワード入力、もう一つは暗号化されたパスワード情報で入力できるモードです。
つまりEC-CUBEの設定を「暗号化パスワードのモード」にすれば、暗号化された状態のままでログインできる訳です。
メンテナンスモードにする
まずは一般のユーザーの邪魔にならない様、一時的にメンテナンスモードにします。
SSHやFTPなどを利用してサーバーに接続しましょう。
EC-CUBEのルートディレクトリに「.maintenance」ファイルを設置します。
これによりメンテナンスモードが有効になり、一般ユーザーのアクセスを遮断する事ができます。
パスワードを新しくる事ができたら、すぐにファイルを削除してメンテナンスモードを解除して下さいね。
HMACからPLAINへ
次に以下のディレクトリ位置にあるeccube.yamlファイルをダウンロードしてきます。
…/app/config/EC-CUBE/packages/eccube.yaml
…はインストールディレクトリ
eccube.yamlファイル
この内で「eccube_auth_type」を探し、その値を「HMAC」から「PLAIN」に変更しましょう。
この「PLAIN」が、暗号化パスワードで入力できるモードになります。
eccube_auth_type: PLAIN
書き換えたファイルを、元のファイル位置にアップして上書きしましょう。
これにより、暗号化されたパスワードのままでログイン情報として利用できるようになります。
※この設定をした場合、逆に通常のパスワード情報ではEC-CUBEにログインする事ができなくなりますので、注意して下さい。
暗号化パスワードによるログイン
それでは先程dtb_memberテーブルでコピーした、ユーザー名と暗号化パスワードでログインします。
暗号化されたパスワードで、管理画面に正常にログインできるはずです。
新しいパスワードへ変更
ログインに成功したら、ログインしているうちにパスワード情報を新しいものに変更しましょう。
管理画面の「メンバー管理」ページで、新しいパスワードに変更する事ができます。
新しいパスワードはきちんとメモしておきましょう。
入力モードの設定を戻す
最後に変更したパスワードが使える様、先程のPLAIN設定を元に戻す必要があります。
FTPでサーバー接続し、eccube.yamlの「eccube_auth_type」の値を「PLAIN」から「HMAC」に戻しましょう。
「HMAC」が、通常文字列のパスワードモードになります。
これで、暗号化されたパスワードではログインができないモードに戻りました。
一度ログアウトして、改めてEC-CUBEの管理画面にログインしてみましょう。
新しいパスワードで正常にログインできるようになるはずです。