用 wp-cli 自动部署 WordPress

本脚本利用 WordPress 命令行工具 wp-cli 实现了 WordPress 的自动部署,对于需要经常部署 WP 的运维会比较有用。


#!/bin/bash
# WordPress 自动化安装
# Author: Albert Xu (albertxu AT freelamp.com)
# 创建日期: 2017-5-31
# Last Modified: 2017-5-31
# 需要配置的参数
WP_FOLDER=wp_test8
WP_TITLE='Wordpress 8'
WP_ADMIN='admin'
WP_URL=http://localhost/"$WP_FOLDER"
ADMIN_EMAIL='admin@yj777.cn'
ADMIN_PASS='hello'
DBNAME=wp_test8
DBUSER=wp_test8
DBPASS=hello


WP="/usr/bin/wp --allow-root "
echo "1. 自动下载/解压指定版本的 WordPress ..."
WP_DL="https://wordpress.org/latest.zip"
wget $WP_DL
[ -d $WP_FOLDER ] && echo "文件夹已经存在!请尝试运行 rm -rf $WP_FOLDER " && exit 1
mysql "$DBNAME" -e "exit" 2>/dev/null
[ $? == 0 ] && echo "数据库已经存在!请尝试运行 mysql -e \"drop database $DBNAME\"" && exit 1
unzip -q `basename $WP_DL`
[ $? == 0 ] && [ -d "wordpress" ] && mv wordpress $WP_FOLDER
[ ! -d $WP_FOLDER ] && echo "文件解压失败!" && exit 2


echo "2. 创建数据库 ..."
mysql -e "create database $DBNAME; grant all on $DBNAME.* to $DBUSER@localhost identified by '"$DBPASS"';flush privileges;"
[ $? != 0 ] && echo "创建数据库 $DBNAME 失败! " && rm -rf $WP_FOLDER && exit 3


echo "3. 创建配置文件 ..."
cd $WP_FOLDER
$WP core config --dbname=$DBNAME --dbuser=$DBUSER --dbpass=$DBPASS
[ $? != 0 ] && echo "创建配置文件失败!" && exit 4


echo "4. 创建实例 ..."
$WP core install --url=$WP_URL --title=$WP_TITLE --admin_user="$WP_ADMIN" --admin_email="$ADMIN_EMAIL" --admin_password="$ADMIN_PASS"
[ $? != 0 ] && echo "创建 WordPress 实例 $WP_TITLE 失败!" && exit 5


echo "5. 检查 站点 $WP_URL 的可用性 ..."
TMP=/var/tmp/wp_test.out
wget -o $TMP $WP_URL
[ -z $TMP ] && echo "实例创建有问题,请检查 $WP_URL!" && rm $TMP && exit 6
rm $TMP


echo "6. 复制 Theme 以及 Plugin ..."

此处略过具体复制语句

echo "7. 激活 Theme/Plugin ..."
$WP theme activate twentyfifteen
$WP plugin activate hello
echo "8. 更新 Option ..."
# $WP option update siteurl=adbfabd
echo "结束: 请访问 $WP_URL 验证安装"

作者: 甬洁网络

--移动互联网&物联网技术提供商