globalis / wp-cubi
为开发者提供的WordPress现代化堆栈
Requires
- php: >=8.0 <8.3
- composer/installers: ^2.1.1
- globalis/wp-cli-bin: ^2.8.1
- globalis/wp-cubi-helpers: ^1.0.5
- globalis/wp-cubi-imagemin: ^1.3.2
- globalis/wp-cubi-transient-cache: ^0.3.0
- globalis/wp-unhooked: ^1.0.4
- inpsyde/wonolog: ^2.x-dev
- johnbillion/extended-cpts: ^5.0.3
- roots/soil: ^4.1.1
- roots/wordpress: ~6.3.1
- roots/wp-password-bcrypt: ^1.1.0
- wpackagist-plugin/acf-extended: ^0.8.9.3
- wpackagist-plugin/advanced-custom-fields: ^6.1.6
- wpackagist-plugin/autodescription: ^4.2.8
- wpackagist-plugin/dynamo: ^1.1
- wpackagist-plugin/limit-login-attempts-reloaded: ^2.25.18
- wpackagist-plugin/query-monitor: ^3.12.3
- wpackagist-plugin/two-factor: ^0.8.2
- wpackagist-plugin/user-switching: ^1.7.0
- wpackagist-plugin/wp-crontrol: ^1.15.2
Requires (Dev)
- consolidation/robo: 3.x-dev@dev
- globalis/wp-cubi-robo: ^2.4.0
- squizlabs/php_codesniffer: ^3.7.2
Suggests
- globalis/wp-cubi-robo-globalis: Provides a BuildAssets trait for RoboFile
- dev-master
- 1.10.0
- 1.9.4
- 1.9.3
- 1.9.2
- 1.9.1
- 1.9.0
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-feature_add_two_factor_plugin
- dev-meta_robo_eucd_disable_indexation_restriction
- dev-feature_test_classicpress_install
- dev-feature_tests_acceptance
This package is auto-updated.
Last update: 2024-08-29 12:30:03 UTC
README
为开发者提供的WordPress现代化堆栈
概览
wp-cubi提供了一套现代堆栈和项目结构,用于使用WordPress创建专业的网络应用程序。
功能
- 环境特定配置
- 开发/预发布环境上的自动
no-index
和邮件捕捉 - 使用wp-cli的命令行管理
- 监控工具(query-monitor,wp-crontrol,user-switching,wp-cubi-admin-bar)
- 使用globalis/wp-unhooked的更清洁的wp-admin
- 与Robo命令集成的Gitflow集成
- 优化的
.htaccess
生成 - 使用inpsyde/wonolog和monolog的日志系统
- 使用globalis/wp-cubi-imagemin的独立图像压缩插件
- 使用globalis/wp-cubi-helpers的附加功能
- 如果提供许可证密钥,则使用Composer安装advanced-custom-fields-pro
- SEO友好,具有The SEO Framework插件和roots/soil DOM优化
- 通过禁用我们不使用的核心功能,比默认的WordPress应用程序更轻、更快
- 默认禁用评论
- 使用globalis/wp-cubi-transient-cache自动缓存导航菜单
安全优化
- 分离的Web根目录文件夹
.htaccess
安全指令- 除非明确激活,否则禁用REST API和
xmlrpc.php
- 使用roots/wp-password-bcrypt进行更好的密码加密
- 在
wp-login.php
上使用Limit Login Attempts Reloaded进行防暴力破解保护
要求
安装
- 创建一个新项目:
composer create-project --remove-vcs globalis/wp-cubi your-project && cd your-project
- 运行安装命令并回答问题:
./vendor/bin/robo install --setup-wordpress
- 访问您的新网站管理:
/wpcb/wp-admin/
配置
- 在
config/application.php
中根据您的需求编辑WP_UNHOOKED_CONFIG
常量 - 登录页面标志:将
./web/logo.png
替换为您的应用程序标志(或编辑00-wp-cubi-core-mu/20-wp-login.php
) - 如果您的应用程序使用SMTP服务器发送电子邮件,请在
config/local.php
中配置它 - 图像最小化:配置globalis/wp-cubi-imagemin以启用有意义的上传/图像最小化级别
wp-cron任务
为了在生产环境中实现最优的wp-cron配置,应用以下配置
- 在
./config/environments/production.php
中将常量DISABLE_WP_CRON
设置为true
- 添加到您的生产服务器crontab
*/1 * * * * /usr/bin/php8.2 /var/www/my-app/web/wpcb/wp-cron.php &>/dev/null
注意
- 确保您在上述命令中适配PHP二进制路径(带准确版本)和您的应用程序路径
- 推荐使用绝对路径
WordPress核心自动更新
尽管WordPress不符合语义版本规范,但核心的小版本更新通常遵循向后兼容性,并且可以自动应用,以保障安全。
可以通过添加到您的预发布和生产服务器crontabs来实现
*/30 * * * * /usr/bin/php8.2 /var/www/my-app/vendor/bin/wp core update --minor &>/dev/null
注意
- 确保您在上述命令中适配PHP二进制路径(带准确版本)和您的应用程序路径
- 推荐使用绝对路径
此cron任务将确保,每30分钟,服务器上运行的WordPress实例与其当前分支的最新小版本保持更新。
此cron任务不会自动更改composer.lock文件中的roots/wordpress版本。
为了避免在部署时发生不想要的回滚,wp-cubi deploy命令将在每次部署前检查您是否要部署WordPress当前分支的最后一个小版本。如果不是,它将邀请您中止部署并运行./vendor/bin/robo wp:apply-available-patch
。
命令
wp-cli
./vendor/bin/wp <command>
(见完整列表)
编码标准
./vendor/bin/phpcs [directory]
:检查编码标准(见./phpcs.xml
)./vendor/bin/phpcbf [directory]
:修复编码标准可自动修复的违规行为
Robo
./vendor/bin/robo install [--setup-wordpress]
./vendor/bin/robo configure
./vendor/bin/robo build
./vendor/bin/robo build:composer
./vendor/bin/robo build:config
./vendor/bin/robo build:htaccess
./vendor/bin/robo wp:apply-available-patch
./vendor/bin/robo wp:language-install [<language>] [--activate]
./vendor/bin/robo wp:language-update [<language>] [--activate]
./vendor/bin/robo wp:update-timezone
./vendor/bin/robo wp:install-acf-pro [--username="<username>"] [--password="<password>"]
./vendor/bin/robo feature:start <feature-name>
./vendor/bin/robo feature:finish <feature-name>
./vendor/bin/robo hotfix:start [--semversion=<version>]
./vendor/bin/robo hotfix:finish [--semversion=<version>]
./vendor/bin/robo release:start [--semversion=<version>]
./vendor/bin/robo release:finish [--semversion=<version>]
./vendor/bin/robo deploy <environment> <version> [--ignore-assets] [--ignore-composer]
./vendor/bin/robo deploy:setup <environment>
./vendor/bin/robo media:dump <environment> [--delete]
./vendor/bin/robo media:push <environment> [--delete]
WordPress插件
wp-cubi通过Composer处理WordPress插件依赖项(包括wordpress.org插件)。
如果您想使用通过wordpress.org或公共Composer仓库不可用的插件,您有两个选择
- 最简单的方法:手动将插件添加到您的
./web/app/modules/
目录中,然后在您的./gitignore
文件中将其列入白名单 - 推荐的方法:创建一个私有Composer仓库以托管您的插件
日志
wp-cubi附带inpsyde/wonolog,它允许通过单行代码记录任何内容,并自动记录多个事件,如PHP错误、数据库错误、HTTP API错误、wp_mail()
错误等。
基本配置可以在wp-cubi的./config/application.php
和./config/environments/
文件中完成,您可以在这些文件中更改日志文件的最大数量和日志级别。[详情](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php "application.php") [详情](https://github.com/globalis-ms/wp-cubi/tree/master/config/environments "config/environments/")
对于高级配置(添加通道或处理程序),您可以编辑./web/app/mu-modules/00-wp-cubi-core-mu/src/00-wonolog.php
(参见[inpsyde/wonolog文档](https://inpsyde.github.io/Wonolog/)和[monolog文档](https://github.com/Seldaek/monolog/tree/master/doc))
部署
wp-cubi提供了一个基本的部署命令./vendor/bin/robo deploy
,该命令使用rsync
构建并部署应用程序。
您可以通过编辑./RoboFile.php
来使用[Deployer](https://deployer.org/)、[Capistrano](https://capistrano.ruby-lang.org.cn/)或其他工具构建自己的部署方法。[详情](https://github.com/globalis-ms/wp-cubi/blob/master/RoboFile.php "RoboFile.php")
区块编辑器去哪了?
我们使用[globalis/wp-unhooked](https://github.com/globalis-ms/wp-unhooked "globalis/wp-unhooked")来禁用WordPress核心中的许多功能,例如区块编辑器、REST-API、xmlrpc、评论、大多数仪表板小工具和少数管理员菜单条目。
这可以让您的应用程序更干净、更快、更轻量。它还通过在不需要时禁用潜在的攻击路径来提高安全性。
如果您需要激活这些功能之一,请编辑config/application.php
中的WP_UNHOOKED_CONFIG
常量。[详情](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php "config/application.php")