#
ドキュメント

Document

自分のための備忘録です。

EC-CUBE 4.0 インストール

https://doc4.ec-cube.net/quickstart_install

コマンドラインでインストール

  1. $ composer create-project ec-cube/ec-cube ec-cube "4.0.x-dev" --keep-vcs
  2. $ cd ec-cube この時点でSQLiteで構築完了
  3. $ bin/console server:run --env=dev

SQLiteの代わりにMySQLを使用するために上記に続いて以下を実行。

  1. $ mysql -u root
  2. $ CREATE DATABASE eccube DEFAULT CHARACTER SET utf8mb4;
  3. $ bin/console eccube:install
    • .env DATABASE_URLにMySQLを設定
    • MySQLにスキーマ作成
    • MySQLにフィクチャ挿入
    • etc
  4. MySQL接続文字:mysql://root:@localhost/eccub
    • .envファイルが更新される
  5. Mailer設定(MailHog
    • $ bin/console eccube:installの際に設定してもよいが .envに直接指定してもよい
    • MAILER_URL=smtp://0.0.0.0:1025

トラブルシュート

The process "bin/console doctrine:schema:create" exceeded the timeout of 60 seconds.

ec-cube4.0.0では、"The process "bin/console doctrine:schema:create"

exceeded the timeout of 60 seconds."というエラーが出て処理が正常終了

しない場合があります。これは、処理がタイムアウトしているだけですので致命的

ではありません。コマンドを何度か立て続けに実行していると正常終了したりします。

それでもダメな場合は、vendor/symfony/process/Process.phpのコンストラクタ

で$timeout = 60となっているのを一時的に変えてください。

ref. https://github.com/vividcolors/docker-eccube-plugin/blob/master/README.html

bin/console server:run --env=dev There are no commands defined in the "server" namespace.

.envファイルのAPP_ENV=proddevに変更。

Fatal error

Fatal error: require(): Failed opening required '/Users/shiroshi/workspace/src/github.com/eccube4-playground/ec-cube/var/cache/dev/doctrine/orm/Proxies/__CG__EccubeEntityMasterWork.php' (include_path='.:/usr/local/Cellar/php/7.4.6_1/share/php/pear') in /Users/shiroshi/workspace/src/github.com/eccube4-playground/ec-cube/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206

APP_DEBUG=01に変更。

備考

.gitpod.yml
image: gitpod/workspace-mysql
tasks:
  - init: composer create-project ec-cube/ec-cube ec-cube "4.0.x-dev" --keep-vcs
    command: cd ec-cube && bin/console server:run --env=dev
SQLite DATABASE_URL

DATABASE_URL=sqlite:///var/eccube.db

Dockerインストール

開発環境として以下3つのコンテナを用意

  • EC-CUBE4
  • MySQL 5.7
  • mailcatcher(オプション)

コンテナ起動

  1. GitHubからクローン
    • $ git clone git@github.com:EC-CUBE/ec-cube.git
  2. DockerfileからDockerイメージ作成 $ docker build -t eccube4-php-apache .
  3. MySQLをDocker Hubからイメージ取得->ビルド->コンテナ起動
    • $ docker run --name container_mysql -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mysql:5.7
  4. mailcatcherをDocker Hubからイメージ取得->ビルド->コンテナ起動
    • $ docker run -d -p 1080:1080 -p 1025:1025 --name mailcatcher schickling/mailcatcher
  5. EC-CUBEコンテナをMySQLmailcatcherをリンク(--link)して起動
    • $ docker run -d --name ec-cube -p "8080:80" -p "4430:443" --link container_mysql:db eccube4-php-apache(-dオプションを付与していることに注目)
  6. ログイン
    • $ docker exec -it ec-cube /bin/bash