LITTLEFOX

Simple & Naïve

搬家记录 即如何建立一个WordPress站点

鉴于之前的服务器(1Q Cloud)国内访问速度实在感人,并且不能升级内核开启BBR,经过再三犹豫还是放弃了大空间、无限流量和自动备份,把网站搬走了- –

恰逢前两天91yun.org的618剁手活动,看了下VirMach家的,好像低配还没4月份那次便宜,但是1G以上的还不错,1G+20G的配置只要15.4刀,比之前的18刀便宜了2刀多,够买个麦辣鸡腿堡了!犹豫了半天,决定再加一个麦辣鸡腿堡,上个DDoS防护……

话说VirMach家的DDoS防护真是便宜到没朋友,Voxility的500G,前两个月还是7刀10刀,这次丫干脆5刀一年了,也是够了。DDoS防护需要3天时间部署,于是我在2天半的时候收到了我的新IP,然后问题来了,由于需要走Voxility的路由,去程果断绕英国,ping也不好看了,网站测速从原来的全国上下一片墨绿,变成翠绿中夹杂黄色了- -不过怎么也好过之前的一片黄色中夹杂翠绿,先用着吧,实在不行改下域名解析,也就切到直连线路了。

开始搬家!其实WordPress可以很方便地迁移,把之前的数据打包放到新服务器上解压即可,不过本着不折腾不舒服的原则,我还是整体重装了……上次建站用的LinuxEye的一键包OneinStack,这次打算用军哥的,毕竟1.4正式版发布了,自动部署SSL之类的功能也跟上了,和OneinStack相比,我更喜欢lnmp start这样的命令,原因无他,懒- -编译LNMP用了接近一个半小时,看来真是一分钱一分货,之前在另外2个VPS上编译不到一个小时就搞定了。中间还遇到了个小问题,第一次编译提示空间不够1G,无法安装MariaDB10,free了一下,发现内存是991MB,WTF= =翻了翻脚本的目录,在main.sh中发现了判定内存的命令,把1024MB改成了980MB,终于可以编译了,然鹅第一次编译Nginx失败了,查了下似乎是源码没有下载成功,又下载lnmp full包重新编译。折腾了半天终于搞定,下面简单记录下过程:

安装lnmp

yum install screen wget
screen -S lnmp
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

安装:MariaDB 10.1.23 + PHP 7.15 + TCMalloc + Nginx + phyMyAdmin + Zend Optimizer,其中MySQL/MariaDB、PHP可选版本,TCMalloc可选是否安装,其他默认安装。如果安装过程中网路出现中断,可以执行命令screen -R lnmp重新连接安装窗口。

安装完成后,访问服务器ip,可以看到

《搬家记录 即如何建立一个WordPress站点》

安全起见,phpmyadmin目录名字可以改一下。接下来根据个人需要安装插件,我是参考了SEOIMO的教程,安装了OPcache和Memcached。

./addons.sh install opcache

很快就安装完成了;

./addons.sh install memcached

这个需要等几分钟,安装完成后,exit退出screen环境。

安装WordPress

首先,确保域名dns解析已经生效(否则无法添加SSL证书),建立虚拟主机

lnmp vhost add

选择各种设置,等待几分钟,完成。

然后设置http自动跳转https,一方面是安全考虑,另一方面我发现不设的话进入http站会显示一个什么内容都没有的WordPress模板页面,不明白为什么,总之设了以后就好了。

vi /usr/local/nginx/conf/vhost/[domain].conf #[domain]是添加时输入的域名

server_name _;的下一行,加入

rewrite ^(.*)$ https://$host$1 permanent;

重启lnmp生效

lnmp restart

进入网站根目录(根目录是在添加虚拟主机过程中设置的,默认是下面的位置)

cd /home/wwwroot/[domain]

下载WordPress程序,链接在https://cn.wordpress.org

wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz

解压,移动到网站根目录

tar -xzvf wordpress*.tar.gz
mv wordpress/* . && rm -rf wordpress

修改权限

chmod -R 755 /home/wwwroot
chown -R www /home/wwwroot

启用scandir函数,否则会导致WordPress后台看不到安装的主题,以及当前主题总显示 “有新的翻译可用” 的提醒

vi /usr/local/php/etc/php.ini

输入?scandir查找,将其删除,保存。

重启lnmp

lnmp restart

打开域名,在浏览器中完成数据库绑定等操作。第一次新建虚拟主机时dns解析还没生效,SSL没有配置成功,所以建完又删了,数据库和网站目录也删了,随后再新建时发现同名的数据库无法创建,不知道是不是bug,换了个数据库名称就好了。

至此,WordPress安装完成。

配置WordPress

php优化我看了下,默认的设置已经比较接近,就没有再理会;keep-alive开不开好像有不同的说法,我也就没开。所以主要是调整设置、修改页面内容,还有安装插件之类的,下面是我使用的插件:

  • Akismet Anti-Spam:反垃圾评论,免费版即可
  • QQWorld自动保存图片: 自动保存远程图片到本地,防止图片链接失效,当然还有其他功能,我暂时没有用到
  • Slimstat Analytics:很详尽的访问统计
  • Wordfence Security:安全插件,免费版已经很强大,这个在安装的时候遇到一点问题,开启Extended Protection时会提示.user.ini没有权限,大概是新建虚拟主机时的一个保护措施,需要用chattr命令解除
chattr -i .user.ini
chmod 777 .user.ini #这一步可能不是必须的,我也不知道合适的权限是什么,但是这么改一定有效,记得配置完后一定把权限改回去,否则存在安全隐患

完成Wordfence配置后,等待几分钟让它生效,然后把权限改回去

chmod 644 .user.ini
chattr +i .user.ini
  • WP Smush:图片压缩插件,节约带宽,提升访问速度
  • WP Super Cache:快速缓存插件,利用缓存提升访问速度,和W3差不多,WP Super Cache之前听说兼容性问题比较多,不过都是前几年的文章了,我使用还没发现有什么问题
  • WP Time Capsule:备份插件,可以备份到Google Drive,支持定时备份、增量备份,免费版功能已经足够强大,由于不使用压缩,首次备份要若干个小时才能完成,之后的备份会很快
  • WP Sweep:清理插件,可以清理文章版本、草稿、删除的评论等,使用WordPress函数而非SQL语句,清理前请备份数据库
  • Image Zoom:实现图片点击放大
  • TinyMCE Advanced:编辑器增强,支持所见即的的Markdown语法
  • 至于为什么不用Jetpack,我承认Jetpack非常强大而且省心,特别是付费版可以替代以上大多数功能,但是我比较爱护我家VPS,不想为了几个期望的功能安装一个这么臃肿的插件╮(╯_╰)╭

2017.6.28更新

建立虚拟主机的时候没有绑定裸域名(为了防止某网抽风导致一级域名被墙,裸域名绑定了另一个虚拟主机),于是发现有的浏览器会自动跳转到www域名,有的不会,试了下域名跳转,发现会影响访问phpmyadmin之类的,于是就在index.html做了个跳转,所以访问littlefox.me的时候会有半秒的延迟,不过至少不是测试页了。

点赞

发表评论

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