mmoollllee/bedrock-deployer

此包已被 废弃 并不再维护。作者建议使用 mmoollllee/bedrock-deployer-7 包。

Roots Bedrock 的部署者配方

v1.0.6 2023-10-13 12:18 UTC

This package is auto-updated.

Last update: 2023-10-13 12:19:03 UTC


README

Deployer 7 的配方用于 Roots Bedrock,也支持 Roots SageRoots Trellis 环境。基于 FlorianMoser 的作品。

Trellis 提供了基于 Ansible 的强大部署功能。但是,如果您只想在运行自定义过程时部署 Bedrock,Deployer 是一个快速且简单的替代方案。

也许您甚至尝试将 Bedrock 部署到像 Plesk 这样的共享主机。根据您的托管环境,这可能可行。

注意事项:在尝试部署配方之前,请确保您已经备份了本地以及远程文件。在提供错误路径时,文件可能会被轻易覆盖!您完全负责使用此处提供的配方。

需要此功能的人

希望使用 Deployer v7 部署 Bedrock 应用程序的 PHP 开发者。

安装

使用 Composer

$ composer require mmoollllee/bedrock-deployer-7

设置您的 Trellis & Bedrock 环境,并创建一个存储库。存储库可能包含 trellis 和站点文件夹,或 bedrock 项目 示例

在项目根目录中创建一个 deploy.php 文件,并配置您的环境。您可能想要使用 examples/deploy.full-example.php 并查看其所需的 配置文件。如果是这样,首先运行将创建一个 .env.deployer 并询问您项目的详细信息。

使用 vendor/bin/dep -vvv deploy 进行首次运行并选择目标环境。

配方

此包提供了一些配方,帮助您完成 Bedrock 部署。根据需要要求每个包或使用 examples/deploy.full-example.php 中的示例配置文件,并查看其所需的 配置文件

可用的配方

Bedrock 数据库

提供任务以从服务器导出数据库并将其导入到您的开发机器,反之亦然。

Trellis / VM / Vagrant 环境

要求

  • 在您的本地机器上运行 虚拟机(Vagrant、Lima 等)
  • 在您的虚拟机和远程机器上运行 WP CLI

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/bedrock_db.php';

需要设置以下 Deployer 环境变量

  • local_root:本地主机机器上网站根目录的绝对路径
  • trellis_dir:包含 Trellis 的目录的绝对路径
  • vm_root:虚拟机内部网站的绝对路径(应与 local_root 相匹配)
  • vm_shell:虚拟机 SSH 模式(例如 vagrant ssh -- -t cd {{vm_root}}

示例

set( 'local_root', dirname( __FILE__ ) );
set( 'trellis_dir', dirname( __FILE__ ) . '/../trellis' );
set( 'vm_root', '/srv/www/domain.com/current' );
set( 'vm_shell', 'trellis vm shell --workdir ' . get('vm_root') . ' --' );

Valet+ 环境

要求

  • Valet+ 上运行的 Bedrock

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/bedrock_valetplus_db.php';

需要设置以下 Deployer 环境变量

  • local_root:本地主机机器上网站根目录的绝对路径

示例

set( 'local_root', dirname( __FILE__ ) );

任务 pull:db

在服务器上导出数据库,并将其导入到本地Vagrant数据库中,同时删除以前的数据。在导入新数据之前,在本地_root目录中备份本地数据库。

导入后,WordPress的URL将从服务器URL转换为本地URL,因此导入后WordPress安装将正常工作。

数据库凭据和URL从远程和本地.env文件中读取。因此,请确保这些文件是最新的。

任务 push:db

从本地Vagrant数据库导出数据库,并将其导入到远程服务器,同时删除以前的数据。在导入新数据之前,在服务器当前发布目录中备份远程数据库。

导入后,WordPress的URL将从本地URL转换为远程URL,因此导入后WordPress安装将正常工作。

数据库凭据和URL从远程和本地.env文件中读取。因此,请确保这些文件是最新的。

Bedrock .env

提供管理服务器上.env文件的任务。

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/bedrock_env.php';

无需设置特殊的Deployer环境变量。

任务 bedrock:env

尝试从先前版本复制.env文件到当前版本。如果没有先前版本或没有.env文件,则创建.env文件并提示用户输入凭据。

在创建新的.env文件时,此任务还会生成WordPress的盐值。

Bedrock 杂项

提供Bedrock的杂项任务。

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/bedrock_misc.php';

无需设置特殊的Deployer环境变量。

任务 bedrock:vendors

在您的服务器上为Bedrock运行composer install

通用

提供通用部署任务。

要求

  • 在Vagrant以及远程机器上运行WP CLI

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/common.php';

无需设置特殊的Deployer环境变量。

任务 activate:plugins

在远程服务器上激活所有插件。

文件传输

提供上传/下载文件到/从同步目录的任务。

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/filetransfer.php';

需要设置以下 Deployer 环境变量

  • sync_dirs: 数组路径,将与 $absoluteLocalPath => $absoluteRemotePath 同时更新。如果路径有尾随斜杠,则仅传输其内容,而不是目录本身。

示例

set( 'sync_dirs', [
    dirname( __FILE__ ) . '/web/app/uploads/' => '{{deploy_path}}/shared/web/app/uploads/',
] );

任务 pull:files

将从每个 $absoluteRemotePath 拉取所有文件到每个 $absoluteLocalPath。新文件将被添加,现有文件将被更新,但仅本地存在的文件不会被删除。

为确保不丢失文件,每个 $absoluteLocalPath 及其内容都将备份在一个zip文件中,该文件将添加到 $absoluteLocalPath。之前拉取的现有备份不包括在新的备份中。

如果您希望不创建备份就拉取文件,请考虑使用任务 pull:files-no-bak

任务 push:files

将所有文件从每个 $absoluteLocalPath 推送到每个 $absoluteRemotePath。新文件将被添加,现有文件将被更新,但仅远程服务器上存在的文件不会被删除。

为确保不丢失文件,每个 $absoluteRemotePath 及其内容都将备份在一个zip文件中,该文件将添加到 $absoluteRemotePath。之前推送的现有备份不包括在新的备份中。

如果您希望不创建备份就推送文件,请考虑使用任务 push:files-no-bak

Sage

提供部署Roots Sage主题的任务。

要求

  • Roots Sage 10(也支持Sage 9,有关如何与Sage 9一起使用的示例,请参阅包含的 /examples/deploy.full-example.php)

使用以下内容将它们加载到您的 deploy.php 文件中

require 'vendor/mmoollllee/bedrock-deployer-7/recipe/sage.php';

需要设置以下 Deployer 环境变量

  • theme_path: 相对于发布路径的主题路径
  • local_root:本地主机机器上网站根目录的绝对路径

示例

set( 'local_root', dirname( __FILE__ ) );
set( 'theme_path', 'web/app/themes/theme-name' );

任务 sage:vendors

在Sage主题目录内运行composer install

任务 sage:assets

在本地机器上编译Sage资源,然后将其上传到远程服务器上的主题目录(覆盖以前的资源!)。

Trellis

您可能不想使用这些配方来部署Trellis。Trellis有其自己的强大部署过程。然而,您可以使用Trellis进行开发,并仅使用这些配方来部署Bedrock。

您可能在您的存储库中有一个网站和一个trellis目录,或者只有一个没有网站文件夹的bedrock-style存储库。此任务处理这两种情况。

任务树形图:移除

将检查是否存在 /site 文件夹。如果存在,将删除远程的 /trellis 目录并将 /site 的内容移动到根目录。请在部署后但在修改符号链接之前使用此任务。

高级定制字段 Pro

ACF PRO 是一款强大的 WordPress 插件,用于构建用户友好的自定义字段等。通过 composer 安装 Pro 版本需要 auth.json 进行认证。有关获取内容的官方文档,请参阅:如何获取其内容的官方文档

任务 bedrock:acf

将本地 auth.json 文件上传到发布目录。