scottjs / wp-boilerplate
一个空的WordPress模板文件夹结构,包含初始的composer包。
Requires
- johnpbloch/wordpress: 4.7.*
- scottjs/wp-dotenv: 1.*
Requires (Dev)
- scottjs/db-sync: 1.*
- scottjs/helper-scripts: 1.*
README
WP Boilerplate是一个空白的、无主题的WordPress文件夹结构,我们在开发环境中常用它来保持项目一致性。它包含一系列composer包,可以快速同步数据库,安全地进行查找/替换,并启用非版本化上传,从生产服务器加载。
免责声明:这个模板最初是为我们开发团队内部使用而创建的,以便加快常见、重复性任务的执行速度。但是,它们可能对其他人有所帮助。您可以在自己的项目中自由使用,效果可能因项目而异。
要求
- Composer
- PHP >= 5.3.9
- 本地开发环境,例如Vagrant。
注意事项
- 这个模板的配置灵感来源于Laravel 5的dotenv机制,使用.env文件。
- 此配置已设计在Vagrant环境中使用,只要项目有自己的主机条目/vhost,并且没有作为子域安装设置,它可能在其他环境中工作。
- 类似于Laravel和其他框架,WordPress文件存储在
public
目录中,并且该目录应设置为项目的文档根。 - 确保您已经为项目配置了主机条目。
配套包
此存储库预先加载以下composer包,以提供此模板的额外功能
- scottjs/wp-dotenv - 允许WordPress使用dotenv配置文件。
- scottjs/db-sync - 脚本来快速同步远程数据库到本地数据库,以及安全的搜索/替换。
- scottjs/helper-scripts - 其他辅助脚本,用于执行常见任务,例如允许远程上传加载本地。
安装
- 下载/解压此存储库的副本到本地环境可访问的位置。
- 复制、粘贴并将
.env-sample
重命名为.env
。 - 根据需要更新
.env
配置选项。 - 在您的环境终端中,浏览到项目根目录,例如
cd /var/www/<project-name>
- 运行
composer install
以下载配套包并安装WP核心。 - 运行
composer generate-config
或composer generate-config-with-salts
以创建一个修改后的WordPress配置文件,该文件使用.env配置文件。 - 在浏览器中访问项目,并继续正常设置本地数据库。
- 安装或构建您的主题并开始开发。
使用方法
为了使用上述配套包的功能,已经在composer.json
文件中添加了以下composer命令
-
composer generate-config - 所有配套包都依赖于.env文件来获取配置。此命令将生成一个修改后的wp-config.php文件,允许WordPress也使用.env文件,避免了需要维护两个配置文件。这需要在.env文件中设置
APP_DOCROOT
。 -
composer generate-config-with-salts - 如上所述,但它还会自动生成盐值。这是一个在启动新项目时非常有用的命令,但可以在任何时候使用。
-
composer database-update - 当你在处理一个活跃的项目时,本地数据库可能与预发布或生产数据库相比过于陈旧。此命令将备份并清空本地配置的数据库,并使用远程或生产数据库的副本来更新它。这需要在 .env 文件中设置所有
DB_*
和REMOTE_DB_*
选项,并假设你的远程数据库可以从外部访问。 -
composer database-prepare - 当你在本地开发时,CMS 中创建的图像和资产链接可能引用了你的本地开发网页地址,无法在预发布或生产环境中工作。此命令将在本地配置的数据库上运行安全的搜索/替换脚本,将所有
DOMAIN_LOCAL
实例替换为在 .env 文件中配置的DOMAIN_REMOTE
。然后数据库将被导出到dumps/prepared-database-YYYY.MM.DD-HH.MM.SS.sql
,以便部署。 -
composer database-import - 如果项目根目录中存在
setup/database.sql
文件,则此命令将导入该文件到你在 .env 文件中配置的本地数据库。这对于你在一个项目中工作,并希望团队成员能够快速设置数据库副本非常有用。 -
composer database-export - 此命令将导出配置在 .env 文件的本地数据库副本,并将其保存到
setup/database.sql
。如果此文件存在,它将被覆盖。这对于快速拍摄当前开发数据库以便与他人共享非常有用。 -
composer remote-uploads-enable - 当你在本地开发一个活跃的项目时,主上传文件夹可能没有包含在你的存储库中,导致 CMS 上传的图像无法加载。此命令将在你的配置上传目录中安装一个本地的 .htaccess 文件,并将所有请求重定向到远程服务器。这需要在 .env 文件中设置
DOMAIN_REMOTE
、APP_DOCROOT
和APP_UPLOADS
。建议从项目存储库中忽略此 .htaccess 文件。 -
composer remote-uploads-disable - 一个方便的辅助命令,用于删除上述命令创建的 .htaccess 文件,以防它引起问题。这假设自添加以来 .env 配置没有更改。
配置
以下是对 .env 文件中使用的每个配置选项的解释。
-
DOMAIN_REMOTE - 由 composer database-prepare 和 composer remote-uploads-enable 需要,它应指向你的远程或生产环境(如果可用),不包括 http:// 或尾部斜杠。例如:
www.example.com
或subdomain.example.com
。 -
DOMAIN_LOCAL - 由 composer database-prepare 需要,它不应包括 http:// 或尾部斜杠。例如:
www.example.local
或subdomain.example.local
。 -
APP_DOCROOT - 由 composer generate-config 和 composer remote-uploads-enable 需要,它应该是相对于项目根文件夹的相对路径,指向文档根的配置位置。它应该以斜杠开头,不包括尾部斜杠。如果不适用,请留空。例如:
/public
。 -
APP_CORE - 仅当使用由 composer generate-config 生成的 wp-config.php 文件,并且 WP 核心文件位于子目录中时需要。它应指向 WP 核心相对于
APP_DOCROOT
的安装目录。它应该以斜杠开头,不包括尾部斜杠。如果不适用,请留空。例如:/wp
。 -
APP_UPLOADS - 由 composer remote-uploads-enable 需要,并且应指向相对于
DOMAIN_REMOTE
的远程上传位置 URL。它应该以斜杠开头,不包括尾部斜杠。例如:/wo-content/uploads
。 -
APP_DEBUG - 仅当使用由 composer generate-config 生成的 wp-config.php 文件时需要。允许你启用或禁用 WP 调试。选项:
true
或false
。 -
APP_WWW - 仅在需要使用由 composer generate-config 生成的 wp-config.php 文件时才需要。允许您强制 WordPress 转发到 www 或非 www 网站地址。选项:
true
或false
。 -
APP_SSL - 仅在需要使用由 composer generate-config 生成的 wp-config.php 文件时才需要。允许您强制 WordPress 使用 SSL 协议进行重定向。选项:
true
或false
。 -
DB_* - 由 composer update-database 需要,并提供设置本地数据库连接详情的选项。
-
REMOTE_DB_* - 由 composer update-database 需要,并提供设置远程预发布或生产数据库连接详情的选项。