EC-CUBEの立ち上げメモ

概要

EC-CUBEベースの開発環境を立ち上げる際のメモ
これは自分用のメモですので、別の環境でこのメモの通りしてもうまくいきっこありませんので、もしご覧になるようでしたらあくまで参考程度にしてください。
このページの通りにして動かなくなったとか言われても聞く耳持てませんのであしからず。

作成日:2008年10月29日
EC-CUBE Ver:2.3.0
PHP 5.2.6
MySQL 5.0.51b
Eclipse 3.4.1

インストール前の作業

データベースの文字化け対策

環境によって起こったり起こらなかったりだと思うが、MySQLを使っていて、データの入出力は大丈夫だけどPHPAdminなどでテーブルを覗くとデータが文字化けているという場合はこの対処が必要。

この対処を行う際の注意!!

初めてのインストールの際にこの対処を行ってからインストールするとfeital error出ちゃうんでインストールできないです。
どうもインストール時のデータベース接続設定のデフォルトがpostgresqlになっているためにエラーが起こるようですが、よく調べてないんでわからないから、とりあえずそういうもんだと思ってください。

で、一度MySQLでインストール実施してからだとDSNの設定がどっかに定数かなんかで書き込まれるためだと思うけどエラーでなくなりますんで、まずは一度インストールして、そのあとSC_Dbconnに下記の修正を行ってから再インストール(DB初期化)するようにしてください。

変更前

// 既に接続されていないか、新規接続要望の場合は接続する。
if(!isset($objDbConn->connection) || $new) {
if($dsn != "") {
$objDbConn = DB::connect($dsn, $options);
$this->dsn = $dsn;
} else {
if(defined('DEFAULT_DSN')) {
$objDbConn = DB::connect(DEFAULT_DSN, $options);
$this->dsn = DEFAULT_DSN;
} else {
return;
}
}
}

変更後

// 既に接続されていないか、新規接続要望の場合は接続する。
if(!isset($objDbConn->connection) || $new) {
if($dsn != "") {
$objDbConn = DB::connect($dsn, $options);
$this->dsn = $dsn;
$buf = $objDbConn->prepare('SET NAMES utf8');
$objDbConn->execute($buf);
} else {
if(defined('DEFAULT_DSN')) {
$objDbConn = DB::connect(DEFAULT_DSN, $options);
$this->dsn = DEFAULT_DSN;
$buf = $objDbConn->prepare('SET NAMES utf8');
$objDbConn->execute($buf);
} else {
return;
}
}
}

SQLインジェクション対策

2008/10/29にダウンロードした「eccube-2.3.0.zip」ではすでに修正済みのようです。
修正前のバージョンの場合は以下の通り修正してください。
EC-CUBE‐EC-CUBEダウンロード

-------------------------------------------------------------------
■脆弱性が該当するファイルについて
-------------------------------------------------------------------
data/class/SC_Query.php
が該当します。

-------------------------------------------------------------------
■修正方法について
-------------------------------------------------------------------
【ケース1】SC_Query.phpをカスタマイズしている場合
SC_Queryクラスのinsertメソッド内の下記箇所を削除します。
-----------------------------------------------
251?253行目(EC-CUBE RC1版の場合)
// 先頭に~があるとプレースホルダーしない。
} else if(ereg("^~", $val)) {
	$strval .= ereg_replace("^~", "", $val);
-----------------------------------------------

SC_Queryクラスのupdateメソッド内の下記箇所を削除します。
-----------------------------------------------
328?330行目(EC-CUBE RC1版の場合)
// 先頭に~があるとプレースホルダーしない。
} else if(ereg("^~", $val)) {
	$strval .= ereg_replace("^~", "", $val).",";
-----------------------------------------------

【ケース2】SC_Query.phpをカスタマイズしていない場合
上記「修正ファイルのダウンロード」より「SC_Query.zip」をダウンロードしてください。
解凍し、SC_Query.phpをそのまま上書きコピーしていただければ修正が反映されます。
-------------------------------------------------------------------

インストール時に作られる初期データについて

インストール時に作られる初期データでカテゴリとか商品(おなべとかアイスクリームとか)イラネーヨって場合は/html/install/sql/insert_data.sqlにinsert文が書かれていますので、必要のない箇所を消すなりコメントアウトするなりしてください。

EC-CUBEのインストール

EC-CUBEマニュアルサイト – EC-CUBE(2.x系)/1_インストール

初期設定

installフォルダの削除(リネーム)

画面の指示に従って/html/install ディレクトリを削除。
でも開発環境ではもしかしたらまた戻すこともあるかもとかいう理由でリネーム。
運用時に消し忘れないように注意する。

「基本情報管理」設定

上から順に設定していくが、その前に最新の郵便番号データなどダウンロードしておくと吉。
あと、もしかするとまた再インストールなんてことになるかもしれないんで[1] 、それに備えて各入力項目に対応するテーブルをダンプしておくことにする。

対応テーブルのメモ

  • SHOPマスタ:dtb_baseinfo
  • 特定商取引法:dtb_baseinfo
  • 配送設定:dtb_deliv
  • 支払い方法設定:dtb_payment
  • ポイント設定:dtb_baseinfo

最新の郵便番号データを登録

こちらで先生が詳しく書いてくださっているが、忘れないように自分でもメモ。

  1. まずはこちらから最新の郵便番号データをダウンロード。選ぶファイルは「全国一括」ね。
  2. ダウンロードしたデータを解凍
  3. 解凍してできたcsvファイルの文字コードをUTF-8に変更。
  4. /data/dowonloadsにcsvファイルを設置
  5. 「truncate mtb_zip;」でmtb_zipの中身を削除
  6. 管理画面->基本情報管理->郵便番号DB登録を実行

この件に関して余談なんですが、windows+xampp環境でこれ実行しても終わらないんですよね。。一回実行するとずーーーーっと、ずーーーーっと延々mtb_zipが増えたり減ったりする。何なんだろこれ。
今度一度中の処理覗いてみようと思います。[2]

パラメータの設定

管理画面->システム設定->パラメータ設定から各パラメータを設定する。
自分がチェックするパラメータは以下のとおり

  • DB_ERROR_MAIL_TO
  • AUTH_MAGIC
  • DELIV_FREE_AMOUNT
  • OPTION_RECOMMEND
  • OPTION_CLASS_REGIST
  • REVIEW_REGIST_MAX
  • CUSTOMER_CONFIRM_MAIL
  • MELMAGA_BATCH_MODE
  • RELEASE_YEAR
  • PARENT_CAT_MAX
  • POINT_RULE
  • ADMIN_MODE
  • FORGOT_MAIL
  • BIRTH_MONTH_POINT
  • IMAGE_SIZE
  • CSV_SIZE
  • FILE_SIZE
  • TEMPLATE_SIZE
  • LEVEL_MAX
  • NORMAL_PRICE_TITLE
  • SALE_PRICE_TITLE
  • PRODUCTS_LIST_MAX
  • NAVI_PMAX
  • ID_MAX_LEN
  • ADMIN_NEWS_STARTYEAR
  • DELIV_DATE_END_MAX
  • PURCHASE_CUSTOMER_REGIST
  • CV_PAYMENT_LIMIT
  • OS_TYPE
  • SMTP_HOST
  • SMTP_PORT
  1. とっても嫌だけど []
  2. てかtruncate後にCSV読んでDBに格納するだけだから面倒なことすること無いと思うんだけどな…削除したり追加したりって何してんだろ? []

シェアする

  • このエントリーをはてなブックマークに追加

フォローする