oskarmodig / lando-scripts
使用lando设置和部署WordPress主题和插件的辅助脚本
- dev-main
- v0.3.43
- v0.3.42
- v0.3.41
- v0.3.40
- v0.3.39
- v0.3.38
- v0.3.37
- v0.3.36
- v0.3.35
- v0.3.34
- v0.3.33
- v0.3.32
- v0.3.31
- v0.3.30
- v0.3.29
- v0.3.28
- v0.3.27
- v0.3.26
- v0.3.25
- v0.3.24
- v0.3.23
- v0.3.22
- v0.3.21
- v0.3.20
- v0.3.19
- v0.3.18
- v0.3.17
- v0.3.16
- v0.3.15
- v0.3.14
- v0.3.13
- v0.3.12
- v0.3.11
- v0.3.10
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.46
- v0.2.45
- v0.2.44
- v0.2.43
- v0.2.42
- v0.2.41
- v0.2.40
- v0.2.39
- v0.2.38
- v0.2.37
- v0.2.36
- v0.2.35
- v0.2.34
- v0.2.33
- v0.2.32
- v0.2.31
- v0.2.30
- v0.2.29
- v0.2.28
- v0.2.27
- v0.2.26
- v0.2.25
- v0.2.24
- v0.2.23
- v0.2.22
- v0.2.21
- v0.2.20
- v0.2.19
- v0.2.18
- v0.2.17
- v0.2.16
- v0.2.15
- v0.2.14
- v0.2.13
- v0.2.12
- v0.2.11
- v0.2.10
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.1.46
- v0.1.45
- v0.1.44
- v0.1.43
- v0.1.42
- v0.1.41
- v0.1.40
- v0.1.39
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-wp-item-install
This package is auto-updated.
Last update: 2024-09-26 12:05:26 UTC
README
先决条件
- PHP 8.2(或更高版本)
- Composer
- jq(使用
sudo apt install jq
安装)
Windows
您需要运行WSL 2,默认正确的发行版(使用wsl --list --verbose
和wsl --set-default Ubuntu
检查,例如)。
此外,您可能需要将此添加到您的/etc/wsl.conf
文件中(在WSL中)
[automount]
options = "metadata,umask=22,fmask=11"
然后,请确保您有一个不是root
的Linux用户,尽管可能需要sudo权限。还要确保您的Linux用户是项目文件的拥有者。
您应该能够使用modlan setup
运行设置。
用法
Lando脚本
这些是在Lando容器中运行的脚本。您可以在.lando.yml
文件中设置它们,并使用lando <script-name>
运行它们。它们通过modig-lando.sh
脚本运行,输入变量通过MOD_INP_ENV
和MOD_INP_SCRIPT
变量设置。
-
deploy
- 将包部署到服务器 -
make-pot
- 为翻译创建.pot文件 -
示例
deploy: cmd: - appserver: modig-lando.sh MOD_INP_ENV=app_env MOD_INP_SCRIPT=deploy
Unix
- WordPress设置使用
modlan.sh setup
运行 - WordPress销毁使用
modlan.sh destroy
运行
Windows
- WordPress设置使用
modlan setup
运行 - WordPress销毁使用
modlan destroy
运行 - 启动ngrok使用
modlan ngrok
运行 - 停止ngrok使用
modlan ngrokk
运行
对于上述所有命令,如果您不是WSL中的默认用户,也可以将您的Linux用户名作为第二个参数传递。
环境设置
这是一份关于首次设置本地开发环境的指南,而不是针对每个项目。假设您已安装了先决条件。
- 安装Lando(这将安装所需的Docker版本)
- 全局安装WordPress编码标准规则集
composer global require oskarmodig/wpcs
- 当它要求时,请信任它以执行代码
- 安装用于构建和部署项目的脚本
composer global require oskarmodig/lando-scripts
- 将全局Composer bin文件夹添加到您的PATH中
- 在Windows上,这是
%APPDATA%\Composer\vendor\bin
- 在Unix上,这是
~/.composer/vendor/bin
。
- 在Windows上,这是
- 将composer config process-timout更新为0
composer global config process-timeout 0
注意,在Windows/WSL中,必须同时在Windows和WSL中安装oskarmodig/lando-scripts
。
项目设置
环境变量文件
有两种类型的环境变量文件,一种是为每个包特定的("包环境文件"),另一种是为lando应用程序全局的("全局环境文件")。如果您使用全局环境文件,它们的名称必须是.modig.lando.global.env
(可以包含在git中)和/或.modig.lando.local.env
(不应包含在git中)。它们必须放在与您的.lando.yml文件相同的目录中。
包环境文件可以按您的喜好命名和放置,但最好在包根目录中。建议的名称是lando.global.env
和lando.local.env
,同样遵循上述git规则。
可以在全局和包环境文件中放置的内容,在环境变量部分有描述。
lando应用程序
以下是'.lando.yml'文件的模板,这是项目的Lando配置文件
# # SETUP INSTRUCTIONS can be found at https://github.com/oskarmodig/modig-lando-scripts # name: app-name recipe: wordpress proxy: appserver: - app-name.lndo.site - second.app-name.lndo.site - third.app-name.lndo.site pma: - pma.app-name.lndo.site mailhog: - mail.app-name.lndo.site config: webroot: wordpress php: '8.2' excludes: # This is only needed for a WSL setup. Excludes folders from the Docker file sync, which greatly improves performance - wordpress # Excludes the entire WordPress folder - node_modules # You can remove this if not using Node.js - vendor # You can remove this if not using Composer services: appserver: build: - composer global require oskarmodig/lando-scripts # Installs the deploy scripts in the container. extras: - apt-get update -y - apt-get install zip -y - apt-get install nano -y pma: type: phpmyadmin host: - database mailhog: type: mailhog hogfrom: - appserver environment: PATH: "/var/www/.composer/vendor/bin:$PATH" # Adds the global composer bin folder to the PATH, so you can run the scripts from the container. env_file: # Run 'lando rebuild' for changes here in these files to take effect - .lando.public.env - .lando.secret.env events: post-start: - appserver: composer global update # Updates the global composer packages when the container starts tooling: composer: service: appserver mount: cmd: - appserver: cd /app/wordpress/wp-content/plugins/ && ln -snf ../../../app-name app-name # Symlinks the app to the WordPress plugins folder deploy: cmd: - appserver: modig-lando.sh MOD_INP_ENV=app_env MOD_INP_SCRIPT=deploy # Runs the deploy script deploy-test: cmd: - appserver: modig-lando.sh MOD_INP_ENV=app_env MOD_INP_SCRIPT=deploy MOD_INP_TEST=true # Runs the deploy script with the test flag make-pot: cmd: - appserver: modig-lando.sh MOD_INP_ENV=app_env MOD_INP_SCRIPT=make-pot # Creates a .pot file for translations
多个包
上面的路径假设只有一个包,WordPress 和 lando 应用程序已设置在包目录中。如果有多个包,可以将包(git 仓库)放置在子文件夹中,并在项目根目录中有一个单独的 .lando.yml 文件。
您需要按照以下方式修改 lando 文件
env_file
- 将特定包的环境文件添加到env_file
列表中。- 示例
env_file: # Run 'lando rebuild' for changes here in these files to take effect - plugin-dir/.lando.public.env - plugin-dir/.lando.secret.env - theme-dir/.lando.public.env - theme-dir/.lando.secret.env
mount
- 为每个包添加挂载命令。- 示例
mount: cmd: - appserver: cd /app/wordpress/wp-content/plugins/ && ln -snf ../../../plugin-dir plugin-dir - appserver: cd /app/wordpress/wp-content/theme/ && ln -snf ../../../theme-dir theme-dir
- 示例
tooling
- 为每个包添加工具命令。- 示例
deploy-plugin: cmd: - appserver: modig-lando.sh MOD_INP_ENV=plugin_env MOD_INP_SCRIPT=deploy deploy-theme: cmd: - appserver: modig-lando.sh MOD_INP_ENV=theme_env MOD_INP_SCRIPT=deploy
- 示例
输入变量
输入变量在调用 lando 脚本时设置,主要用于确定运行哪个环境和脚本。使用 MOD_INP_ENV
和 MOD_INP_SCRIPT
变量来确定要运行的环境和脚本。
有关如何运行脚本的示例,请参阅 .lando.yml
文件 中的 lando 工具部分。
环境变量
全局环境变量
同样,这些变量是按 lando 应用程序设置的,而不是按包设置。它们主要用于 Windows 和 Linux 脚本(modlan.bat 和 modlan.sh),在 lando 应用程序容器外运行。
一般全局环境变量
设置全局环境变量
用于站点设置的变量,通过 modlan.sh setup
或 modlan.bat setup
运行。
NGROK 全局环境变量
包环境变量
由于 Lando 应用程序可能包含多个包,以下所有环境变量都可以包含包标识符,以区分不同包的变量。例如,MOD_VAR_PACKAGE_NAME
可以在同一文件中设置为 MOD_VAR__PACKAGE1__PACKAGE_NAME
和 MOD_VAR__PACKAGE2__PACKAGE_NAME
。使用的变量由 MOD_INP_ENV
输入变量 确定。
除了按包设置变量外,还可以将它们设置为测试变量,变量名中包含 __TEST__
。例如 MOD_VAR__TEST__PACKAGE_NAME
或 MOD_VAR__PACKAGE1_TEST__PACKAGE_NAME
。
一般包环境变量
部署包环境变量
发布包环境变量
Git 标签包环境变量
部署的默认排除列表
除了这些默认排除项外,还可以设置 MOD_VAR_EXTRA_EXCLUDES
环境变量,将其设置为逗号分隔的字符串,以包含额外的排除项。