sourcebroker/deployer-extended-wordpress-composer

基于Composer的WordPress部署,使用deployer.org。

9.0.0 2023-02-07 22:03 UTC

This package is auto-updated.

Last update: 2024-09-08 01:18:37 UTC


README

它做什么?

此包提供了使用deployer (deployer.org) 部署WordPress的部署任务,同时还提供了同步数据库和媒体文件的任务。

预期部署将与基于capistrano的https://roots.io/bedrock/兼容

依赖项

此包依赖于以下包

安装

  1. 使用composer安装包

    composer require sourcebroker/deployer-extended-wordpress-composer
    
  2. 如果您使用deployer作为phar,请将以下行放入您的deploy.php文件中

    require __DIR__ . '/vendor/autoload.php';
    new \SourceBroker\DeployerExtendedWordpressComposer\Loader();
    
  3. 从您的deploy.php中删除任务 "deploy"。否则,您将覆盖在deployer/deploy/task/deploy.php中定义的部署任务

  4. 示例deploy.php文件

    <?php
    
    namespace Deployer;
    
    require_once(__DIR__ . '/vendor/sourcebroker/deployer-loader/autoload.php');
    new \SourceBroker\DeployerExtendedWordpressComposer\Loader();
    
    set('repository', 'git@my-git:my-project.git');
    
    host('live')
        ->setHostname('111.111.111.111')->port(22)
        ->setRemoteUser('www-data')
        ->set('branch', 'master')
        ->set('public_urls', ['https://www.example.com/'])
        ->set('deploy_path', '/var/www/example.com.live');
    
    host('beta')
        ->setHostname('111.111.111.111')->port(22)
        ->setRemoteUser('www-data')
        ->set('branch', 'beta')
        ->set('public_urls', ['https://beta.example.com/'])
        ->set('deploy_path', '/var/www/example.com.beta');
    
    host('dev')
        ->set('public_urls', ['https://example-com.local/'])
        ->set('deploy_path', getcwd());
    

请注意host('dev');的声明。这对于数据库任务声明域名替换和存储数据库转储的路径是必需的。

同步数据库

使用sourcebroker/deployer-extended-database同步数据库。从实时实例到本地实例同步数据库的命令示例

dep db:pull live

您也可以像这样从实时实例复制数据库到测试实例

dep db:copy live --options=target:beta

域名替换

"post_command"任务"db:import:post_command:wp_domains"将更改在"public_urls"中声明的域名。域名替换是通过来自wp-cli/wp-cli的cli命令"search-replace"完成的。

请注意,每个实例应有相同数量的"public_urls",因为域名替换是为每对相应的URL进行的。

查看以下示例以获得灵感

host('live')
    ->setHostname('111.111.111.111')
    ->setRemoteUser('www-data')
    ->set('public_urls', ['https://www.example.com', 'https://sub.example.com'])
    ->set('deploy_path', '/var/www/example.com.live');

host('beta')
    ->setHostname('111.111.111.111')
    ->setRemoteUser('www-data')
    ->set('public_urls', ['https://beta.example.com', 'https://beta-sub.example.com'])
    ->set('deploy_path', '/var/www/example.com.beta');

host('dev')
    ->set('public_urls', ['https://example-com.dev', 'https://sub-example-com.dev'])
    ->set('deploy_path', getcwd());

如果您这样做

dep db:pull live

以下命令将在数据库导入后自动执行

wp search-replace https://www.example.com https://example-com.dev
wp search-replace https://sub.example.com https://sub-example-com.dev

我应该使用 "deployer-extended-wordpress" 还是 "deployer-extended-wordpress-composer"?

sourcebroker/deployer-extended-wordpress中,WordPress和第三方插件是手动安装的。好处是您可以自动更新WordPress和插件。这对于预算较低的WordPress网站来说可能更可取。

sourcebroker/deployer-extended-wordpress-composer 中,WordPress 和第三方插件使用 composer 进行安装。这种方式可以让你更好地控制安装内容,但同时安装新的 WordPress 或新的插件版本时,你首先需要修改 composer.json 或执行 composer update(取决于升级的大小)。然后你需要提交 composer.json / composer.lock 并进行部署,这将安装 WordPress 和插件的最新版本。这是一项不能轻易自动化的额外工作。这种解决方案的一个额外优点是,你可以轻松地清理受感染的 WordPress/plugins 文件,因为每次部署时,所有的 php 文件都是最新的(来自你的 git 和 composer 仓库的部分)。