contention / wp-setup
本包的最新版本(v0.5)没有提供许可证信息。
此包的规范仓库似乎已不存在,因此该包已被冻结。
v0.5
2018-05-28 19:09 UTC
Requires
- aws/aws-sdk-php: 3.3.8
- johnpbloch/wordpress: 4.9.6
README
通过composer.json部署WP,以及一组简单工具。
最初创建是为了在临时文件系统(如Heroku)上快速轻松地设置WordPress站点,在这些文件系统上(以及因此上传的内容和/或对代码库的更改)在每次部署或重启时都会被擦除。它也应该适用于任何安装了WP的实例,其中核心和插件更新由本地管理,然后将生产代码推送到远程生产环境。
工具
- 文件编辑器移除器 - mu插件,用于删除指向WP文件编辑器的链接,以防止通过WP生产后端更改生产环境主题或插件源代码。
- 文件缓存器 - mu插件,充当基本的文件/源/数据缓存器(用于检索和缓存社交媒体源等)。
- 上传到S3 - mu插件,用于绕过本地存储,以便直接从Amazon S3托管/提供图像和其他上传文档。需要Amazon AWS账户。如果wp-config.php中定义了常量,则运行。
- XML站点地图 - 根目录中插入,在/sitemap.xml上动态生成XML站点地图。
- 身份验证 - 如果在wp-config中定义了CONTENTION_AUTH_USER和CONTENTION_AUTH_PW,则触发简单的HTTP AUTH。
依赖项
- aws/aws-sdk-php - 允许S3上传。
用法
该项目应至少包含以下文件夹结构
root
- .gitignore
- composer.json
- src
- plugins
- theme
- wp-config.php
.gitignore
在此,我们忽略在部署时放入根目录的任何WP(或其他文件)。它应该看起来像这样
# Ignore everything
/*
# But not these files...
!.gitignore
!composer.json
!composer.lock
!gulpfile.js
!package.json
!circle.yml
!circledeploy.sh
!src/
circle.yml
此文件包含特定于项目的CircleCI测试和部署命令。
composer.json
项目的composer.json应如下所示
{
"name": "contention/[PROJECT NAME]",
"require": {
"contention/wp-setup": "dev-master"
},
"scripts": {
"post-install-cmd": "bash vendor/contention/wp-setup/installer.sh",
"post-update-cmd": "bash vendor/contention/wp-setup/installer.sh"
}
}
/src
此目录应包含/plugins中的任何插件,以及/theme中的所有主题文件
wp-config.php
以下是示例
<?php
/**
* Begin session
*/
session_start();
/**
* Require vendor
*/
require_once(ABSPATH.'vendor/autoload.php');
/**
* Define site constants
*/
$host = $_SERVER['HTTP_HOST'];
if ($host == '' || $host == 'www.') {
define('DB_NAME', '');
define('DB_USER', '');
define('DB_PASSWORD', '');
define('DB_HOST', '');
define('ENVIRONMENT','production');
define('WP_HOME','');
define('WP_SITEURL','');
define('AWS_ACCESS_KEY_ID','');
define('AWS_SECRET_ACCESS_KEY','');
define('AWS_BUCKETNAME','');
define('AWS_BUCKETLOCATION','');
} elseif ($host == 'localhost') {
define('DB_NAME', '');
define('DB_USER', '');
define('DB_PASSWORD', '');
define('DB_HOST', '');
define('ENVIRONMENT','development');
define('WP_HOME','');
define('WP_SITEURL','');
define('AWS_ACCESS_KEY_ID','');
define('AWS_SECRET_ACCESS_KEY','');
define('AWS_BUCKETNAME','');
define('AWS_REGION','');
} else {
echo 'Error';
exit;
}
/**
* Other DB constants
*/
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
$table_prefix = 'wp_';
/**
* Environment auth
*/
define('ENVIRONMENT_AUTH_USER','');
define('ENVIRONMENT_AUTH_PW','');
/**
* WordPress debugging mode.
*/
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
/**
* Safety mode!
*/
define('DISALLOW_FILE_MODS', true);
define('AUTOMATIC_UPDATER_DISABLED', true);
define('WP_AUTO_UPDATE_CORE', false);
/**
* Authentication Unique Keys and Salts.
*/
define('AUTH_KEY', 'j~)-W7_-#_hxjZmNhf}kg+5)yXBYr`qV,|++Ui1wFl(vR;5x)Y<.Ko6;[:IMXUKM');
define('SECURE_AUTH_KEY', 'p>{a(N,8*W<BIC<c|;G-6G7t!e3|htE&zE~g@{3s+e%>r>Fmy+LmzVSk`qLP:1-s');
define('LOGGED_IN_KEY', 'fMXA4p-gu~Eg(a.)@=lL[hp3uHCwCJN$:,0uy7FN>-nS&*KIR5u~(&h=Q`Xgb2m~');
define('NONCE_KEY', 'RPq?:--qJ2@za}FIQQqLq%L/-M`3]-b*)LZ`f$:44A#*TWBL9F*h^>)nP=.;,@=5');
define('AUTH_SALT', 'V{Tt;y;B+5m3mI,k=|-``BxWl0U d-`hH#NNZ8(3[t!cygDa--7q1W(;HeNQ7pj-');
define('SECURE_AUTH_SALT', 'Im+q$Lrq`(/Lsm^5@cJhVCj|Er!YR+t1|G*oF:~a_O (ugOeJ4I3*LUrBr|J9-j~');
define('LOGGED_IN_SALT', 'KO{c5gLNxRqKD4?av8OXq,n2`+fKV-lo-3}lvD2@AuTdL*/zno9ah;PMeoVKE|4Y');
define('NONCE_SALT', 'C*t(wuyj7ZFMqq7j_[8KfR{>/|Nig%_ZI-v[Gt&!?`eNGCoI)[-~lx1)Yp@WQdzz');
/**
* WordPress Localized Language, defaults to English.
*/
define('WPLANG', '');
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
在src/theme
内正常构建和编辑您的WP主题。
在src/plugins
内包含任何第三方插件。
在src/
内正常创建和编辑您的wp-config.php
。
主题和wp-config.php
都通过符号链接链接到WP中的正确位置,因此项目仓库可以安全地通过git进行管理和部署。
升级WP
只需更改对WP版本的引用,然后执行composer update
,推送并部署即可。