壶口瀑布 - 摄于延安壶口

WordPress试用功能原理

Posted on2 CommentsCategories技术文章

我的上一篇文章WordPress试用才写出来一天居然就有热心网友试用了还给我提了反馈真是受宠若惊。该网友提出创建网站按钮点了后不知道等多久,比较不合理。额,其实肉饼哥哥也知道这里有点不人性化,一个没告诉你等多久,而一个还需要你刷新页面。。。

不过是这样子的,肉饼哥哥有点懒癌上身了。一个是后台我是走的cronjob,具体什么点网站建好我也不知道。不过3~5分钟肯定是要好的。而一个关于刷新页面,自动刷新不是啥困难的事情,不过咱这就是个工具,肉饼哥哥更加注重建出来的站是可用的,弄的花里胡哨肉饼哥哥很可能就给绕进去出不来了。

然后该网友比较好奇,希望了解下这套工具怎么工作。恩,这样一问,肉饼哥哥觉得写一下也好,一个是感兴趣的人可以对WP-CLI更加了解,二一个是肉饼哥哥自己也算写了个文档,免得过几个月自己也搞不清做了什么。

—–上面是胡言乱语,下面是干货—–

添加A记录

把所有的子站点的DNS解析到当前服务器上。比如我用的阿里云,添加一个A记录,主机记录填*号,记录值填服务器IP。然后就是等了。

a-record

配置Nginx

每一个子站点都是一个独立的站,我们需要把子站点一一映射到对应的服务器文件夹。最重要的不过下面两行。

server { 
    server_name "~^(?<sub>.+)\.dev\.54zxy\.com$";
    root /path/to/document_root/$sub;
    ...
}

配置完重启服务器应该不需要说了。

建站脚本

这一步要花点开发时间,不过原理比较简单,就是个批处理bash文件封装了wp-cli命令。

下载WordPress

wp core download --locale=en_GB --path=$ROOT

创建数据库

mysql -h"$DBHOST" -e"create database if not exists $DB"

当然还需要在服务器添加Mysql配置文件.my.cnf用来读取有mysql server 管理权限的mysql账号。除了上述命令,给新建的数据库单独grant用户名,密码并flush权限。

配置wp-config.php

wp core config --dbname="$DB" --dbuser="$DBUSER" --dbpass="$DBPASS" --dbhost="$DBHOST" --dbcharset=utf8 --path=$ROOT

没有什么事是一条命令解决不了的。

安装测试站

wp core install --url="http://$DOMAIN" --title="$DOMAIN" --admin_user="$ADMINUSER" --admin_password="$ADMINPASS" --admin_email=example@example.com

安装并激活插件

目前只有wordpress-importer是预装的插件,因为要用它来导入测试数据。

wp plugin install $i --activate

安装语言包

wp core language install zh_CN --activate

创建robots.txt

我可不希望测试站点被搜索引擎爬呢。

改文件权限

国际惯例,文件644, 文件夹755没什么好说的。

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

其他考虑

运行脚本的用户因为需要改文件权限之类必须得是root,但是从web界面收到的建站请求的用户是web server用户www-data。这里需要点小技巧,把www-data的任务委派给root。比如可以用数据库做媒介,www-data接受任务,root在cronjob里监视并完成任务。这个没代码可展示,就说个思路。

基本就是这么回事了。结束语,用好WP-CLI,没有什么WordPress下任务是一条命令解决不了的。如果有,我们还可以扩展WP-CLI啊。

2 thoughts on “WordPress试用功能原理”

    1. 恩。企业级的做法肯定会比我这个复杂。
      比如我们公司就是一个feature branch一个vps实例。不差钱。

发表评论

电子邮件地址不会被公开。 必填项已用*标注