contention/wp-setup

本包的最新版本(v0.5)没有提供许可证信息。

此包的规范仓库似乎已不存在,因此该包已被冻结。

v0.5 2018-05-28 19:09 UTC

This package is auto-updated.

Last update: 2021-03-07 23:47:18 UTC


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,推送并部署即可。