0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WardenでOroCommerceの環境構築

Last updated at Posted at 2024-12-31

目次

  1. はじめに
  2. 環境
  3. Wardenのインストール
  4. OroCommerceの環境構築
  5. おわりに

はじめに

OroCommerceは、B2B向けに設計されたオープンソースのeコマースプラットフォームです。

今回は、私がいつもMagento2の環境構築ツールとして使用しているWardenでOroCommerce用のDocker Imageが追加されていたため、「WardenでOroCommerceの環境構築」をしてみました。

本記事執筆時点ではまだ開発中のようなので、色々と補完する部分は有りましたが、構築には成功したので備忘録として残そうと思います。

環境

Version
Warden 0.15.0
OroCommerce 6.0.3

Wardenのインストール

Wardenのインストールに関しては、WSL2+WardenでMagento2の環境構築をする方法の備忘録で紹介しています。

OroCommerceの環境構築

1.プロジェクトの初期化

warden env-init [projectname] [environment type]

[projectname]:プロジェクトの名前を自由に決めます。(今回は「oro」)
[environment type]:ドキュメントにあるタイプの中から一つ選びます。執筆時点では「OroCommerce」がまだ無いため、「Symfony」をベースに作成します。

2.環境設定

.envファイルが生成されるので、各種ミドルウェアのバージョン等を設定します。
今回OroCommerce 6.0.3用に作成した.envファイルは下記の通りです。

WARDEN_ENV_NAME=oro
WARDEN_ENV_TYPE=symfony
WARDEN_WEB_ROOT=/src

TRAEFIK_DOMAIN=oro.test
TRAEFIK_SUBDOMAIN=app

WARDEN_DB=1
WARDEN_REDIS=1
WARDEN_RABBITMQ=0
WARDEN_ELASTICSEARCH=0
WARDEN_ELASTICHQ=0
WARDEN_VARNISH=0

ELASTICSEARCH_VERSION=8.11
MYSQL_DISTRIBUTION=postgres
MYSQL_DISTRIBUTION_VERSION=16
NODE_VERSION=20.10.0
COMPOSER_VERSION=2
PHP_VERSION=8.3
WARDEN_SVC_PHP_VARIANT=-orocommerce
PHP_XDEBUG_3=1
RABBITMQ_VERSION=3.12
REDIS_VERSION=7.2
VARNISH_VERSION=7.5

OroCommerce用のイメージを使用するために、「WARDEN_SVC_PHP_VARIANT」を指定しています。将来的にはOroCommerce用のEnvironment Typeが作られると思います。

RabbitMQやElasticSearchは、Enterprise Editionでしか使用できないため、今回はオフにしています。(今回はCommunity Editionをインストールします。)

3.各種コンテナ調整

.warden/warden-env.ymlファイルを作成し、下記の通り記述します。

services:
  nginx:
    volumes:
      - ./.warden/nginx/orocommerce.conf:/etc/nginx/available.d/orocommerce.conf
    environment:
      NGINX_TEMPLATE=orocommerce.conf
  db:
    environment:
      - POSTGRES_DB=oro
      - POSTGRES_USER=oro
      - POSTGRES_PASSWORD=oro

.warden/nginx/orocommerce.confファイルを作成し、下記の通り記述します。

location / {
    try_files $uri /index.php$is_args$args;
}

location /ws {
    proxy_pass http://php-fpm:8080;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;

    proxy_read_timeout 86400;
    proxy_send_timeout 86400;
}

location ~ ^/(index|index_dev|config|install)\.php(/|$) {
    fastcgi_pass $fastcgi_backend;

    fastcgi_split_path_info ^(.+\.php)(/.*)$;

    include fastcgi_params;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS on;
    fastcgi_buffers 64 64k;
    fastcgi_buffer_size 128k;

    internal;
}

location ~* ^[^(\.php)]+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
    access_log off;
    expires 1h;
    add_header Cache-Control public;
}

gzip on;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/xml+rss
    image/svg+xml;
gzip_vary on;

# Deny access to other "sensitive" locations / scripts
location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
}

location /ws {} の部分を追加しています。
WebSocketを使用して様々な通知をリアルタイムで受け取る機能がありますので、そのための設定です。

dbにはPostgreSQL用の初期設定を追加しています。

4.SSL証明書の作成

warden sign-certificate oro.test

5.プロジェクトの環境を立ち上げ、php-fpmコンテナに入る

warden env up
warden shell

6.OroCommerce Community Edition(6.0.3)をダウンロード

composer create-project oro/commerce-crm-application . 6.0.3

7.パラメータ調整

.env-appをコピーし、.env-app.localとして下記設定を追加します。

ORO_DB_URL=postgres://oro:oro@db:5432/oro?sslmode=disable&charset=utf8&serverVersion=16

ORO_MAILER_DSN=smtp://mailhog:1025

ORO_WEBSOCKET_SERVER_DSN=//0.0.0.0:8080
ORO_WEBSOCKET_FRONTEND_DSN=//*:443/ws
ORO_WEBSOCKET_BACKEND_DSN=tcp://127.0.0.1:8080

ORO_REDIS_URL=redis://redis:6379
ORO_SESSION_DSN=${ORO_REDIS_URL}/0
# ORO_SESSION_DSNはORO_REDIS_URLの下に移動させる必要があります。

redisの設定を有効にするため、下記コマンドを実行します。

composer set-parameters redis

8.OroCommerceをインストールする

php bin/console oro:install --env=prod --timeout=2000

Application URL (http://localhost): https://app.oro.test

9.php-fpm再起動

SupervisorでMessage QueueとWebSocket Serverが自動起動していますが、パラメータを調整するまではエラーで落ちているかと思います。一度コンテナを再起動しておきましょう。

warden env restart php-fpm

10.ブラウザで表示確認

https://app.oro.test (フロントエンド)
https://app.oro.test/admin (管理画面)

おわりに

WardenでOroCommerce用のEnvironment Typeが開発されればもっとスムーズにいくとは思いますが、ひとまず環境構築ができました。
Wardenの更新や、設定値等の調査が進み次第、記事もアップデートしていこうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?