anchour / bedrock
现代WordPress堆栈
Requires
- php: >=5.4
- composer/installers: v1.0.12
- fancyguy/webroot-installer: 1.1.0
- vlucas/phpdotenv: ~1.0.6
- wordpress/wordpress: 4.5.1
- wpackagist-plugin/backwpup: ~3.1
- wpackagist-plugin/cms-tree-page-view: ~1.3
- wpackagist-plugin/iwp-client: ~1.5
- wpackagist-plugin/jetpack: ~4.0
- wpackagist-plugin/sendgrid-email-delivery-simplified: ^1.8
- wpackagist-plugin/simple-301-redirects: ~1.0
- wpackagist-plugin/wordfence: ~6.0
- wpackagist-plugin/wordpress-seo: ~3.0
- wpackagist-plugin/wp-super-cache: ~1.4
- dev-master
- 1.4.4
- 1.4.3
- 1.4.2.1
- 1.4.2
- 1.4.1
- 1.4.0.2
- 1.4.0.1
- 1.4.0
- 1.3.19
- 1.3.18
- 1.3.17
- 1.3.16
- 1.3.15
- 1.3.14
- 1.3.13
- 1.3.12
- 1.3.11
- 1.3.10
- 1.3.9
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 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.0
- dev-develop
- dev-feature/new-env-configuration
- dev-disallow-indexing
- dev-autoloader
- dev-mu-plugins
- dev-remove-url-env-vars
This package is not auto-updated.
Last update: 2023-06-10 09:23:18 UTC
README
版本: 1.4.3
Bedrock 是一个现代 WordPress 堆栈,可以帮助您使用最佳的开发工具和项目结构开始。
这是 Roots 的分叉,修改后可以与通过 Laravel Forge 部署的网站一起使用。
这是用于什么的?
此包旨在与 Laravel Forge 一起使用。Forge 允许您配置主要用于与 Laravel 一起使用的服务器,但允许您部署任何您想要的真正任何内容。它预装了
- Nginx
- PHP 5.5
- MySQL
等。
快速入门
运行 composer create-project anchour/bedrock <path>
(有关更多详细信息,请参阅 安装/使用)
功能
要求
- Git
- PHP >= 5.3.2(用于 Composer)
安装/使用
有关以下步骤的更多详细信息,请参阅 文档。
使用 create-project
Composer 的 create-project
命令将自动将 Bedrock 项目安装到目录中并运行 composer install
。
post-install-cmd
和 post-root-package-install
脚本将自动创建 .env
并提示您生成盐密钥。
注意:要无提示生成盐,请以 -n
(非交互式)运行 create-project
。您还可以在您的分叉中更改 composer.json
下 config
中的 generate-salts
设置。默认值为 true
。
要完全跳过脚本,可以使用 --no-scripts
运行 create-project
来禁用它。
- 运行
composer create-project anchour/bedrock <path>
(path
是安装的文件夹) - 添加主题
- 在
http://example.com/wp/wp-admin
访问 WP Admin - 将您的 Nginx 或 Apache vhost 设置为
/path/to/site/public/
。
手动
- 克隆/Fork 仓库
- 运行
composer install
- 添加主题
- 在
http://example.com/wp/wp-admin
访问 WP Admin - 将您的 Nginx 或 Apache vhost 设置为
/path/to/site/public/
。
文档
文件夹结构
├── composer.json
├── config
│ ├── environments
│ │ ├── development.php
│ │ ├── staging.php
│ │ └── production.php
│ └── application.php
├── Gemfile
├── vendor
└── web
├── app
│ ├── mu-plugins
│ ├── plugins
│ └── themes
├── wp-config.php
├── index.php
└── wp
Bedrock 的组织结构类似于将 WordPress 放在其自己的子目录中,但有一些改进。
- 为了不在 webroot 中暴露敏感文件,Bedrock 将所需内容移动到
public/
目录,包括供应商的wp/
源和wp-content
源。 wp-content
(或可能只是content
)已被命名为app
,以更好地反映其内容。它包含应用程序代码,而不仅仅是“静态内容”。wp-config.php
仍然位于public/
,因为它是 WP 所必需的,但它只充当加载器。实际的配置文件已移动到config/
以便更好地分离。vendor/
是 Composer 管理的依赖项安装的位置。wp/
是 WordPress 核心的位置。它也由 Composer 管理,但由于 WP 的限制,不能将其放在vendor
之下。
配置文件
根 public/wp-config.php
是 WordPress 所必需的,并且仅用于加载其他主要配置。不应将其添加到其中。
config/application.php
是主要配置文件,其中包含 wp-config.php
通常包含的内容。应在其中设置基本选项。
对于特定环境的配置,请使用 config/environments
下的文件。默认情况下有 development
、staging
和 production
,但这些可以是您所需的任何内容。
环境配置需要在主要 application
配置之前,因此环境配置中的任何内容都优先于 application
。
注意:您不能在 PHP 中重新定义常量。因此,如果您在 application.php
中有一个基本设置,并且想在例如 production.php
中覆盖它,您有几个选项
- 删除基本选项,并确保在每个需要的环境中都定义它
- 如果尚未定义,请仅在
application.php
中定义常量。
不希望这样吗?
您将失去定义特定环境设置的能力。
- 将所有配置移动到
wp-config.php
- 手动处理特定环境的选项
- 删除
config
目录
环境变量
PHP dotenv 用于加载 .env
文件。然后,所有变量都可通过 getenv
、$_SERVER
或 $_ENV
在您的应用程序中使用。在 post-install-cmd
和 post-root-package-install
脚本中,将自动生成并在 .env
中设置您的盐值,当
- 不存在
.env
文件 .env
文件存在,但没有任何内容。
Forge 的另一个好处是能够在 UI 中设置环境变量。所需的变量如下。
- DB_USER
- DB_NAME
- DB_PASSWORD
在 .env
变量和在 UI 中设置的变量都可在 $_ENV
中使用。
不希望这样吗?
您将失去配置和代码之间的分离,并可能将安全凭证置于风险之中。
Composer
Composer 用于管理依赖项。Bedrock 将任何第三方库视为依赖项,包括 WordPress 本身以及任何插件。
请参阅这两篇博客以获取更详细的文档
屏幕录制($):使用Composer与WordPress结合
插件
WordPress Packagist 已在 composer.json
文件中注册,因此可以从 WordPress 插件目录 轻松要求任何插件。
要添加插件,请在 require
指令下添加它或从命令行使用 composer require <namespace>/<packagename>
。如果是来自 WordPress Packagist,则命名空间始终为 wpackagist-plugin
。
示例:"wpackagist-plugin/akismet": "dev-trunk"
每次您添加新插件或更新 WP 版本时,请运行 composer update
以安装新包。
plugins
和 mu-plugins
默认由 Git 忽略,因为 Composer 管理它们。如果您想向那些文件夹添加一些不是由 Composer 管理的东西,则需要更新 .gitignore
以将其列入白名单
!public/app/plugins/plugin-name
注意:一些插件可能会在其指定范围之外创建文件或文件夹,甚至对 wp-config.php
和 app
目录中的其他文件进行修改。这些文件应该添加到您的 .gitignore
文件中,因为它们由插件本身管理,而这些插件是通过 Composer 管理的。如果需要修改 wp-config.php
,请将其移动到 config/application.php
。
更新WP和插件版本
更新您的 WordPress 版本(或任何插件)只是更改 composer.json
文件中的版本号的问题。
然后运行 composer update
将下载新版本。
主题
主题也可以由 Composer 管理,但只有在以下两种条件下才应这样做:
- 您使用的是不会进行任何修改的父主题
- 您想将主主题分离出来并作为独立包使用
在大多数情况下,我们建议不要做 #2,而是将主主题作为您的应用程序存储库的一部分。
就像插件一样,WPackagist 维护着 WP 主题目录的 Composer 镜像。要要求主题,只需使用 wpackagist-theme
命名空间。
不想这么做?
Composer 集成是 Bedrock 的最大部分,所以如果您打算移除它,那么使用 Bedrock 就没有多少意义了。
wp-cron
Bedrock 通过 define('DISABLE_WP_CRON', true);
禁用了内部 WP Cron。如果您保持此设置,则需要手动在 crontab 文件中设置如下 cron job
*/5 * * * * curl http://example.com/wp/wp-cron.php
WP-CLI
Bedrock 与 WP-CLI 一起工作,就像任何其他 WordPress 项目一样。我们之前在 composer.json
文件中将其作为依赖项要求。这已被移除,因为 WP-CLI 现在建议使用 phar
文件全局安装。这也导致了如果尝试使用全局安装时的冲突。
wp
命令将自动识别 Bedrock 的子目录安装,只要您在项目目录(或更深)中运行命令。Bedrock 包含一个 wp-cli.yml
文件,该文件将 path
选项设置为 public/wp
。使用此配置文件进行任何进一步的 配置。
贡献
欢迎每个人帮助贡献并改进此项目。您有多种方式可以做出贡献