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. 嗯,升级前最好备份一下,要不出问题就哭了

Speak Your Mind

*

· 127 次浏览