devuri / wp-env-app
Requires
- devuri/wp-env-config: dev-master
- devuri/wpenv-console: ^0.3
- devuri/wpenv-core: ^0.2
- wpackagist-plugin/application-passwords-manager: *
- wpackagist-plugin/better-search-replace: *
- wpackagist-plugin/classic-editor: *
- wpackagist-plugin/custom-post-type-ui: *
- wpackagist-plugin/disable-comments: *
- wpackagist-plugin/disable-dashboard-widgets: *
- wpackagist-plugin/disable-emojis: *
- wpackagist-plugin/disable-gutenberg: *
- wpackagist-plugin/disable-json-api: *
- wpackagist-plugin/email-log: *
- wpackagist-plugin/membership-lock: *
- wpackagist-plugin/query-monitor: *
- wpackagist-plugin/snitch: *
- wpackagist-plugin/stream: *
- wpackagist-plugin/sucuri-scanner: *
- wpackagist-plugin/worker: *
- wpackagist-plugin/wp-mail-smtp: *
- wpackagist-theme/hello-elementor: *
- wpackagist-theme/kadence: *
- wpackagist-theme/twentytwentythree: *
This package is auto-updated.
Last update: 2024-07-19 20:50:17 UTC
README
一个用于您下一个 WordPress 网络应用程序的轻量级框架。此框架专注于提供良好的组织结构,使开发、部署和维护 WordPress 网站和网络应用程序更加简单。
注意
⚠️ 开发中:请注意:此框架目前正在积极开发中。我们欢迎社区参与,请随时通过拉取请求或报告问题来贡献。
特性
- 模块化结构:促进 WordPress 开发的模块化方法,允许您将代码组织成独立的模块或包,以更好地组织代码和重用。
- 依赖管理:借助 Composer,您可以轻松管理 WordPress 插件、主题和库。它提供了一个 composer.json 文件,可以轻松包含和更新依赖关系。
- 环境配置:通过使用
.env
文件实现特定于环境的配置的概念。您可以为不同的环境(例如,开发、测试、生产)定义环境变量,以轻松管理数据库连接、API 密钥和其他特定于环境的设置。 - 增强安全性:通过将敏感文件移出网站根目录,有助于提高 WordPress 安装的安全性。关键文件存储在公开目录之外,防止直接访问。
- 版本控制友好:鼓励使用 Git 等版本控制系统。通过将核心 WordPress 文件与您的项目文件分开,可以更容易地管理和跟踪自定义代码的更改,同时将 WordPress 核心文件排除在版本控制之外。
- 现代开发工作流程:采用现代开发实践,允许您使用 Webpack 等构建工具进行资产管理和工作流程。您可以将前端框架或预处理器轻松集成到项目中,以优化开发工作流程。
- 多租户 从版本 0.8.0 开始引入了全面的多租户功能,允许在单个环境中支持多个租户(网站)。每个租户都享有自己的专用数据库、配置和自定义选项,同时在一个共享的基础设施上运行。这种设计确保了针对特定要求的最大灵活性。
此 WordPress 应用程序框架旨在为 WordPress 网络应用程序开发提供可靠的解决方案,提高效率和安全性。我们邀请社区加入我们,共同完善和改进此工具。
要求
要开始使用,请确保您的环境满足以下要求:
- PHP 版本 7.4 或更高版本
- Composer (https://getcomposer.org.cn)
安装
在您的终端中运行以下命令:
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 设置为 admin
,BASIC_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 安装开始使用该框架了。
或者
- 将存储库克隆或下载到您的本地开发环境。
- 在项目根目录中运行
composer install
命令以安装依赖项。 - 将
.env.example
文件重命名为.env
,并根据您的环境设置进行自定义。 - 将您的 Web 服务器设置为指向
public
目录作为文档根目录。 - 通过您的 Web 浏览器运行 WordPress 安装过程。
- 开始构建您令人惊叹的 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.php
和 composer.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
。
请注意,错误处理器仅在
debug
、development
或local
环境中运行。
.htaccess文件用于高速和安全。
一个理想的.htaccess配置文件,适用于所有WordPress网站,具有经过验证的有效性。它已在多个网站上进行了严格的测试,以确保速度和安全。如果您正在运行WordPress多站点,则应调整此文件的最后部分。
.htaccess配置文件:https://gist.github.com/seoagentur-hamburg/c96bc796764baaa64d43b70731013f8a
增强WordPress安装安全
防止在特定环境中显示标准WordPress安装屏幕,以增强安全性。
安装安全
在标记为“安全”、“sec”、“production”或“prod”的环境中,将显示“WP未安装”的消息。
此更改有助于防止未经授权的安装和接管,这可能是由于各种原因(如断开数据库连接或更改表前缀)导致的。
要覆盖此增强功能
- 打开您的
.env
文件。 - 将
WP_ENVIRONMENT_TYPE
明确设置为staging
development
dev
- 或您环境的适当值。
通过此设置,您的WordPress安装将更加安全,您不会面临未经授权的安装或接管的风险。
私有仓库
您可以使用auth.json
文件通过Composer安装GitHub等托管在GitHub上的私有主题和插件。按照以下步骤操作
- 在GitHub上通过访问令牌设置创建一个新的访问令牌:https://github.com/settings/tokens。
- 生成一个带有必要仓库访问权限的新令牌。
- 在项目的根目录中创建一个
auth.json
文件。 - 将以下内容添加到
auth.json
文件中,将<GITHUB_TOKEN>
替换为您的实际令牌
{ "github-oauth": { "github.com": "<GITHUB_TOKEN>" } }
- 在您的
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 文件和数据库创建全面的备份。有关多租户配置的更多信息,请考虑查阅在 多租户文档 中提供的详细信息。
启用多租户的步骤
-
导航到框架安装的公共目录,并找到
wp-config.php
文件。 -
打开
wp-config.php
文件,找到定义ALLOW_MULTITENANT
常量的部分。您需要插入或更新特定的行以启用多租户功能。 -
通过添加或更新以下行来修改文件,该行将
ALLOW_MULTITENANT
常量设置为true
。此更改将激活多租户功能define('ALLOW_MULTITENANT', true);
要查看参考实现或此配置的示例,您可以查看 项目框架配置文件示例。
按照这些步骤,您的应用程序安装将配置为支持多租户功能,从而提供更高的灵活性和可扩展性。
Git 忽略
有关框架 gitignore 的更多信息,请参阅 项目框架的 Git 忽略文档。
恭喜!您现在已成功启动 wp-env-app。享受使用轻量级和模块化框架开发您的 WordPress 网络应用程序。如果您有任何问题或遇到任何问题,请通过 问题跟踪器 提交。
贡献
欢迎贡献!如果您发现任何问题或对改进有建议,请随意 fork 存储库并提交拉取请求以贡献到项目。