LNMP Wordpress更换主机恢复记

来源:互联网 发布:雨滴桌面上的软件 编辑:程序博客网 时间:2024/06/05 14:46

之前在腾讯云上买过一个云主机用LNMP搭建了wordpress网站。后来有一天被我搞坏了(最低级配置装了一个Gnome桌面),网站打不开了。当时我就备份了数据库和wp-content目录,重装了操作系统(仍然是Ubuntu 16.04LTS 64位)。但之后一直有事情没有把网站重新搭建起来。

这两天想着换一个服务器,正好闲下来了就把这个网站的事情重新搞起来。

基本的Wordpress环境搭建按照这个博客的方法进行的:

http://www.cnblogs.com/qshow/p/mukuangling.html

步骤在这里就不重复了,但在这个过程中遇到几个问题:

1. 导入之前的sql数据库内容出现DATE不能为0的错误

我在mysql中新建了一个database,然后把之前备份好的sql文件导入进去。但是导入失败,提示说“Invalid default value for 'comment_date”。这其实是由于当前的mysql和版本和之前用的不同了,现在在sql_mode中含有“NO_ZERO_IN_DATE, NO_ZERO_DATE”也就是日期不能为0,而以前的数据库中就是把日期的初始值设为0。

解决方法:

查看当前sql_mode:

mysql> select @@sql_mode

如果在这里修改sql_mode,只能在当前session下生效,若想永久修改,则应修改my.cnf文件,它在/etc/mysql/my.cnf

在其中自行加入如下代码:

[mysqld]sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
之后重启mysql就可以继续导入了


2. 导入原来的sql文件出现"Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentContent' at row xxx "

这是因为我们的数据库中存在emoji表情,这些表情是按照四个字节为一个进行编码的,而mysql默认是以三个字节为一个进行编码。所以要修改一下设置:

还是修改之前的my.ini,然后只要加入如下代码即可:

[mysqld]character-set-server=utf8mb4[mysql]default-character-set=utf8mb4
之后同样需要重启MySQL

3. 修改nginx根目录后打开网站出现"No input file specified"

这是由于/etc/php/7.0/fpm/php.ini中的doc_root设置错误造成的,这里一定要换成你的网站根目录。

此外只要在nginx.conf中修改相应位置就可以了。


4. 导入了wp-content和原来数据库后,只能打开主页,文章都显示404

这是由于数据库部分字段错误。具体是什么错误我还不太清楚。

不过我的解决方法是:

1) 新建一个数据库,重新安装wordpress

2)进行相应设置(尤其是文章的固定链接要改成和之前一样)

3)在nginx.conf中的的/location段中加入如下代码:

try_files $uri $uri/ /index.php?q=$uri&$args;
4)导出新的数据库内容,将其中的wp_options字段全部复制,替换原来备份的sql文件中的该字段所有内容。

5)重新导入修改好的数据库文件

这个方法不太完美,会造成部分设置丢失,但网站的基本内容可以恢复。


搞了一个晚上加一个上午,终于将网站搬过来了。







原创粉丝点击