EC-CUBEめも

EC-CUBE3.0.x系からカスタマイズの学習コストの低下を目指すなどの目的で3.n系のリリースが計画されています。

2018年04月27日にEC-CUBE 3.n α5が公開されたので、インストールしてみました。
https://www.ec-cube.net/news/detail.php?news_id=297

そもそもComposerが光遅い

インストールにはComposerが必要となります。
コマンドラインにてインストールを試みますが、タイムアウトして先に進むことができません。

$ php /usr/local/bin/composer.phar create-project ec-cube/ec-cube ec-cube "dev-experimental/sf"
Installing ec-cube/ec-cube (dev-experimental/sf 318be27eb028b6fa515ed1e80645fed1ce173b87)
  - Installing ec-cube/ec-cube (dev-experimental/sf experimental/sf): Cloning experimental/sf
    Failed to download ec-cube/ec-cube from source: The process "git clone --no-checkout 'https://github.com/EC-CUBE/ec-cube.git' 'ec-cube/' && cd 'ec-cube/' && git remote add composer 'https://github.com/EC-CUBE/ec-cube.git' && git fetch composer" exceeded the timeout of 300 seconds.

まずはComposerの実行速度改善に取り組みます。
改善方法は3点ほどありそうです。

packagistがネットワーク的に遠い

ミラーサーバを国内のものへ変更します。

$ /usr/local/bin/composer.phar config -g repos.packagist composer https://packagist.jp

戻す場合は、

$ /usr/local/bin/composer.phar config -g --unset repos.packagist

Composerプラグインの導入

Keep-Alive対応や並列処理に対応するため、prestissimoプラグインを入れます。
https://github.com/hirak/prestissimo

$ /usr/local/bin/composer.phar global require hirak/prestissimo

アンインストールするには、

$ /usr/local/bin/composer.phar global remove hirak/prestissimo

タイムアウト時間を延ばす

デフォルトは300秒なので、適当に延ばします。

$ export COMPOSER_PROCESS_TIMEOUT=1800

結局、またもやタイムアウトしたので、断念…。

ZIPファイルからインストール

以下から 3.n-alpha5.zip ファイルをダウンロードし、public_html以下に展開します。
https://github.com/EC-CUBE/ec-cube/releases/tag/3.n-alpha5

$ cd public_html
$ /usr/local/bin/composer.phar install
$ bin/console eccube:install

対話形式でインストールが進むので、Database Url入力時に使用したいデータベースに応じて入力します。
データベース作成権限があれば事前に作成しておく必要は無さそうです。

# MySQLの場合
mysql://<user>:<password>@<host>/<database name>

# PostgreSQLの場合
postgres://<user>:<password>@<host>/<database name>
[OK] EC-CUBE installation successful.

セッションデータが作成できずにエラー

インストールが完了し、ブラウザにてアクセスすると500エラーが発生。

Warning: SessionHandler::read(): Session data file is not created by your uid

セッションファイルは var/sessions/ 以下に生成されます。
ちなみにログは var/log/ 以下です。

セッションのsave_pathを変更する場合は以下のファイルを変更します。
app/config/eccube/packages/framework.yaml

framework:
    secret: '%env(ECCUBE_AUTH_MAGIC)%'
    default_locale: '%locale%'
    translator:
      fallback: ['%locale%']
    csrf_protection: { enabled: true }
    http_method_override: true
    trusted_hosts: ~
    # https://symfony.com/doc/current/reference/configuration/framework.html#handler-id
    session:
        handler_id: session.handler.native_file
        #save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
        save_path: '/tmp'

EC-CUBE3.0.x系からの変更点

気がついた分について列挙してみます。

全体の変更点

フロントの変更点

管理画面の変更点

考察

.envファイルの変更で言語と通貨の切り替えは可能になっているが、これを越境ECとして多言語化対応と言えるかは微妙な印象。
各社からリリースされるであろう決済プラグイン次第で対応が変わって来そう。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS