Studio 24 WordPress多环境配置
该存储库包含用于WordPress的Studio 24的标准配置设置,该设置基于当前环境加载不同的配置。这使您可以为不同的环境(例如生产和分阶段)具有不同的站点配置(例如调试模式)。
信用是由于FocusLabs EE Master Config造成的,他为我提供了配置文件组织的灵感。
请注意,当前版本为V2,如果您需要使用较旧的V1版本,请参阅V1版本。
贡献
WordPress多环境配置是一个开源项目。了解有关如何贡献的更多信息。
安全问题
如果您在WordPress多环境配置中发现安全漏洞,请遵循我们的披露程序。
它如何工作
该系统检测当前网站所在的环境,并为该环境加载相关的配置文件。
默认情况下,环境由主机名定义,尽管您还可以将其设置为环境变量。
然后根据当前环境加载配置文件。有支持为敏感数据加载本地配置文件,该文件旨在不投入版本控制。
配置文件
加载了多达三个不同的配置文件:
- 默认配置(在
wp-config.default.php中,例如共享设置,例如$table_prefix) - 环境配置(在
wp-config.{ENVIRONMENT}.php - 可选的本地设置(在
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上!
- 通过WordPress-Multi-env-config.zip下载所需的文件
- 首先对您现有的
wp-config.php文件进行备份。 - 将以下文件从此存储库复制到您的WordPress安装:
wp-config.default.php
wp-config.env.php
wp-config.php
wp-config.load.php
- 设置您希望通过文件
wp-config.env.php支持的正确环境,请参见上面的文档。 - 为每个环境创建一个
wp-config.{environment}.php文件。您可以使用此存储库中提供的示例文件:
wp-config.development.php
wp-config.production.php
wp-config.staging.php
wp-config.local.php
- 查看您的备份
wp-config.php文件,然后将配置设置复制到默认配置文件或环境配置文件。建议:- 如果设置在所有环境中相同,请添加到
wp-config.default.php - 如果设置在一个环境中是唯一的,请添加到
wp-config.{environment}.php - 如果设置敏感(例如数据库密码)添加到
wp-config.local.php
- 如果设置在所有环境中相同,请添加到
- 请记住在
wp-config.default.php中更新身份验证的唯一键和盐 - 如果使用版本控件排除
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\');
