LoginSignup
0
1

WSL2+DenでMagento2の環境構築

Last updated at Posted at 2023-07-24

目次

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

はじめに

この記事は、WSL2+WardenでMagento2の環境構築をする方法の備忘録のDenによる焼き直しです。

DenとはWardenをForkしたリポジトリで、Wardenとの違いとして下記のように述べられています。

  • Alpine Linuxをベースにした軽量なイメージの使用
  • より迅速なアップデートスケジュール

githubに使用可能なサービスのバージョンがリストしてあったり、単純にコマンドが短かったりと、使いやすい部分が多いので、私は環境を全てDenに置き換えました。
今回はDenへの移行方法と、Magento2のインストール方法を紹介します。

環境

1 2
WSL2 1.2.5.0
Ubuntu 22.04
Den 1.0.0-beta.14

WSL2のインストール

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

Denのインストール

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

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

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

brew install swiftotter/den/den
den svc up

3.起動に成功したら、以下のURLで確認できる。
https://traefik.den.test/
https://portainer.den.test/ (Defaultではオフ)
https://dnsmasq.den.test/
https://mailhog.den.test/

PortainerはDockerのコンテナ等をGUIで管理できるツールですが、デフォルトではオフになっています。
オンにしたい場合は~/.den/.envDEN_SERVICE_PORTAINER=1を追記してからden svc upします。

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

Wardenを使用していた方はDenに移行する際、den installを実行することで、SSL証明書関連のデータをDenに移植できます。

Magento環境の構築

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

den env-init [projectname] [environment type]

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

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

2.SSL証明書の作成

den sign-certificate [projectname].test

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

den env up -d

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

den shell

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

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

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

META_VERSION=2.4.xにMagentoのバージョンを入れる。

6.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

#開発環境では、admin userのパスワードをいちいち変えるのは面倒なので、設定でオフにしておきます。
bin/magento config:set admin/security/password_lifetime 0
bin/magento config:set admin/security/password_is_forced 0

#2段階認証も開発環境では不要なので、オフにしておきます。
bin/magento module:disable Magento_TwoFactorAuth

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 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/

おわりに

基本的にコマンド等は、コマンド名がwardenからdenに変わっただけで、他の部分は変わりありません。
ただ、少しでも便利に、軽量にしたいという方はぜひDenへの移行を検討してみてください。

0
1
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
1