新家已搬,欢迎光临!
By: Date: 2020年6月22日 Categories: 程序 标签:,

前几天,使用已久的windows服务器已然到期,于是打算把blog迁出去。考虑到已经用习惯了的wordpress比较顺手,就不再打算更换其他的系统。那面临的一个重要问题就是迁移。尝试了导出插件,但在导入的时候遇到问题,又因为没配置发邮件功能,也不想去用他的debug功能。同时还考虑到之前安装的插件对原有数据库的侵入,因为一部分插件已经不需要安装。好吧,爱干净的我就选择了重新安装,再单独迁移数据和已上传的文件资源。一阵操作猛如虎之后,blog又回来了。选择一个清爽的模板,少了很多插件,一切又回到了从前。这里就记下搬家的过程好了。

安装php

目前最新的wordpress 5.4.2 版本要求php版本在7.3以上,因此如果你已经安装了低版本的php,虽不影响使用,但管理后台始终会提示需要升级,当然你可以选择无视,也可以选择关闭,那我选择升级,升到7.3版本。如果你本身没有安装,就直接跳过卸载部分吧。

卸载低版本php

查看当前安装php信息
php -v

查看所安装的软件包
php yum list installed | grep php

停止当前php服务
systemctl start php-fpm

使用通配符,对当前安装的php软件包执行remove yum remove php

安装 php 7.3

更换当前RPM源
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装EPEL源
yum install epel-release

安装REMI源
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Yum 源工具
yum install yum-utils

安装php7.3
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xml php73-php-imagick php73-php-zip

查看版本以及启动
php73 -v

设置开机自动启动
systemctl enable php73-php-fpm
设置开机自动启动,会在/etc/systemd/system/multi-user.target.wants/目录下新建一个/usr/lib/systemd/system/php73-php-fpm.service 文件的链接。

启动
systemctl start php73-php-fpm

安装Nginx

下载 Nginx
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

建立Nginx的yum仓库。
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装Nginx。
yum -y install nginx

启动Nginx并设置开机启动。
systemctl start nginx
systemctl enable nginx

Mysql

Mysql 这里就不安装了,我使用现有的数据库。如果你需要安装,参考文末的参考连接,或者网上大把文章任选。

安装wordpress

下载最新安装包
wget http://wordpress.org/latest.tar.gz

解压后
tar -xvf wordpress-5.4.2.tar.gz

重命名
mv wordpress-5.4.2 sundayfine.com

指定用户组
sudo chown -R apache:apache /mnt/wordpress

设置目录权限
chmod 755 /mnt/sundayfine.com/wp-content/

配置Nginx,增加默认页及对php的支持
vim /etc/nginx/conf.d/default.conf

location / {
    root   /mnt/sundayfine.com;
    index  index.php index.html index.htm;
}

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /mnt/sundayfine.com$fastcgi_script_name;
    include        fastcgi_params;
}

wordpress 数据迁移

这里先来看看wordpress的数据库表结构,因为我要从原来的数据库中导出这些表的数据(除了wp_options表以外),并在新库中执行。

表名描述
wp_commentmeta存储评论的元数据
wp_comments存储评论
wp_links存储友情链接(Blogroll)
wp_options存储WordPress系统选项和插件、主题配置
wp_postmeta存储文章(包括页面、上传文件、修订)的元数据
wp_posts存储文章(包括页面、上传文件、修订)
wp_termmeta这张表貌似都没有数据
wp_terms存储每个目录、标签
wp_term_relationships存储每个文章、链接和对应分类的关系
wp_term_taxonomy存储每个目录、标签所对应的分类
wp_usermeta存储用户的元数据
wp_users存储用户

数据库的导出和导入就不说了,任何一个Mysql客户端工具都支持导出数据SQL,在新库执行insert即可。
上述以外的数据库表,就可以不用导出了,这样会比较干净,当然根据你的需要,选择你需要的表导出并执行。

迁移上传的图片文件
/wp-content/uploads 目录存放所有上传的图片资源,拷贝原站点目录下/wp-content/uploads目录,到新wordpress相应的位置即可。

最后再说下ssl证书,阿里的免费证书貌似下架了,所以重新改成了FreeSSL,也非常方便。

剩下的工作就是重新登录wordpress后,做些基本设置,安装必要的插件,改改小样式就OK了,如果有子主题,重新上传就好。

到这里我们的环境,以及blog就都已经迁移完毕,其实如果你不需要重装wordpress,完全可以将数据库及代码复制到新地址发布即可。
上面的总结没写太详细,因为参考资料中的过程已经很清楚,这里只是总结并加入了一些补充和修正了,留个案底。

参考资料

  1. centos7.x yum安装升级php7.3版本
  2. 使用阿里云 ECS 快速部署 WordPress 博客系统

发表回复

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