使用WSL2+Warden方式搭建Magento2环境的备忘录

简述

WSL2+Warden是一种在2021年3月为Magento2建立环境的方法,下面是详细备忘录。

章节列表

    1. 在2021年3月时(版本0.10.1)安装WSL2

在安装Warden

在WSL2中进行环境设置的方法。

安装WSL2

WSL2(Windows Subsystem for Linux 2)是一种在Windows系统内运行Linux的机制。(更多详细信息请参考微软的文档)
按照微软文档中提供的安装方法进行操作,就可以安装wsl2。

监狱管理者的安装

Yamashita先生的文章从Warden的原理和安装方法,到Magento2的环境搭建,清楚地解释了(截至2020年3月,在macOS上)的内容。

2021年3月时(版本0.10.1)的WSL2环境设置方法。

1. 安装Homebrew

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

安装Warden并启动全球服务。

brew install davidalger/warden/warden
warden svc up

起動成功后,可通过以下URL进行确认:
– https://traefik.warden.test/
– https://portainer.warden.test/
– https://dnsmasq.warden.test/
– https://mailhog.warden.test/

如果无法连接,请参考附录3。

在项目的根目录下执行以下命令。

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

请使用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/

将Magento版本安装在META_VERSION=2.4.x上。
(先下载到/tmp,然后移动到/var/www/html/,因为create-project无法直接下载到当前目录。)

安装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。

warden sync start是在macOS上且需要在0.3.0版本以前使用的命令。(warden sync stop也是同样)
正如Warden文档中所述,使用dnsmasq服务进行DNS自动解析需要通过本地网络进行DNS请求。
Windows的设置方法在这个网站上有清楚的说明。
将Internet Protocol Version 4 (TCP/IPv4)的首选DNS设置为127.0.0.1。

广告
将在 10 秒后关闭
bannerAds