devuri/wp-env-app

此软件包已被废弃,不再维护。作者建议使用 devuri/wpframework 软件包。

一个基于 WordPress 的项目,用于创建使用环境变量的网络应用程序。

安装: 147

依赖关系: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:项目

v0.8.0 2024-02-11 15:24 UTC

README

一个用于您下一个 WordPress 网络应用程序的轻量级框架。此框架专注于提供良好的组织结构,使开发、部署和维护 WordPress 网站和网络应用程序更加简单。

注意

⚠️ 开发中:请注意:此框架目前正在积极开发中。我们欢迎社区参与,请随时通过拉取请求或报告问题来贡献。

特性

  • 模块化结构:促进 WordPress 开发的模块化方法,允许您将代码组织成独立的模块或包,以更好地组织代码和重用。
  • 依赖管理:借助 Composer,您可以轻松管理 WordPress 插件、主题和库。它提供了一个 composer.json 文件,可以轻松包含和更新依赖关系。
  • 环境配置:通过使用 .env 文件实现特定于环境的配置的概念。您可以为不同的环境(例如,开发、测试、生产)定义环境变量,以轻松管理数据库连接、API 密钥和其他特定于环境的设置。
  • 增强安全性:通过将敏感文件移出网站根目录,有助于提高 WordPress 安装的安全性。关键文件存储在公开目录之外,防止直接访问。
  • 版本控制友好:鼓励使用 Git 等版本控制系统。通过将核心 WordPress 文件与您的项目文件分开,可以更容易地管理和跟踪自定义代码的更改,同时将 WordPress 核心文件排除在版本控制之外。
  • 现代开发工作流程:采用现代开发实践,允许您使用 Webpack 等构建工具进行资产管理和工作流程。您可以将前端框架或预处理器轻松集成到项目中,以优化开发工作流程。
  • 多租户 从版本 0.8.0 开始引入了全面的多租户功能,允许在单个环境中支持多个租户(网站)。每个租户都享有自己的专用数据库、配置和自定义选项,同时在一个共享的基础设施上运行。这种设计确保了针对特定要求的最大灵活性。

此 WordPress 应用程序框架旨在为 WordPress 网络应用程序开发提供可靠的解决方案,提高效率和安全性。我们邀请社区加入我们,共同完善和改进此工具。

要求

要开始使用,请确保您的环境满足以下要求:

安装

在您的终端中运行以下命令:

composer create-project devuri/wp-env-app blog

安装过程完成后,您将在项目目录中找到一个新文件 .env。此文件包含所有必要的环境变量。

配置

使用您选择的文本编辑器打开 .env 文件,并执行以下配置:

  • DB_NAME: 设置您的数据库名称。
  • DB_USER: 设置数据库用户。
  • DB_PASSWORD: 设置数据库密码。
  • DB_HOST: 在大多数情况下,如果您使用默认数据库主机,则可以将其保持为 'localhost'。

更新 WP_HOME 的值为您的应用程序的正确 URL。

框架将自动生成盐值并设置 DB_PREFIX

默认情况下,BASIC_AUTH_USER 设置为 adminBASIC_AUTH_PASSWORD 设置为 demo。如果您打算启用基本身份验证,可以更改这些值。

WP_HOME='http://example.com'
WP_SITEURL="${WP_HOME}/wp"

BASIC_AUTH_USER='admin'
BASIC_AUTH_PASSWORD='demo'

USE_APP_THEME=false
WP_ENVIRONMENT_TYPE='debug'
BACKUP_PLUGINS=false

SENDGRID_API_KEY=''
SUDO_ADMIN='1'

MEMORY_LIMIT='256M'
MAX_MEMORY_LIMIT='256M'

FORCE_SSL_ADMIN=false
FORCE_SSL_LOGIN=false

DB_NAME=wp_dbName
DB_USER=root
DB_PASSWORD=
DB_HOST=localhost
DB_PREFIX=wp_wmrnhxag_

环境变量完整列表

全新 WordPress 安装

配置完成后,您可以执行以下命令来设置全新 WordPress 安装

php nino wp:install

现在您可以使用自定义配置和全新 WordPress 安装开始使用该框架了。

或者

  1. 将存储库克隆或下载到您的本地开发环境。
  2. 在项目根目录中运行 composer install 命令以安装依赖项。
  3. .env.example 文件重命名为 .env,并根据您的环境设置进行自定义。
  4. 将您的 Web 服务器设置为指向 public 目录作为文档根目录。
  5. 通过您的 Web 浏览器运行 WordPress 安装过程。
  6. 开始构建您令人惊叹的 WordPress 项目!

自动登录

框架支持通过命令行界面 (CLI) 命令 wp:login 进行自动登录。此命令将为您提供登录的签名 URL。它依赖于 .env 文件中定义的 WPENV_AUTO_LOGIN_SECRET_KEY

要生成新的密钥,请使用内置的 nino CLI 工具。运行以下命令创建新密钥

php nino config loginkey

这将向您的 .env 文件中添加新密钥。然后您可以从 .env 文件中安全地删除旧密钥。

生成新密钥后,再次运行 php nino wp:login 命令以使用更新的密钥获取新的登录链接。

文件夹结构

以下是使用的目录结构概述

您还可以查看具有统一目录结构的基本版本 WordPress 网络应用程序骨架

├── .snapshot           # New top-level directory for snapshots (replaces backups)
├── public              # Web server root directory
│   ├── app             # WordPress core files (excluded from version control)
│   │   ├── uploads     # WordPress uploads directory
│   │   ├── templates   # Custom themes directory
│   │   └── themes      # WordPress themes directory
│   ├── mu-plugins      # Must-use plugins directory
│   ├── plugins         # WordPress plugins directory
│   ├── wp              # WordPress core files (excluded from version control)
│   ├── .htaccess       # Web server configuration file
│   ├── index.php       # WordPress entry point [-r-r-r]
│   └── wp-config.php   # WordPress configuration file [-r-r-r]
├── pubkey              # Public key used for encryption or verification purposes
│   └── samplekey.pub   # Example key: b75b666f-ac11-4342-b001-d2546f1d3a5b.pub
├── storage             # Storage directory for cache and logs
│   ├── cache           # Cache directory
│   └── logs            # Logs directory
│       └── wp-errors   # WordPress error logs
├── vendor              # Composer dependencies directory
├── .env                # Environment configuration file
├── app.php             # Application configuration file
├── bootstrap.php       # Bootstrap file [-r-r-r]
├── composer.json       # Composer configuration file
└── config.php          # Project configuration file overrides framework constants.

标记为 [-r-r-r] 的项目应或可以设置为 只读

框架目录结构

其他自定义

wp-env-app 允许进行其他自定义选项。以下是一些示例

修改 Web 根目录:默认情况下,项目 Web 根目录设置为 public。要将它更改为其他名称,请编辑 app.phpcomposer.json。例如,如果 Web 根目录设置为 public_html,则更新以下部分

composer.json

 "extra":{
    "wordpress-install-dir": "public_html/wp",
    "installer-paths": {
        "public_html/app/mu-plugins/{$name}/": [
            "type:wordpress-muplugin"
        ],
        "public_html/app/plugins/{$name}/": [
            "type:wordpress-plugin"
        ],
        "public_html/template/{$name}/": [
            "type:wordpress-theme"
        ]
    }
}

app.php

    return [
        'web_root'      => 'public_html', // web root is now set as public_html
        'content_dir'   => 'app',
        'plugin_dir'    => 'app/plugins',
        'mu_plugin_dir' => 'app/mu-plugins',
        'default_theme' => 'brisko',
    ];

配置

app.php 文件包含各种配置选项,您可以根据项目需求进行自定义。以下是可用的选项概述

  • web_root:设置公共 Web 目录(默认:public)。
  • asset_dir:设置全局资源目录(默认:assets)。
  • content_dir:设置项目的内容目录(默认:app)。
  • plugin_dir:设置安装和管理插件目录(默认:plugins)。
  • mu_plugin_dir:设置必须使用(MU)插件目录(默认:mu-plugins)。
  • sqlite_dir:设置 SQLite 数据库目录(默认:sqlitedb)。
  • sqlite_file:设置 SQLite 数据库的文件名(默认:.sqlite-wpdatabase)。
  • default_theme:设置默认回退主题(默认:brisko)。
  • disable_updates:禁用 WordPress 更新(默认:true)。
  • can_deactivate:控制插件是否可以停用(默认:false)。
  • theme_dir:设置附加主题目录(默认:templates)。
  • error_handler:设置项目的错误处理器(默认:Symfony错误处理器)。

请根据您项目的目录结构和需求,自由修改这些选项。

配置选项完整列表配置选项

错误

框架允许使用oops(whoops)或Symfony作为错误处理器。

默认情况下,使用Symfony错误处理器。要更改错误处理器,将error_handler选项设置为oops。要完全禁用错误处理器,将error_handler选项设置为null

请注意,错误处理器仅在debugdevelopmentlocal环境中运行。

.htaccess文件用于高速和安全。

一个理想的.htaccess配置文件,适用于所有WordPress网站,具有经过验证的有效性。它已在多个网站上进行了严格的测试,以确保速度和安全。如果您正在运行WordPress多站点,则应调整此文件的最后部分。

.htaccess配置文件:https://gist.github.com/seoagentur-hamburg/c96bc796764baaa64d43b70731013f8a

增强WordPress安装安全

防止在特定环境中显示标准WordPress安装屏幕,以增强安全性。

安装安全

在标记为“安全”、“sec”、“production”或“prod”的环境中,将显示“WP未安装”的消息。

此更改有助于防止未经授权的安装和接管,这可能是由于各种原因(如断开数据库连接或更改表前缀)导致的。

要覆盖此增强功能

  1. 打开您的.env文件。
  2. WP_ENVIRONMENT_TYPE明确设置为
    • staging
    • development
    • dev
    • 或您环境的适当值。

通过此设置,您的WordPress安装将更加安全,您不会面临未经授权的安装或接管的风险。

私有仓库

您可以使用auth.json文件通过Composer安装GitHub等托管在GitHub上的私有主题和插件。按照以下步骤操作

  1. 在GitHub上通过访问令牌设置创建一个新的访问令牌:https://github.com/settings/tokens
  2. 生成一个带有必要仓库访问权限的新令牌。
  3. 在项目的根目录中创建一个auth.json文件。
  4. 将以下内容添加到auth.json文件中,将<GITHUB_TOKEN>替换为您的实际令牌
{
    "github-oauth": {
        "github.com": "<GITHUB_TOKEN>"
    }
}
  1. 在您的composer.json文件中,包含私有的仓库和所需的包,如示例所示
{
  "name": "your-project-name",
  "description": "Your project description",
  "require": {
    "wpackagist-plugin/woocommerce": "^5.5",
    "wpackagist-theme/twentytwenty": "^1.9",
    "<GITHUB_USERNAME>/<REPO_NAME_1>": "^1.0",
    "<GITHUB_USERNAME>/<REPO_NAME_2>": "^2.0"
  },
  "repositories": [
    {
      "type": "composer",
      "url": "https://wpackagist.org"
    },
    {
      "type": "vcs",
      "url": "https://github.com/<GITHUB_USERNAME>/<REPO_NAME_1>"
    },
    {
      "type": "vcs",
      "url": "https://github.com/<GITHUB_USERNAME>/<REPO_NAME_2>"
    }
  ]
}

有关如何使用项目设置私有仓库的完整指南,请参阅GitHub指南

高级插件

许多高级插件提供通过Composer安装的方式,Composer通过自动化安装、更新和删除插件来简化管理依赖项的过程。这确保您使用的是插件的正确版本,减少了与WordPress其他组件的兼容性问题以及潜在的冲突。

有关高级插件的信息,请参阅高级插件的安装文档。

本地开发环境(LocalWP)

框架与Local WP无缝集成,使您能够构建和参与本地环境。Local WP简化了设置、管理和与本地WordPress环境交互的过程,适用于Mac、Windows和Linux用户。

为了正确配置您的环境,请确保将 .env 文件重命名为 .env.local,并将数据库凭证调整为与您的本地 WP 设置匹配。此外,更新 WP_HOME 以反映您的首页 URL,例如:WP_HOME='https://:10028'

运行 composer create-project devuri/wp-env-app 后生成的文件应位于您的 Local WP 安装的 'app' 目录中。

以下是数据库设置的参考信息

DB_NAME=local
DB_USER=root
DB_PASSWORD=root
DB_HOST=localhost
DB_PREFIX=wp_

如果您遇到已知的错误消息“无法建立数据库连接”,在 LocalWP 中简单重启网站可能会解决问题。此外,如果您正在使用 VPN,请尝试断开 VPN 连接,然后启动 LocalWP 网站,并再次尝试连接。在此之后,您可以重新连接到 VPN,一切应该都像之前一样正常工作。

启用多租户支持

在进行任何修改之前,确保您的 WordPress 网站安全至关重要。请确保对您的 WordPress 文件和数据库创建全面的备份。有关多租户配置的更多信息,请考虑查阅在 多租户文档 中提供的详细信息。

启用多租户的步骤

  1. 导航到框架安装的公共目录,并找到 wp-config.php 文件。

  2. 打开 wp-config.php 文件,找到定义 ALLOW_MULTITENANT 常量的部分。您需要插入或更新特定的行以启用多租户功能。

  3. 通过添加或更新以下行来修改文件,该行将 ALLOW_MULTITENANT 常量设置为 true。此更改将激活多租户功能

    define('ALLOW_MULTITENANT', true);

要查看参考实现或此配置的示例,您可以查看 项目框架配置文件示例

按照这些步骤,您的应用程序安装将配置为支持多租户功能,从而提供更高的灵活性和可扩展性。

Git 忽略

有关框架 gitignore 的更多信息,请参阅 项目框架的 Git 忽略文档

恭喜!您现在已成功启动 wp-env-app。享受使用轻量级和模块化框架开发您的 WordPress 网络应用程序。如果您有任何问题或遇到任何问题,请通过 问题跟踪器 提交。

贡献

欢迎贡献!如果您发现任何问题或对改进有建议,请随意 fork 存储库并提交拉取请求以贡献到项目。