yano3nora
7/2/2017 - 11:31 AM

[eccube: note] ECサイト構築CMS: EC-CUBE #eccube #cms

[php: EC-CUBE] ECommerce CMS by php. #eccube #php

OVERVIEW

EC-CUBE - www.ec-cube.net
EC-CUBE 4

日本産の PHP 製 OSS な EC サイト構築用 CMS 。最新バージョンは 3 系だが beta で 4 系がリリースされている。稼働は 2 系 ( 特に 2.13 ) が多い。3 系から内部の FW やデザイン・機能が大きく刷新されており 2 系は 2010 年代に流行したレガシープロダクト。3 系からはモダンになってきているようだがその他 EC CMS が台頭してさっぱり盛り上がってない。

References

ASP カート?

Application Service Provide - アプリケーションサービスプロバイダ、現在の SaaS と同意語

EC-CUBE は「EC サイト」の CMS だが、カート機能だけを利用したいようなケースでは ASP カートサービスも選択肢に入る。EC-CUBE のほうがカスタマイズ性に優れるが、運用は大変。大したカート連携が必要ないなら、サイトの商品ページから ASP カートサービスへリンクして ... のような実装で検討するのもあり。最近では Web API を公開しているものもあるため、ある程度の外部システム連携が可能。

Install

インストール方法
システム要件

$ 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 のインストール

APC User Cache - php.net
【PHP】PHP7でAPCuを動かす

APCu はキャッシュを制御する PHP 拡張で EC-CUBE の推奨環境とされている。

$ printf "\n" | pecl install APCu
$ sudo sed -i -e '$a extension=apcu.so' /etc/php.ini
$ service httpd restart

Vagrant 環境下ではセッションファイルの権限問題でコケる

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 。

TIPS & REFERENCES

AuthType

管理画面のパスワードを忘れた時に暗号化されたパスワードでログインする

キャッシュ削除

$ bin/console cache:clear --no-warmup

Twig 内で PHP 関数

{#
  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>