wierk / envpress
一个PHP包,通过环境变量简化现代和安全的WordPress实例的配置。
Requires
- php: ^8.1.0
- vlucas/phpdotenv: ^5.6
This package is auto-updated.
Last update: 2024-09-02 22:32:18 UTC
README
一个PHP包,通过一组标准的环境变量简化现代和安全的WordPress实例的配置。
主要功能
- 专为基于Composer的WordPress设置(例如Bedrock)设计
- 静态wp-config.php
- 使用vlucas/phpdotenv从.env文件加载环境变量
- 从受信任的代理(例如负载均衡器)收集事实
- 使用URL(例如MySQL、SMTP)附加支持服务
- 使用环境变量配置多站点网络
- 使用标志禁用原生WordPress功能(例如XML-RPC、评论、oEmbed)
- 默认强化WordPress:禁用文件修改并隐藏版本
动机
WordPress的标准设置涉及维护一个wp-config.php文件来设置基本配置选项,如路径、数据库连接和安全盐。除了实际配置值之外,该文件的源代码在每个实例中重复,几乎没有变化。其他常见的配置,如SMTP服务器凭据和禁用XML-RPC,必须单独处理,远离wp-config.php,在自定义(子)主题或使用多个第三方插件中。
此包旨在简化配置过程并减少大多数WordPress实例的维护工作量。它依赖于一组标准的环境变量(见下表),而不是样板PHP代码来配置实例。
入门指南
-
设置基于Composer的WordPress项目
最简单的方法是使用Composer 创建新的Bedrock项目
composer create-project roots/bedrock
-
通过Composer安装此包
composer require wierk/envpress
-
设置环境变量
在Web服务器或PHP配置(建议用于生产)中配置环境变量,或者,作为替代,将它们添加到项目根目录下的.env文件中(常见于开发)。
运行WordPress实例的最小环境变量集
WP_HOME = https://example.com WP_SITEURL = https://example.com/wp DATABASE_URL = mysql://username:password@hostname:port/database
提供WordPress盐的env变量集
SALT_AUTH_KEY = put your unique phrase here SALT_SECURE_AUTH_KEY = put your unique phrase here SALT_LOGGED_IN_KEY = put your unique phrase here SALT_NONCE_KEY = put your unique phrase here SALT_AUTH_SALT = put your unique phrase here SALT_SECURE_AUTH_SALT = put your unique phrase here SALT_LOGGED_IN_SALT = put your unique phrase here SALT_NONCE_SALT = put your unique phrase here
-
将wp-config.php的内容替换为以下内容
<?php require_once dirname(__DIR__) . '/vendor/autoload.php'; \EnvPress\EnvPress::createWithBedrockDefaults(__DIR__)->bootstrap(); require_once ABSPATH . 'wp-settings.php';
从Bedrock模板开始,根配置目录现在可以删除。
环境变量
EnvPress使用以下表中列出的一组环境变量设置WordPress实例。如果环境变量不存在,则使用相应的默认值。这些默认值被选择以尽可能接近标准、未修改的WordPress安装,以避免意外更改。以APP_
为前缀的env变量明确保留供底层应用程序使用,并且永远不会被此包使用。
支持服务URL
使用URL附加支持服务,如数据库、缓存系统或SMTP服务器。这些URL将所有必要连接细节,如主机名、端口、访问凭证和其他相关参数,合并为一个可管理的字符串。
在URL中,如果用户名或密码包含特殊字符($&+,/:;=?@
),则必须进行URL编码。
数据库URL/DSN
DATABASE_URL=mysql://${USER}:${PASS}@${HOST}:${PORT}/${DATABASE}?ssl-mode=REQUIRED
查询参数
ssl-mode
- 如果设置为REQUIRED
,则需要加密连接,如果无法建立连接,则失败。
邮件URL
MAILER_URL=smtp://${USER}:${PASS}@${HOST}:${PORT}?encryption=tls
查询参数
加密
- 定义SMTP连接上使用的加密方式:默认为tls
或ssl
。from
- 如果存在,则强制将发件人电子邮件地址设置为指定的地址,覆盖MAILER_FROM_ADDRESS
。