wierk/envpress

一个PHP包,通过环境变量简化现代和安全的WordPress实例的配置。

dev-main 2024-05-02 21:54 UTC

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代码来配置实例。

入门指南

  1. 设置基于Composer的WordPress项目

    最简单的方法是使用Composer 创建新的Bedrock项目

    composer create-project roots/bedrock
  2. 通过Composer安装此包

    composer require wierk/envpress
  3. 设置环境变量

    在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
  4. 将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连接上使用的加密方式:默认为tlsssl
  • from - 如果存在,则强制将发件人电子邮件地址设置为指定的地址,覆盖MAILER_FROM_ADDRESS

致谢

Wierk贡献者创建和维护。在MIT许可下发布。