[php: EC-CUBE] ECommerce CMS by php. #eccube #php
日本産の PHP 製 OSS な EC サイト構築用 CMS 。最新バージョンは 3 系だが beta で 4 系がリリースされている。稼働は 2 系 ( 特に 2.13 ) が多い。3 系から内部の FW やデザイン・機能が大きく刷新されており 2 系は 2010 年代に流行したレガシープロダクト。3 系からはモダンになってきているようだがその他 EC CMS が台頭してさっぱり盛り上がってない。
Application Service Provide - アプリケーションサービスプロバイダ、現在の SaaS と同意語
EC-CUBE は「EC サイト」の CMS だが、カート機能だけを利用したいようなケースでは ASP カートサービスも選択肢に入る。EC-CUBE のほうがカスタマイズ性に優れるが、運用は大変。大したカート連携が必要ないなら、サイトの商品ページから ASP カートサービスへリンクして ... のような実装で検討するのもあり。最近では Web API を公開しているものもあるため、ある程度の外部システム連携が可能。
$ sudo -u apache composer create-project ec-cube/ec-cube ${PROJECT_DIR} "4.0.x-dev" --keep-vcs
$ cd ${PROJECT_DIR}
$ vim .env
> APP_ENV=dev
> APP_DEBUG=0 # 1 にするとデバッグモード ( 激重い )
> DATABASE_URL="mysql://user:password@localhost/db"
> DATABASE_SERVER_VERSION=5.6
> MAILER_URL="smtp://example@gmail.com:password@smtp.gmail.com:465"
> ECCUBE_AUTH_MAGIC=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 32 byte Salt
$ bin/console eccube:install --no-interaction
$ bin/console server:run # Access http://127.0.0.1:8000
# Linux では bin/console で権限?パスが通ってない?ようなエラー、php 経由で解決
$ sudo -u apache php bin/console eccube:install
APCu はキャッシュを制御する PHP 拡張で EC-CUBE の推奨環境とされている。
$ printf "\n" | pecl install APCu
$ sudo sed -i -e '$a extension=apcu.so' /etc/php.ini
$ service httpd restart
Symfony が session データをアプリルート配下 ec-cube/var/sessions
に保存する関係で Vagrant + VirtualBox な VM 配下だとセッションファイルのリードでコケる。( vagrant ユーザを apache グループにしていてもコケてしまった ) app/config/eccube/packages
下の YAML を編集して参照先を変えてセッションファイルの管理を PHP デフォルトにすることで解決可能。
# app/config/eccube/packages/framework.yaml
framework:
session:
handler_id: null # ここ null だと PHP デフォルトになるみたい、以下全部コメントアウトで OK 。
$ bin/console cache:clear --no-warmup
{#
src/Eccube/Twig/Extension/EccubeExtension.php にて拡張されてます
@see https://github.com/EC-CUBE/ec-cube/pull/2263
#}
{# .env にて ENV_VAR_HOGE が定義済み想定 #}
<a href="{{ php_getenv('ENV_VAR_HOGE') }}">LINK!!</a>