LoginSignup
5
3

More than 3 years have passed since last update.

WSL2+WardenでMagento2の環境構築をする方法の備忘録

Last updated at Posted at 2021-03-19

概要

WSL2+WardenでMagento2の環境構築をする方法の備忘録
(2021年3月時点)

目次

  1. WSL2のインストール
  2. Wardenのインストール
    1. 2021年3月時点(バージョン0.10.1)のWSL2での環境構築方法
    2. 補足

WSL2のインストール

WSL2(Windows Subsystem for Linux 2)とは、Windows内でLinuxを実行できる仕組みである。(詳細はマイクロソフトのドキュメント
マイクロソフトのドキュメントにあるインストール方法の通りに実行すれば、wsl2をインストールできる。

Wardenのインストール

Wardenの仕組みやインストールの方法からMagento2の環境構築まで、Yamashitaさんの記事に分かりやすく載っている。(macOSにおける2020年3月時点のもの)

2021年3月時点(バージョン0.10.1)のWSL2での環境構築方法

1.Homebrewをインストールする

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2.wardenをインストールし、Global Serviceを起動する

brew install davidalger/warden/warden
warden svc up

3.起動に成功したら、以下のURLで確認できる。
https://traefik.warden.test/
https://portainer.warden.test/
https://dnsmasq.warden.test/
https://mailhog.warden.test/

接続できなかった場合は補足の3を参照

4.プロジェクトのルートディレクトリで下記コマンドを実行する。

warden env-init [projectname] [environment type]

[projectname]:プロジェクトの名前を自由に決める。
[environment type]:ドキュメントにあるタイプの中から一つ選ぶ。今回はmagento2の構築なのでmagento2とする。

.envというファイルが生成されるので、PHPのバージョンなどを変更したいときはここに記述する。

5.SSL証明書の作成

warden sign-certificate [projectname].test

6.プロジェクトの環境を立ち上げる

warden env up -d

7.php-fpmコンテナに入る

warden shell

8.composerでMagento2をダウンロードする

META_PACKAGE=magento/project-community-edition META_VERSION=2.4.x

composer create-project --repository-url=https://repo.magento.com/ \
    "${META_PACKAGE}" /tmp/exampleproject "${META_VERSION}"

rsync -a /tmp/exampleproject/ /var/www/html/
rm -rf /tmp/exampleproject/

META_VERSION=2.4.xにMagentoのバージョンを入れる。
(一度/tmpにダウンロードしてから/var/www/html/に移すのは、create-projectはカレントディレクトリにダウンロードすることができないから。)

9.Magento2をインストールする(2.4.x)

bin/magento setup:install \
    --backend-frontname=backend \
    --amqp-host=rabbitmq \
    --amqp-port=5672 \
    --amqp-user=guest \
    --amqp-password=guest \
    --db-host=db \
    --db-name=magento \
    --db-user=magento \
    --db-password=magento \
    --search-engine=elasticsearch7 \
    --elasticsearch-host=elasticsearch \
    --elasticsearch-port=9200 \
    --elasticsearch-index-prefix=magento2 \
    --elasticsearch-enable-auth=0 \
    --elasticsearch-timeout=15 \
    --http-cache-hosts=varnish:80 \
    --session-save=redis \
    --session-save-redis-host=redis \
    --session-save-redis-port=6379 \
    --session-save-redis-db=2 \
    --session-save-redis-max-concurrency=20 \
    --cache-backend=redis \
    --cache-backend-redis-server=redis \
    --cache-backend-redis-db=0 \
    --cache-backend-redis-port=6379 \
    --page-cache=redis \
    --page-cache-redis-server=redis \
    --page-cache-redis-db=1 \
    --page-cache-redis-port=6379

## Configure Application
bin/magento config:set --lock-env web/unsecure/base_url \
    "https://${TRAEFIK_SUBDOMAIN}.${TRAEFIK_DOMAIN}/"

bin/magento config:set --lock-env web/secure/base_url \
    "https://${TRAEFIK_SUBDOMAIN}.${TRAEFIK_DOMAIN}/"

bin/magento config:set --lock-env web/secure/offloader_header X-Forwarded-Proto

bin/magento config:set --lock-env web/secure/use_in_frontend 1
bin/magento config:set --lock-env web/secure/use_in_adminhtml 1
bin/magento config:set --lock-env web/seo/use_rewrites 1

bin/magento config:set --lock-env system/full_page_cache/caching_application 2
bin/magento config:set --lock-env system/full_page_cache/ttl 604800

bin/magento config:set --lock-env catalog/search/enable_eav_indexer 1

bin/magento config:set --lock-env dev/static/sign 0

bin/magento deploy:mode:set -s developer
bin/magento cache:disable block_html full_page

bin/magento indexer:reindex
bin/magento cache:flush

※バージョン2.4.x以前の場合、以下のElasticsearchのパラメータは省略する。

--search-engine=elasticsearch7 \
--elasticsearch-host=elasticsearch \
--elasticsearch-port=9200 \
--elasticsearch-index-prefix=magento2 \
--elasticsearch-enable-auth=0 \
--elasticsearch-timeout=15 \

代わりに以下のElasticsearchの設定コマンドを打つ。

bin/magento config:set --lock-env catalog/search/elasticsearch7_server_hostname elasticsearch
bin/magento config:set --lock-env catalog/search/elasticsearch7_server_port 9200
bin/magento config:set --lock-env catalog/search/elasticsearch7_index_prefix magento2
bin/magento config:set --lock-env catalog/search/elasticsearch7_enable_auth 0
bin/magento config:set --lock-env catalog/search/elasticsearch7_server_timeout 15

これでMagento2のインストールは完了。

以下のURLでアプリケーションにアクセスできる。
https://app.[projectname].test/
https://app.[projectname].test/backend/
https://rabbitmq.[projectname].test/
https://elasticsearch.[projectname].test/

補足

  1. wardenのGlobal Serviceの起動方法は、2021年3月時点でwarden svc upに変更されている

  2. warden sync startはmacOSで且つバージョン0.3.0以前に必要なコマンドである。(warden sync stopも同様)

  3. Wardenのドキュメントにもあるように、dnsmasqサービスによるDNSの自動解決には、DNSリクエストがローカルネットワークを経由する必要がある。
    Windowsの設定方法は、このサイトに分かりやすく載っている。
    インターネットプロトコル バージョン 4 (TCP/IPv4)の優先DNSを127.0.0.1に設定する。

5
3
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
5
3