使用WSL2和Den来构建Magento2的环境

目录

    1. 首先,

 

    1. 环境

 

    1. 安装WSL2

 

    1. 安装Den

 

    1. 搭建Magento环境

 

    最后

首先

这篇文章是由Den做的Magento2环境设置备忘录的翻译,介绍了使用WSL2+Warden的方法。

Den是Warden的一个分支存储库,与Warden的区别可以如下所述。

    • Alpine Linuxをベースにした軽量なイメージの使用

 

    より迅速なアップデートスケジュール

因为在GitHub上有列出可用的服务版本,并且其中一些简单易用,命令也很简短,所以我将我的环境全部替换为Den。本次将介绍如何迁移到Den,以及如何安装Magento2。

环境

12WSL21.2.5.0Ubuntu22.04Den1.0.0-beta.14

安装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。
如果您之前使用Warden,想要转移到Den时,只需执行den install,就可以将SSL证书相关的数据迁移到Den上。

搭建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。

广告
将在 10 秒后关闭
bannerAds