おはようございます。なかなか次男のおむつが外れません。それどころか、ここ最近、よく漏らします。@kjunichiです。
背景
前々から、EC-CUBEを動かしたいとは思っていた。
最近Windows向けの記事が多かったけど、今回はMacでやってます。
こどもたちとのあそびをなんとか自分の趣味ともからめて何かできないかと、無い頭ひねって考えてみた。
21世紀でお店を開けば、当然オンラインでの店舗も必要ですよね、むしろ、実店舗をかまえない方が 21世紀は主流ではなかろうかと。
そこで、EC-CUBEをうごかし、21世紀のお店屋さんごっこをするという遊びをするべく、早速準備に入った。
DockerでEC-CUBEをうごかす
Qiitaの記事
を参考にやってみることに。
動かしたが、メチャおそい
docker-syncなるものを使うとファイルアクセスが早くなる旨が参考にした記事には書かれていたが、こどもたちとあそぶ程度なので、
docker-compose up -d
としてやっていた。
表示が遅い
Mac mini late2014なのも大きいが、いくらなんでも遅すぎるといったファーストインプレッション。
これでは、こどもたちにブーブー文句言われておみせやさんごっこができない。
h2oの力を借りてサクサクにする予定だった
まぁ、ちょっと遅すぎと思いつつも、Apacheでphpモジュールだからなのが大きいのだろうと考え、 h2oでFastCGIにすれば、劇的に高速化され、子供たちも文句を言わなくなるだろうと思い、やってみた。
この状態で、さすがに計測くらいはするかとtimeコマンドかまして、curlでトップページにアクセスしたら4秒もかかっている!!
改善策
一瞬真面目に、特権命令を有効にしてコンテナ上げなおして、straceするかと思ったが、 ふとdocker for macのファイル共有が遅いとのフレーズを思い出し、 コンテナ内にec-cube以下のディレクトリをコピーして、やり直した。
劇的に改善
HTTP/2でアクセスできるようになった事以外にも、fastcgiになったので 0.2秒程度になった。
成果物
せっかくなので、hhvmでやってみた。
学んだこと
apacheとの比較のため、/var/www/html/配下にec-cube,ec-cube2を同居させ、切り替えながら試している 際に、ec-cubeの初期設定もすこしわかるようになった。
設定ファイルを編集しないとクッキー周りでうまく行かないことがあった。(これは、もとにしたコンテナが、 ROOT_URLPATHを指定していた為であった)
参考資料
- EC-CUBE 開発コミュニティ - フォーラム
- Kazuho's Weblog: H2OとPHPを組み合わせるの、超簡単です(もしくはmod_rewriteが不要な理由)
- H2OでPHP(がちょっとだけ動くまで) - uzullaがブログ
関連記事
- 俺がlibh2oの記事を読んで学んだこと #osx #dylib
- Cygwinでh2oが動いた日
- hhvmをh2oと連携して動かす〜OSX編〜
- EC-CUBEで21世紀のお店屋さんごっこ~おきゃくさんをたくさんとうろくするよ~