クライアントのECサイトとしてオープンソースの"EC-CUBE"を利用している。![]() 現在はVPSサーバ"ラピッドサイト"にてカスタマイズテストを行い、各クライアントサーバに実装している。 尚、現在使用しているバージョンは"1.1.1"である。 公式サイトではバックアップ時の不具合が何件か寄せられている。 バックアップファイル作成時にエラーが出るか画面が真っ白になる現象だ。 私はどちらも経験があるが、使用するサーバによって現象が出たり出なかったりする。 まずエラーに関してだが、バックアップすると以下が表示される。 Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 45 bytes) in *******/pgsql.php on line 415 これはPHPの使用できるメモリ容量が足らないので出るものだ。 PHPの設定ファイルを変更できるのならphp.iniの"max_execution_time"と"memory_limit"の値を上げてみる。 すると次に画面が真っ白の状態になる。 ![]() ソースを見ても手がかりがなく、全く検討もつかない。 私が手がけたEC-CUBEはクライアント独自の機能が多く、DB構成も異なるためこの辺かと思い「/html/admin/system/bkup.php」を一つずつ調べていくことにした。 バックアップ時にはアップされている画像やDBの構成・レコードがエクスポートされる。 ソースを見るとどうやらDBの構成に関係なく全て取得しているので独自のカスタマイズをしていても問題ない。 そこで、各テーブルレコードの取得部分をさらに詳しく見てみると、ある部分でつまずいた。 郵便番号テーブルか・・・この郵便番号テーブルのおかげで郵便番号から都道府県・市町村・町名の変換ができるのだが、日本国内全てのデータが入っているため非常に容量が大きい。 どうやらPHP.iniで値を変えてもこのデータを取得する時点でサーバ側で処理を止めてしまうようだ。 まぁ、理由がわかれば納得できる現象だ。 「/html/admin/system/bkup.php」のDBエクスポート処理に手を加えることで解決した。 if ($val != "dtb_bkup") { ↓ if ($val != "dtb_bkup" && $val != "mtb_zip") { ![]() これで郵便番号DBのデータ以外はバックアップできるようになった。 そもそも郵便番号DBは管理画面から別途インポートする機能があるのでバックアップを取る必要もないだろう。 EC-CUBEのバージョンも1.2.0が正式公開されようとしている。 カスタマイズしていてもバージョンアップできるように準備しておかなければならない。 |
| << 前記事(2007/03/27) | トップへ | 後記事(2007/03/29)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2007/03/27) | トップへ | 後記事(2007/03/29)>> |