EC-CUBE

日本発のオープンソース ECサイト構築パッケージ EC-CUBEに関して。カスタマイズや、インストール等で調べたことなど、まとめています。

EC-CUBE でオーナーズストアで購入した商品がダウンロード出来ないときの原因と対策(PHP5.2.0以降)

EC-CUBE オーナーズストア管理の購入商品一覧
もう一点はまった事があったのでここに書いておく。

EC-CUBE 管理画面のオーナーズストア管理で、決済モジュールのダウンロードができずにはまった。

特に、今回は 2.4.3 から 2.4.4 へのアップデートもやったので、その時のミスかと思い、なかなか原因を突き止められなかった。

latin1 で作ってしまったデータベースを phpMyAdmin で文字化けせずに export する方法

phpmyadmin_export.png
昨晩は EC-CUBEで構築された、とある EC サイトの移行作業であった。 フリーエンジニアの場合、夜中に作業出来ることを重宝されることがある。今回のような移行作業は特に。ようは、お買い物に来る人が少ない時間帯に移行作業をやってしまおうってやつだ。

昼間のうちに必要な情報はすべて集め、夜までは他の仕事をこなしつつ、約束していた移行作業の開始時間を待っていた。

「そういえば、MySQLのダンプを忘れていたなー。phpMyAdmin がインストールされているはず(今回の作業を引き受ける条件として、phpMyAdminがインストールされているサーバという話をしていたので)なんだけど、URLを聞くのを忘れていたなー」

ということでお客さんに電話した。

「えっと、管理画面とかそういうの無いんですよ。確認して折り返し電話します。」

という回答。嫌な予感。

cron で VACUUM (vacuumdb と .pgpass)

先ほど EC-CUBEなサイトの夜間 VACUUM 設定が完了したのでメモ。

まずは、以下の感じで crontab に vacuumdb コマンドの実行を指定。この設定だと 4時0分にコマンドが起動される。

0 4 * * * /usr/bin/vacuumdb --analyze -U databaseuser databasename

crontab(1) コマンドは忘れた事無いけど、一応老後の為に書いておく。以下のようにする事で、username さんの権限で起動するコマンドが指定出来る(例えば、nologin なユーザの設定をしたいときに使う)。

% crontab -u username -e

ついでに中身だけ見るときは

% crontab -u username -l

suPHPの罠(php.ini が反映されない場合の対処方法)

某 EC-CUBEのサイトを新しいサーバにお引越し。そのサーバは suExec の PHP版みたいなモジュール suPHP を使っている。

suPHPといえば、例えば、スクリプトファイルの所有者、所有グループが実行ユーザと異なっていたらエラーになるとか、まあとにかく安全に動作するようにちゃんと動いてくれる。別に初めて使うわけじゃないんで、その事はわかっていたつもりだったんだけど……。

EC-CUBEは、日本の企業が作ったソフトウェアなので、モバイル版だとちゃんと日本の携帯電話にあった HTMLを出力してくれる。古い機種のことも考えていて、Shift_JISでの出力に対応している。

ログイン画面で「システムエラー」になったとき、エラーログを見ればすぐにわかった。データベースのエンコードがおかしいってメッセージが出ているが、データベースはちゃんと utf8で作られている。
そうなると、mb_string 関連の設定がおかしいのだろう。たしかに .htaccess ファイルが存在し、mbstring 関連の設定もされている。しかし、このファイルを色々といじってみても、phpinfo()で調べると、値がやっぱりおかしい。

EC-CUBEコミュニティのフォーラムにも似たようなことが書いてあったし、suPHPのFAQにもちゃんと書いてある(Can I use the php_value directives in .htaccess files with suPHP? のところ)。どうやら、suPHPだと .htaccess ファイルの php_value を読み込まない様子。