wordpress multi env config

Delphi源码 2025-08-12

Studio 24 WordPress多环境配置

该存储库包含用于WordPress的Studio 24的标准配置设置,该设置基于当前环境加载不同的配置。这使您可以为不同的环境(例如生产和分阶段)具有不同的站点配置(例如调试模式)。

信用是由于FocusLabs EE Master Config造成的,他为我提供了配置文件组织的灵感。

请注意,当前版本为V2,如果您需要使用较旧的V1版本,请参阅V1版本。

贡献

WordPress多环境配置是一个开源项目。了解有关如何贡献的更多信息。

安全问题

如果您在WordPress多环境配置中发现安全漏洞,请遵循我们的披露程序。

它如何工作

该系统检测当前网站所在的环境,并为该环境加载相关的配置文件。

默认情况下,环境由主机名定义,尽管您还可以将其设置为环境变量。

然后根据当前环境加载配置文件。有支持为敏感数据加载本地配置文件,该文件旨在不投入版本控制。

配置文件

加载了多达三个不同的配置文件:

  1. 默认配置(在wp-config.default.php中,例如共享设置,例如$table_prefix
  2. 环境配置(在wp-config.{ENVIRONMENT}.php
  3. 可选的本地设置(在wp-config.local.php

环境价值

默认情况下,环境值为:

  • production (实时网站)
  • staging (测试网站用于客户审查)
  • development (网站的本地开发副本)

您可以通过将它们添加到wp-config.env.php文件中添加其他环境值。

设置环境

目前的环境以三种方式之一之一之一:

环境变量

您可以设置一个称为WP_ENV的环境变量,以设置网站在Web服务器配置中使用的环境。

这通常是通过虚拟主机声明中的Apache完成的:

 SetEnv WP_ENV production

如果您不使用Apache,请咨询您的Web服务器文档。

服务器主机名

当前的环境也可以从将主机名与wp-config.env.php中的域设置匹配。

WP-CLI

如果您使用的是WP-CLI,则可以使用'.ENV'文件指定环境。

您需要创建一个名为.env的文件,然后只需将当前环境写入该文件中。

例子:

 development

此文件需要放置在wp-config中。

建议您不要将此文件添加到版本控件中。

wp-config.env.php文件

您需要编辑wp-config.env.php文件以定义与当前环境URL相关的某些设置。无论使用哪种方法设置环境,都需要设置此设置,因为所有方法通过此文件中包含的设置设置WordPress URL。

该文件包含一个简单的数组,由:

 environment names =>
    domain  => The domain name.
               This can also be an array of multiple domains.
               You can also use a wildcard * to indicate all sub-domains at a domain, which is useful when using
               WordPress Multisite. If you use wildcards, set the domain should to a single string, not an array.
    path    => If WordPress is installed to a sub-folder set it here.
    ssl     => Whether SSL should be used on this domain. If set, this also sets FORCE_SSL_ADMIN to true.

示例用法:

 $env = [
    'production'  => [
        'domain' => 'domain.com',
        'path'   => '',
        'ssl'    => false,
    ],
    'staging'     => [
        'domain' => 'staging.domain.com',
        'path'   => '',
        'ssl'    => false,
    ],
    'development' => [
        'domain' => 'domain.local',
        'path'   => '',
        'ssl'    => false,
    ],
];

如果您将本地主机用于本地测试网站,只需将开发主机案例设置为localhost而不是domain.local

设置子文件夹时的用法示例,并通过SSL为实时网站提供服务:

    'production'  => [
        'domain' => 'domain.com',
        'path'   => 'blog',
        'ssl'    => true,
    ],

用于在环境中使用多个域的用法。

    'production'  => [
        'domain' => ['domain.com', 'domain2.com'],
        'path'   => '',
        'ssl'    => false,
    ],

使用通配符进行WordPress多站点时用法。

    'production'  => [
        'domain' => '*.domain.com',
        'path'   => '',
        'ssl'    => false,
    ],

安装

请注意,这需要PHP5.4或更高。您至少应该在PHP5.6上!

  1. 通过WordPress-Multi-env-config.zip下载所需的文件
  2. 首先对您现有的wp-config.php文件进行备份。
  3. 将以下文件从此存储库复制到您的WordPress安装:
 wp-config.default.php
wp-config.env.php
wp-config.php
wp-config.load.php
  1. 设置您希望通过文件wp-config.env.php支持的正确环境,请参见上面的文档。
  2. 为每个环境创建一个wp-config.{environment}.php文件。您可以使用此存储库中提供的示例文件:
 wp-config.development.php
wp-config.production.php
wp-config.staging.php
wp-config.local.php
  1. 查看您的备份wp-config.php文件,然后将配置设置复制到默认配置文件或环境配置文件。建议:
    • 如果设置在所有环境中相同,请添加到wp-config.default.php
    • 如果设置在一个环境中是唯一的,请添加到wp-config.{environment}.php
    • 如果设置敏感(例如数据库密码)添加到wp-config.local.php
  2. 请记住在wp-config.default.php中更新身份验证的唯一键和盐
  3. 如果使用版本控件排除wp-config.local.php ,则下面的示例:git:
 # .gitignore
wp-config.local.php

现在,您应该能够在每个不同的环境中加载网站,一切都很好!现在应该安全地删除您的备份wp-config.php文件。

将您的配置文件移到文档根部之外

如果要在文档root之外存储配置文件以获得额外的安全性,则非常容易。

只需将所有配置文件移动到wp-config.php本身之外,将其移至另一个文件夹(可以在DOC root之外)。接下来,在wp-config.php中修改了wp-config.load.php的要求路径,以指向新位置,一切都很好!

示例目录结构:

 config/
       wp-config.default.php   (Config folder outside of doc root)
       wp-config.development.php
       wp-config.env.php
       wp-config.load.php
       wp-config.local.php
       wp-config.production.php
       wp-config.staging.php
web/
    wp-config.php              (Your website doc root, where WordPress is installed) 

示例wp-config.php

 /** Load the Studio 24 WordPress Multi-Environment Config. */
require_once(ABSPATH . '../config/wp-config.load.php');
下载源码

通过命令行克隆项目:

git clone https://github.com/studio24/wordpress-multi-env-config.git