ラベル ECCUBE の投稿を表示しています。 すべての投稿を表示
ラベル ECCUBE の投稿を表示しています。 すべての投稿を表示

2012年4月23日月曜日

ECCUBE 2.11.5 (MySQL) で管理ページにログインできない場合


ECCUBE を開発環境から本番環境にアップした際に、管理ページにログインできなくなってしまった。
ID、PWD は間違っていないのにログインができず非常に困った。

原因は、DB を dump した際の dtb_member テーブルのパスワードと Salt の値が開発環境と異なるためらしい。
以下はその場しのぎ的な処理。
dtb_member の login_id, password, salt を更新する SQL を生成する関数。

function sfGetAuthInfo ($loginid, $password) {
$sql = "";
$result = "";
if ( AUTH_TYPE == 'PLAIN') {
$result = $password;
}
else {
$_tmp = sprintf("%s:%s", $password, AUTH_MAGIC);
$result = hash_hmac(PASSWORD_HASH_ALGOS, $_tmp, AUTH_MAGIC);
}
$sql = sprintf("UPDATE dtb_member SET login_id='%s', password='%s', salt='%s' WHERE id=2", $loginid, $result, AUTH_MAGIC);
return $sql;
}
実行は以下のように実行する。

$loginid = "ログイン名";
$password = "パスワード";
$sql = sfGetAuthInfo ( $loginid, $password )
echo $sql;

上記を ECCUBE 内のどこかのファイル( html/index.php など)で実行し、結果に出力される SQL をMySQL上で実行して、本番環境用のパスワードに書き換える。




2012年3月29日木曜日

ECCUBE の文字化け

[1] ECCUBEインストール後に 管理ページで「基本情報管理」->「SHOPマスター」ページで文字化けしていた。(課税規則、都道府県など)
    => 原因: MySQL の データベースの文字コードが Latin1 になっていた…。
    => 対応: MySQL の DB を UTF8へ変更して CREATE DATABASE する。

[2] ECCUBE を再インストールしても文字化けが直らない
    => phpMyAdmin や コンソールでは文字化けしていない。
    => ECCube の data/cache 内にマスタデータのキャッシュが残っていたので、一旦ファイルを削除する。
    => 文字化けが直った。

■ECCUBE サーバー環境

  EC-CUBEバージョン:2.11.5
  PHP情報:5.3.10
  DB情報:MySQL 5.5.20
  OS情報:Linux localhost.localdomain 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:52 EST 2012 i686 Apache/2.2.3 (CentOS)