使用WSL2+Warden方式搭建Magento2环境的备忘录
简述
WSL2+Warden是一种在2021年3月为Magento2建立环境的方法,下面是详细备忘录。
章节列表
-
- 在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/
填補
-
- 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。