ハマログ

株式会社イーツー・インフォの社員ブログ

EC-CUBEの開発者向けインストール方法&初期設定

通常のEC-CUBEのインストール方法は「EC-CUBEの公式サイトからZIPをダウンロードして設置して、ブラウザでインストール」ですが、あまり開発者にフレンドリーな方法ではありません。

EC-CUBE 4.3.0のβ版など、最近は新しくテスト環境を作る機会も多いので、この機会にEC-CUBEのインストール方法をメモしておきます。

環境

今回はコンテナを使わず、ApacheとPHP、composerがインストールされているシンプルなWebサーバー(Linux)を想定しています。

SQLiteを使う場合

公式サイトのURLからcurlでZIPをダウンロードもできますが、gitやcomposerを使う方が便利です。ここではcomposerを使います。

DBとしてSQLiteを使う場合は、composerのcreate-projectだけでEC-CUBEをインストールできます。RDBを事前に準備する必要がないので、さくっと開発環境を作りたいときにはおすすめです。

composer create-project ec-cube/ec-cube eccube-test "4.3.0-beta"

これだけで、eccube-test ディレクトリにEC-CUBE 4.3.0のβ版をインストールできます。動作としては、

  • git cloneでソースを取得
  • 4.3.0-betaブランチをチェックアウト(バージョン指定)
  • composer install
  • composer run-script post-create-project-cmd

を実行しているのとほとんど同じです。最後のpost-create-project-cmdがDBのマイグレーションなどを実施しています。

こうやってインストールすることで、面倒な操作をしなくてもデフォルト設定になります。管理画面のURLは /admin 、IDは admin 、パスワードは password でログインできます。

MySQLやPostgreSQLを使う場合

MySQLやPostgreSQLを使う場合は、

composer create-project ec-cube/ec-cube eccube-test "4.3.0-beta" --no-scripts

cd eccube-test

export DATABASE_URL=pgsql://user:password@host-name:5432/scheme-name
sed -e "s#^DATABASE_URL=.*#DATABASE_URL=${DATABASE_URL}#" -i .env

bin/console eccube:install --no-interaction

no-scriptsオプションをつけている以外は、基本的にはSQLiteを使う場合と同じ方法でコードを取得します。その後、.envを編集してから、EC-CUBEをインストールするという流れです。

sedで.envのDATABASE_URLを設定しているはいささかスマートさに欠けるので、適宜、調整ください。

おすすめの設定

上のインストールだけで使用できますが、テスト環境として使うためには、

  • EC-CUBE 4.2から実装されたスロットリングの抑制
  • 脆弱なパスワードの設定を許可

を追加で設定してあげると便利です。特に、短時間のうちに何回も会員登録や購入操作をするテスト環境においては、スロットリング緩和は必要となることが多いです。

app/Customize/Resource/config/services.yaml に次の設定をかきます

eccube:
    rate_limiter:

parameters:
    eccube_password_min_len: 1
    eccube_password_pattern: '/.*/i'

rate_limiterを空のオブジェクトにしてスロットリング機能を無効化します。parametersではパスワードの最小文字数を1にして、パターンをなんでもOKにしています。

ちなみに、私はファイルをいちいち作成するのが面倒だったので、Gistに置いたyamlをcurlするだけで良いようにしました。

https://gist.github.com/kishimotonico/95cda60c176fc03c5231d25a5da92c04

curl -f -o app/Customize/Resource/config/services.yaml https://gist.githubusercontent.com/kishimotonico/95cda60c176fc03c5231d25a5da92c04/raw/ec49bb37727ce5a0ae21e82097bbd728b6fae421/eccube_test_services.yaml

公開するのも気が引けますが、中身をご確認の上ご自由にお使いください

最後に

EC-CUBEの環境を作ろうとするたび「この前はどんな方法でインストールしていたっけ」とターミナルに history と入力することが多かったので、この機会に記事にかきました。

ちなみに、このインストール方法は公式ドキュメントの「ComposerからWebインストーラでインストールする」とほぼ同じ方法です。EC-CUBEの開発者向けドキュメントを見ると、意外と色々かいてあったりします。他には、身も蓋もないですがEC-CUBEのコードを見てしまうのが一番分かりやすかったりもします。

上の方法は、コンテナを使わず、Webサーバー上で直接動くEC-CUBE環境を作る方針でした。EC-CUBE環境をコンテナ化してしまう方針もあるのですが、それについてはまた別の機会に……

  koni   2024年6月13日


関連記事

ORA-28001 the password has expiredとの戦い

こんにちは、かねこです。 ローカルのOracleが突然起動しなくなりました。 エ…

テスト設計技法について

どうもーyasuです~ アイコン変わりました! 前回、もうちょっと技術的なことも…

PhpSpreadsheetとTcpdfでExcelファイルから日本語PDFを作成してみる(そして失敗する)

はじめに PDFの帳票をLaravelから作成したかったので、いろいろ試していま…


← 前の投稿

次の投稿 →