itsahappymedium / wp-deployer
轻松部署WordPress网站。
Requires
- php: ^7.3|^8.0
- deployer/dist: ^6.8
- paragonie/random-lib: ^2.0
- twig/twig: ^3.4.3
- wp-cli/wp-cli-bundle: ^2.6
README
轻松部署WordPress网站。
此包基本上是WordPress网站的Deployer "食谱"。
安装
composer require-dev itsahappymedium/wp-deployer
然后你需要在项目的根目录下创建一个包含以下内容的 deploy.php
文件
<?php require_once('./vendor/autoload.php'); new WP_Deployer(); ?>
你可以选择性地将文件路径作为参数传递给 WP_Deployer
类,以便使用除 config.yml
之外的其他文件。
之后,你应该可以使用 dep
命令。运行它以确认安装成功并查看您可以使用的命令列表。
注意:Deployer 和 WP-CLI 将作为依赖项安装。Deployer 可以通过 vendor/bin/dep
使用,WP-CLI 可以通过 vendor/bin/wp
使用。
最后一点,请确保以下内容包含在您的 .gitignore
文件中,以避免将它们提交到您的仓库
/config.yml
/db_backups
/tmp
配置
在项目的根目录下创建一个 config.yml
文件。将 config-example.yml 作为起点。
注意:您需要确保将您的 config.yml
文件添加到您的 .gitignore
文件中,以免将其提交到您的仓库,因为该文件将包含敏感凭证。
变量
这些变量可以在您的 config.yml
文件中设置,也可以通过 deploy.php
文件中的 set
函数设置。
WP-Deployer 变量
这些变量是 WP-Deployer 自定义的。
* 粗体变量名是必需设置的。
extra_files 默认值
auth.json
{{wp_content_dir}}/themes/{{theme_name}}/*.css
{{wp_content_dir}}/themes/{{theme_name}}/*.map
{{wp_content_dir}}/themes/{{theme_name}}/js/*.js
{{wp_content_dir}}/themes/{{theme_name}}/js/*.map
Deployer 变量
这些变量是 Deployer 内置的。您可以在以下链接中了解更多信息:https://deployer.org/docs/6.x/configuration。
* 粗体变量名是必需设置的。
* 斜体默认值是 WP-Deployer 自定义的。
clear_paths 默认值
.git
templates
.gitignore
.lando.yml
auth.json
composer.json
composer.lock
config.yml
deploy.php
readme.md
shared_dirs 默认值
content/uploads
shared_files 默认值
.htaccess
robots.txt
wp-config.php
覆盖变量
您可以通过在 config.yml
文件中定义它们轻松覆盖上述任何变量。您也可以通过在 deploy.php
文件中使用 Deployer 函数 来覆盖或添加它们,如下所示
<?php require_once('./vendor/autoload.php'); new WP_Deployer(); use function Deployer\{ add, set }; add('extra_files', array( 'scripts.js', 'lib/bootstrap/bootstrap.css' )); set('ssh_multiplexing', false); ?>
模板
模板文件如下: .htaccess
、robots.txt
和 wp-config.php
。WP-Deployer 包含了这些文件的默认模板,但也可以通过将它们放置在您的 templates
目录中来自定义。我们使用 Twig 来渲染模板。查看此包中的 templates
目录以获取示例。
可以将模板与特定的阶段相关联,方法是在 .twig
文件扩展名之前放置该阶段名称(例如:robots.txt.staging.twig
)。
(注意:将来将提供在此处添加自定义模板的功能。)
使用方法
运行 dep list
和/或 dep help <command>
以获取有关这些命令的更多信息。
dep deploy <stage>
将您的网站部署到 stage
(在您的 config.yml
文件中定义)。
dep db:<push/pull> <stage>
从/到 stage
导出和上传/下载数据库,然后导入它。
dep db:backup:<local/remote> [stage]
从 stage
(或本地)导出数据库。
dep uploads:<push/pull> <stage>
将你的content/uploads
目录的内容下载/上传到stage
。
dep shared:推送/拉取 阶段
将shared_dirs
中列出的所有目录的所有内容下载/上传到stage
。
dep db:fix
提取你数据库的本地副本,将所有utf8mb4_unicode_520_ci
替换为utf8mb4_unicode_ci
,然后重新导入。这解决了服务器使用与本地不同的MySQL版本时的问题。[问题链接]
dep setup:本地/远程 阶段
生成模板文件,如果尚未设置,则为WordPress设置数据库。如果设置了新数据库,用户名和密码(随机生成)将在终端显示。请注意,将生成新的wp-config.php
文件,其中包含新生成的密钥。
dep setup:init 阶段
一个便捷命令;按照以下顺序运行以下命令:dep setup:local 阶段
,dep uploads:pull 阶段
,dep db:pull 阶段
。
许可证
MIT。有关更多信息,请参阅license.md文件。