使用WSL2和Den来构建Magento2的环境
目录
-
- 首先,
-
- 环境
-
- 安装WSL2
-
- 安装Den
-
- 搭建Magento环境
- 最后
首先
这篇文章是由Den做的Magento2环境设置备忘录的翻译,介绍了使用WSL2+Warden的方法。
Den是Warden的一个分支存储库,与Warden的区别可以如下所述。
-
- Alpine Linuxをベースにした軽量なイメージの使用
- より迅速なアップデートスケジュール
因为在GitHub上有列出可用的服务版本,并且其中一些简单易用,命令也很简短,所以我将我的环境全部替换为Den。本次将介绍如何迁移到Den,以及如何安装Magento2。
环境
安装WSL2
如果按照微软文档中的安装方法进行操作,就能够安装WSL2(Windows Subsystem for Linux 2),该功能能在Windows系统内运行Linux。
安装Den。
安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装Den并启动全局服务。
brew install swiftotter/den/den
den svc up
如果启动成功,则可以通过以下URL进行确认:
・https://traefik.den.test/
・https://portainer.den.test/(默认情况下处于关闭状态)
・https://dnsmasq.den.test/
・https://mailhog.den.test/
Portainer是一种能够以图形界面方式管理Docker容器等的工具,但默认情况下是关闭的。如果想要启用它,请在~/.den/.env文件中追加DEN_SERVICE_PORTAINER=1,然后运行den svc up。
如Den的文档中所述,通过dnsmasq服务进行DNS自动解析需要通过本地网络传输DNS请求。
设置Windows方法可以在这个网站上找到。
将Internet Protocol Version 4(TCP/IPv4)的首选DNS设置为127.0.0.1。
搭建Magento环境
在项目的根目录下执行以下命令。
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
进入php-fpm容器中。
den 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}" . "${META_VERSION}"
将Magento的版本安装为META_VERSION=2.4.x。
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。