
EC Cubeインストール時のMysqlの文字化けが起こる場合、コアファイルを修正してエンコーディングを発行します。
日本初のオープンソースECサイト構築システム「EC CUBE」
オープンソースのEC構築パッケージではosCommerceが有名ですが、2007年4月26日に日本で初めてのオープンソースECサイト構築システム「EC CUBE」正式版がリリースされました。
ベータ版のからテストしていますが、正式版は動作も安定していて、仕事での使用もそろそろ考えています。
ただ、この手のものは使用できるまでに手間がかかるので、マニュアル以外のインストール時の設定を、思いついたときに書き記していきたいと思います。
インストールの覚書
サーバー詳細
- EC-CUBEバージョン 1.3.4
- PHPバージョン PHP 4.3.9 セーフモード
- DBバージョン MySQL 4.1.12
- OS Linax Apache 2.0.52
インストール時の文字化け
MySQL4.1になると文字化けが発生する件 : delabでも書きましたが、Mysql4.1以上だと、CMSツールを普通にインストールするとデーターベース側が文字化けするという問題が出ることがあります。
Mysql4.1以降は、PHPとの接続時に文字コードの自動変換機能が働くので、サーバー側の文字コードを勝手に変換してしまうため、文字コードが指定されていない場合、「laten1」などで出力されてしまうことがあります。
対策として、コアファイルを書き換えてエンコーディングを発行します。
data/class/SC_DbConn.php 30行目 ※codeの5,6行目を追加
if(!isset($objDbConn->connection) || $new) {
if($dsn != "") {
$objDbConn = DB::connect($dsn, $options);
$this->dsn = $dsn;
$buf = $objDbConn->prepare('SET NAMES ujis');
$objDbConn->execute($buf);
} else {
if(defined('DEFAULT_DSN')) {
$objDbConn = DB::connect(DEFAULT_DSN, $options);
$this->dsn = DEFAULT_DSN;
} else {
return;
}
}
}






