SQL 修改 wp_ 表前缀

注:因为涉及数据库,会有不可逆的后果,建议先带套备份

首先,修改配置文件 wp-config.php 中 “wp_ ”为自定义表前缀,比如:wp_mf8_。 登录 MySQL 数据库,运行以下SQL语句,修改默认表前缀为自定义前缀:

RENAME table `wp_comments` TO `wp_mf8_comments`;
RENAME table `wp_links` TO `wp_mf8_links`;
RENAME table `wp_options` TO `wp_mf8_options`;
RENAME table `wp_postmeta` TO `wp_mf8_postmeta`;
RENAME table `wp_posts` TO `wp_mf8_posts`;
RENAME table `wp_terms` TO `wp_mf8_terms`;
RENAME table `wp_term_relationships` TO `wp_mf8_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_mf8_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_mf8_usermeta`;
RENAME table `wp_users` TO `wp_mf8_users`;

现在需要修改选项和 usermeta 表,让一切工作。 输入以下SQL查询:

SELECT * FROM `wp_mf8_usermeta` WHERE `meta_key` LIKE '%wp_%'

转移 wp-config.php 文件

因为 wp-config.php 默认就是在根目录的,很多人就直接会对准这个目标已经攻击,因此我们还可以让 wp-config.php 文件搬个家~

清空 wp-config,php 的内容,加入:

<?php
if ( !defined('ABSPATH') )
  define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'path/to/wp-config.php');

OpenShift自动重启脚本

//进入本地工程目录
.openshift/cron/minutely
//新建自动重启脚本
restart.sh

#复制这段代码到restart.sh

#!/bin/bash
export TZ='Asia/Shanghai'
curl -I ${OPENSHIFT_APP_DNS} 2> /dev/null | head -1 | grep -q '200|301|302'
s=$?
if [ $s != 0 ];
then
echo "`date +"%Y-%m-%d %H:%M:%S"` down" >> ${OPENSHIFT_DATA_DIR}web_error.log
let t=`date +"%M"`%5
if [ $t -eq 0 ];
then
echo "`date +"%Y-%m-%d %H:%M:%S"` restarting…" >> ${OPENSHIFT_DATA_DIR}web_error.log
/usr/bin/gear stop 2>&1 /dev/null
/usr/bin/gear start 2>&1 /dev/null
echo "`date +"%Y-%m-%d %H:%M:%S"` restarted!!!" >> ${OPENSHIFT_DATA_DIR}web_error.log
fi
else
echo "`date +"%Y-%m-%d %H:%M:%S"` is ok" > ${OPENSHIFT_DATA_DIR}web_run.log
fi

#复制这段代码到restart.sh

//使用ssh赋予脚本711权限

chmod 711 restart.sh

Ubuntu安装SS并启用chacha20

1, 安装shadowsocks

apt-get install python-m2crypto build-essential python-pip
pip install shadowsocks

2, 编译安装libsodium

wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar zxf LATEST.tar.gz
cd libsodium*
./configure
make && make install

3, 修复动态链接库

sudo echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

4, 启动shadowsocks

ssserver -p 12345 -k password -m chacha20

Let’s Encrypt的证书签发与配置

本教程没有用到任何脚本进行配置Let’s Encrypt的证书,对于新手熟悉一下https的配置也是有帮助的。教程中的出现的xiaokyun.com域名需要替换成你要签发的域名。另外教程是在阿里云ECS上实践出来后才写的,跟着教程走就可以签发成功。

签发Let’s Encrypt证书

进入有root权限的终端,先停止nginx运行(必做)

CentOS 6.x:

service nginx stop

CentOS 7.x:

systemctl stop nginx

然后获取Let’s Encrypt的源代码

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

接着给你的网站签发证书

./letsencrypt-auto certonly --standalone --email i@xiaokyun.com -d xiaokyun.com -d www.xiaokyun.com

!注!意!

(from https://pypi.python.org/simple/python2-pythondialog/) failed: <urlopen error [Errno -2] Name or service not known>

如果出现这个报错,则需要进行下面的配置

mv /etc/resolv.conf /etc/resolv.conf.backup && vim /etc/resolv.conf

打开resolv.conf文件之后里面应该是什么都没有的

i 进入编辑模式,复制下面的内容进去,保存退出

nameserver 223.5.5.5
nameserver 8.8.8.8

然后重新执行,给你的网站签发证书

./letsencrypt-auto certonly --standalone --email i@xiaokyun.com -d xiaokyun.com -d www.xiaokyun.com

这个主要是修复服务器上的DNS解析失败的问题


完成上面的操作,Let’s Encrypt就已经给你的网站签发证书了

可以输入下面命令查看

ls /etc/letsencrypt/live/xiaokyun.com(这里的域名是你的签发证书域名)

会发现里面有四个文件

cert.pem  chain.pem  fullchain.pem  privkey.pem

前两个是给Apache用的,后两个才是给Nginx用的

配置Nginx

这里默认你已经开启了https,只是替换证书而已···

打开网站所对应的Nginx的conf配置文件

假设我的配置文件是在 /usr/local/nginx/conf/vhost 的目录

vim /usr/local/nginx/conf/vhost/xiaokyun.com.conf

打开后,按 i 进入编辑模式,找到

ssl_certificate .............;
ssl_certificate_key ............;

修改为

ssl_certificate /etc/letsencrypt/live/xiaokyun.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xiaokyun.com/privkey.pem;

不要忘了启动Nginx

CentOS 6.x:

service nginx start

CentOS 7.x:

systemctl start nginx

至此,Let’s Encrypt的证书签发与配置已经完成,刷新你的网站,就能看到绿绿的小锁

自动续时

一般地,Let’s Encrypt的证书有效期只有90天,所以需要设置一个自动续时的任务

先安装crontabs,一般情况下是提示已经安装

yum -y install crontabs

然后

crontab -e

添加下面的内容在新的一行

0 0 1 * * ./letsencrypt-auto certonly --renew-by-default --email i@xiaokyun.com -d xiaokyun.com -d www.xiaokyun.com

接着,根据自己服务器的系统版本在后面再填一行

CentOS 6.x:

0 1 1 * * service nginx reload

CentOS 7.x:

0 1 1 * * systemctl reload nginx

添加完成后,保存退出,查看定时任务列表

crontab -l

查看显示成功追加了两条定时任务···

这样,服务器就会在每个月1号自动为你的Let’s Encrypt证书续签了。