10up / wpsnapshots

WordPress 同步工具项目。


README

该项目已被弃用,转而使用新的 SNAPSHOTS,这是一个作为 WP CLI 命令构建的项目。

WordPress 项目分享工具。

Support Level Release Version MIT License

目录

概述

WP Snapshots 是一个用于 WordPress 的项目分享工具。通过命令行操作,此工具使开发者能够轻松地将项目的快照推送到云端以与团队成员共享。团队成员可以拉取快照,无论是创建新的 WordPress 开发环境还是添加到现有安装,这样“一切都能正常工作”。不再需要下载文件,匹配 WordPress 版本,SQL 数据库备份,修复表前缀,运行搜索/替换命令等。WP Snapshots 甚至可以与多站点一起使用。

WP Snapshots 将快照存储在集中的存储库(AWS)中。用户使用团队的 AWS 凭据设置 WP Snapshots。然后,用户可以推送、拉取和搜索快照。当用户推送快照时,当前环境的实例(wp-content/、数据库等)被推送到亚马逊并关联到特定的项目短名。当拉取快照时,文件将从云中拉取,要么通过创建带有拉取数据库的新 WordPress 安装,要么通过替换 wp-content/ 并智能地合并数据库。WP Snapshots 将确保您的本地 WordPress 版本与快照相匹配。

快照可以包含文件、数据库或两者都包含。快照文件(wp-content/)和 WordPress 数据库表存储在 Amazon S3 中。一般的快照元数据存储在 Amazon DynamoDB 中。

升级

WP Snapshots 2.0+ 允许用户独立存储数据库和文件。因此,某些快照可能仅包含文件或反之亦然。因此,WP Snapshots 2.0 以下版本在尝试拉取仅包含文件或数据库的 2.0+ 快照时会出错。WP Snapshots 2.0 与旧快照配合得很好。如果您正在运行 WP Snapshots 的旧版本,请立即升级。

安装

WP Snapshots 作为全局 Composer 包使用最为方便。强烈建议您在开发环境内部(虚拟机或容器内)运行 WP Snapshots。假设您已安装 Composer/MySQL 并在 GitHub/10up 组织内设置了 SSH 密钥,请按照以下步骤操作:

通过 Packagist 将 WP Snapshots 安装为全局 Composer 包

composer global require 10up/wpsnapshots

如果全局 Composer 脚本不在您的路径中,请将其添加

export PATH=~/.composer/vendor/bin:$PATH

如果您正在使用 VVV,请使用此命令将全局 Composer 脚本添加到您的路径中

export PATH=~/.config/composer/vendor/bin:$PATH

配置

WP Snapshots 目前依赖于 AWS 来存储文件和数据。因此,您需要连接到 AWS 上托管的“存储库”。我们已编译了有关如何在 AWS 上设置存储库的 说明

  • wpsnapshots configure <repository> [--region] [--aws_key] [--aws_secret] [--user_name] [--user_email]

    此命令设置 WP Snapshots 的 AWS 信息和用户信息。如果未向命令传递可选参数,则用户将被提示输入它们,除区域外,区域将默认为 us-west-1

    示例用法带提示

    wpsnapshots configure 10up
    

    无提示使用示例

    wpsnapshots configure yourcompany --aws_key=AAABBBCCC --aws_secret=AAA111BBB222 --user_name="Jane Smith" --user_email="noreply@yourcompany.com"
    

如果WP快照尚未为您的团队/公司设置,您需要创建WP快照仓库

wpsnapshots create-repository <repository>

如果已经创建了一个仓库,此命令将不会执行任何操作。

使用方法

WP快照围绕推送、拉取和搜索快照。WP快照可以推送任何设置的WordPress安装。WP快照可以拉取任何快照,无论WordPress是否设置。如果在拉取时未设置WordPress,WP快照将引导您设置它。

每个操作的文档如下

  • wpsnapshots push [<快照ID>] [--exclude_uploads] [--exclude] [--scrub] [--path] [--db_host] [--db_name] [--db_user] [--db_password] [--verbose] [--small] [--slug] [--description] [--include_files] [--include_db]

    此命令将WordPress安装的快照推送到仓库。完成后,命令将返回一个快照ID,您可以将它传递给团队成员。在推送快照时,您可以包括文件和/或数据库。

    WP快照默认擦除所有用户信息,包括姓名、电子邮件和密码。

    推送快照不会用相同名称的旧快照替换。关于这一点已有讨论。似乎不删除旧快照(否则我们必须处理权限)更容易且更安全。

    --small将从每种帖子类型中提取250篇帖子以及相关的术语和帖子元数据,并删除其余数据。这将修改您的本地数据库,所以请小心。

  • wpsnapshots pull <快照ID> [--path] [--db_host] [--db_name] [--db_user] [--db_password] [--verbose] [--include_files] [--include_db] [--overwrite_local_copy]

    此命令将现有快照从仓库拉取到当前WordPress安装中,完全替换您的数据库和/或wp-content目录。如果不存在WordPress安装,它将提示您创建它。此命令将交互式提示您映射URL以进行搜索和替换。如果快照是多站点,您将为网络中的每个博客交互式映射URL。此命令还将(可选地)匹配您当前版本的WordPress与快照。

    拉取后,您可以使用用户wpsnapshots、密码password登录为管理员。

  • wpsnapshots search <搜索文本>... [--format]

    此命令在仓库中搜索快照。<搜索文本>将与项目名称和作者进行比较。可以使用多个查询来搜索不同项目中的快照。搜索"*"将返回所有快照。

    --format将使用所选格式渲染输出。支持的格式是tablejson。默认值是table

  • wpsnapshots delete <快照ID> [--verbose]

    此命令从仓库中删除快照。

身份访问管理和安全性

快照旨在存储开发环境。它不是存储云中敏感生产数据的解决方案。

快照依赖于AWS进行访问管理。每个快照都与一个项目短名相关联。使用AWS IAM,可以限制特定用户访问特定项目。确保您的AWS云环境得到适当的安全保护是您的责任。

个人身份信息

创建快照时,快照会自动擦除用户信息。擦除的数据仅包括标准WordPress数据,例如用户名、密码、某些用户元数据等。某些插件或自定义代码可能在其他地方存储PII(个人可识别信息)。强烈建议在推送快照到AWS之前审查您的项目以检查PII。

故障排除

  • WP快照无法建立与数据库的连接

    如果在虚拟机或容器中运行的开发环境中调用WP快照时发生这种情况。WP快照从wp-config.php中读取数据库凭证。要从主机机器连接到数据库,数据库主机地址需要不同。对于VVV,它是192.168.50.4,对于WP Local Docker,它是127.0.0.1。您可以通过命令行使用--db_host选项传递主机覆盖。对于VVV,您可能还需要传递特殊的数据库用户名和密码,如--db_user=external --db_password=external。我们建议在开发环境中运行WP快照。

  • 我收到了错误:env: mysqldump: No such file or directory

    您没有安装mysqldump。这很可能是您在容器或虚拟机外运行WP快照导致的。要么安装mysqldump,要么在容器或虚拟机内运行WP快照。

  • 在拉取过程中,MySQL在替换数据库时出现超时或错误。

    如果您正在拉取大型数据库,可能会遇到各种内存和MySQL优化问题。尝试以root(--db_user=root)身份运行WP快照,以便它可以尝试调整大型导入的设置。

  • wpsnapshots搜索显示签名过期错误。

    当您的本地系统时钟偏移时,会出现这种情况。要修复

    • 如果您使用VVV,请尝试vagrant reload
    • 如果您使用Docker,请尝试docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'
  • wpsnapshots推送或拉取崩溃。

    在引导WordPress时最可能发生致命错误。查看您的错误日志以了解发生了什么。通常,这发生在PHP类(Memcached)缺失的情况下,这是由于没有在您的环境中(容器或虚拟机)运行WP快照导致的。

Windows

WP快照已成功用于Windows Subsystem for Linux

支持级别

活跃:10up正在积极开发此项目,我们预计将在可预见的未来继续工作,包括将测试更新到WordPress的最新版本。欢迎提交错误报告、功能请求、问题解答和拉取请求。

喜欢您看到的内容吗?

Work with us at 10up