post

升级LNMP,备份和还原WordPress

前一阵子心血来潮的要升级https,但是博客很久没升级了,使用的 LNMP 0.9 版本,环境不支持https,我尝试过手动升级,可还是比较麻烦的,而且问题比较多,一不做二不休,直接升级到 LNMP 1.3。

升级就意味着要重做系统,重新安装 Nginx、MySql,最重要的是 WordPress 的数据备份和恢复。

下面介绍一下升级LNMP以及备份和还原 WordPress、数据库的过程。

系统环境:CentOS、LNMP 0.9

一、备份数据

  1. 先备份插件的配置,有的插件可以导出配置,或者截图
  2. 最好停用插件 否则可能由于某些依赖错误导致无法访问
  3. 备份 WordPress 网站目录下所有文件,我使用又拍云作为图床,所以备份文件很小
  4. 备份数据库,可以导出sql,建议是直接拷贝MySql数据库目录,位置: /usr/local/mysql/var/xxx(xxx为数据库名称)
  5. 备份 nginx 配置文件,将有过修改的都备份,位置:/usr/local/nginx/conf

备份时不要漏掉重要文件,理论上nginx+数据库+应用即可恢复访问了,最快的速度先让博客恢复是要紧事。

二、重做系统

由于我使用的是 Linode VPS,直接登录管理端重新选择系统版本即可,这次我直接升级到新版 CentOS 7。

安装系统后,需要使用 SSH 登录,使用原有SSH登录会提示: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

因为第一次SSH会生成密钥,如果重做系统了,需要清除客户端的当前用户目录内的 .ssh/known_hosts 文件,或者删除连接记录重新创建。

如果使用 Chrome 浏览器的插件:Secure Shell,重新安装后就可以正常登录了。

三、安装 LNMP 1.3

当前军哥的 LNMP 最新版是1.3,安装过程直接参照原文即可:http://lnmp.org/install.html

添加vhost,每个虚拟主机就是一个网站,使用lnmp命令即可,参照:http://lnmp.org/faq/lnmp-vhost-add-howto.html

四、扩展

LNMP 1.3 版本中支持PHP7,但是暂时还没有缓存加速类扩展支持,如果需要 eaccelerator、xcache 等扩展的话,请不要使用 PHP7。

我使用了PHP7,为了提高速度,使用了七牛的域名加速。

如果使用了 W3TC 插件,并且访问出错:

Fatal error: Uncaught Error: Class ‘Memcache’ not found in /home/root/izhangheng/plugins/w3-total-cache/lib/W3/Cache/Memcached.php:38 Stack trace:

需要安装 php-memcached,注意是 memcached 而非 memcache,安装方法可以查看:http://lnmp.org/faq/addons.html

关于memcached的详细介绍可以参照:http://yusi123.com/2831.html

五、恢复程序和数据库

将 nginx vhost 配置和 WordPress 程序还原,这个比较简单,直接拷贝到相应目录即可。

还原数据库,将备份好的数据库名称的目录(比如izhangheng),同样是拷贝到 /usr/local/mysql/var/ 目录内,然后赋予权限即可正常访问,授权命令如下:

$chown -R mysql:mysql xxxx(数据库文件夹)
$chmod 660 xxxx/*

六、手动禁用插件

如果无法正常访问,而且没有备份前禁用插件的话,也可以手动禁用插件,可以通过 phpMyAdmin 或者 MySql 命令修改数据,这个Google一下就行了。

七、WordPress 重写规则

以下两个重写规则,根据需要添加到 nginx vhost 中的域名配置文件中即可。

##支持无后缀名的重写规则
location / {
  try_files $uri $uri/ /index.php?q=$uri&$args;
  }

##支持伪静态(html)的重写规则
location / {
  try_files $uri $uri/ /index.php?$args;
  }

八、关闭 mysql 和 nginx 日志

  1. 关闭 mysql binlog 日志,参照:http://www.vpser.net/manage/delete-mysql-mysql-bin-0000-logs.html
  2. 关闭 nginx 访问日志,修改vhost中域名配置文件,将access_log配置改为: access_log off;
  3. 重启 Nginx 和 MySql 即可

至此,就大功告成了!

Comments

  1. 我都不备份直接升级 会如何?

  2. 嗯,升级前最好备份一下,要不出问题就哭了

Trackbacks

  1. […] 这段时间我爬了许多独立博客,从评论、十年之约到各种博客聚合站点以及博客中的友情链接,我看了接近100个博客。在群里聊天时,王老师提供了一个miniflux,类似于多年前的Google Reader,一下子就提起了我的兴趣。于是我想着在自己的vps也搭建一个,google了一番,找到这篇文章,内容里提到使用宝塔安装miniflux,我对宝塔也有所耳闻。我的vps用的是vultr家的服务,后台并没有自带cpanel类的面板,所以就在没有充分准备好的情况下开始决定安装宝塔面板。主机此时已经安装了lnmp,这是我犯下的第一个错误。安装完成后进入面板,弹出来的窗口提醒给主机一键安装lnmp/lamp:我纳闷了,我不是已经安装好了吗?群里的林老师提醒我博客挂了。我做独立博客以来最害怕的事情就是挂站,vps给了我自由的同时也给了我难题,但也是一个考验自己的时候。我决定一步步排查,从访问网站的报错开始。ssh变成了默认的端口,nginx、mysql等程序还在正常运行,但输入域名却不停提示重定向和拒绝访问。我google了卸载宝塔面板的方法,也没有解决。我想着我的vps有做snapshots,进去一看,最近的一次是在17号,这几天已经有一篇文章和一些评论了。于是我在网络上找了一篇wordpress备份和恢复的文章,希望通过已连接的ssh和sftp备份一遍数据。具体内容是: […]

Speak Your Mind

*