WordPress网站的手动迁移

这是我第一次在外部服务器上写文章,前面所有的文章都是在本地服务器完成的,主要是这几天把博客网站转移到了外部,期间的过程觉得非常有必要做个分享,也写几句心得体会。

很早以前就想把博客放到外面去,但一直是拖延症状态,所以就在内网自言自语了很长一段时间,新的一年都开始了,终于下了决心做这件事。网上百度了一番,wordpress的迁移有很多种方法,用专门的插件简单方便,但觉得我也这样做似乎没有乐趣,同时也想搞清网站运行和设置的一些底层原理,决定还是手动进行迁移,由于能借鉴的信息不多,整个过程花费了不少时间,但收获也不少。

几点感受:

1、手动迁移网站涉及的过程比较复杂,也要求多方面的技术,如果没有一些Linux方面的基础,不建议这样做,另外没有太多时间、不想太麻烦的人也不建议这样做,毕竟这个过程还是比较耗时耗力的。当然如果你有折腾的精神,非常值得,能学到不少东西,也是一个成长的经历。

2、任何时候还是要善于学习,网络上还是有许多有意义的教程,当然更要善于自己分析问题,尝试解决问题,由于系统环境不同,同样的问题别人的答案,你未必有用,其中很多问题主要还是要靠自己摸索,所以经验分享出来,也是对学习别人经验的一种回馈吧。

3、wordpress是一个依靠apache和PHP运行的内容管理系统,因此根本不需要另外安装什么面板之类的东西,环境搭建在一般的Linux发行版上几条命令就可以完成,真正有难度的是网络环境配置和wordpress本身数据的更改。

这里主要谈一些系统迁移的基本要求和思路,注意的问题,不详细讲每一条命令。

一、服务器的选择

操作系统环境建议选比较通行的Linux发行版,因为这样发行版有比较好的包管理,一些基本的系统组件,一条命令就能安装好,也能很方便就在网络上搜索到有用的帮助,我选的是Ubuntu。

新的操作系统运行后,首先是更新源,建议安装防火墙,放行80和443端口,主要是考虑安全问题。

系统建设阶段也可直接用root帐户登录,方便一些,网站运行后再用普通用户身份维护。

二、准备域名和证书

域名一般需要购买,也要做好解释,这是建站的基础设施。

证书可以购买,但最好是直接自己申请免费的证书。

以上要求,网络上教程很多,要完全靠自己准备好,没有经验的人也是要花很大精力的。

三、网络基础环境搭建

1、安装Apache2

apt install apache2

安装完成后,apache默认自动启动,通过以下命令查看 apache 运行状态:

systemctl status apache2

输出类似内容,说明已经安装成功并默认运行。

到这里其实就可以依赖apache运行静态的网站了,在浏览器输入 hhtp://ip(域名),将出现apache的示例页面,表示系统安装成功。

2、安装PHP

apt install php

apt install libapache2-mod-php

apt install php-mysql

其中libapache2-mod-php和php-mysql是支持PHP与apache和数据库运行的扩展。

四、数据库环境

wordpress运行时,很多状态和设置信息都需要储存在数据库中,所以系统正常运行还需要配置好数据库环境。

由于是做wordpress的迁移,这里安装的数据库最好与原网站运行的数据库一致,免去不必要的麻烦,我用的是MariaDB。

1、安装数据库

apt install mariadb

可以用systemctl status mysql命令看数据库是否正确安装:

2、 设置数据库帐户密码

MySQL 安装完成后,为安全起见,建议运行 MySQL 的安全配置,设置 root 密码等:

mysql_secure_installation

设置 root 密码,之后一路提示默认输入 y,回车即可。

3、 创建wordpress数据库以及帐户、密码

mysql

CREATE DATABASE aadb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE USER ‘bbuser’@’localhost’ IDENTIFIED BY ‘xxxxxxxx’;

GRANT ALL PRIVILEGES ON *.* TO ‘bbuser’@’localhost’;

使变更生效

FLUSH PRIVILEGES;

这里设置的数据库、用户和密码都在后面wordpress的设置中用到。

五、将原网站文件数据上传到新网站

1、原网站导出数据库

1.1 从原网站导出数据库并保存为本地1234.sql文件

1.2 在原数据库中新建一个数据库,并把上述数据导入

1.3 将1.2新建数据库中的部分字段修改为新网站的链接,并再次导出为5678.sql文件

1.4 将5678.sql文件上传到新网站备用

2、新网站导入数据库

将5678.sql文件导入到新网站的aadb数据库

3、原网站数据打包

将原网站整个主目录用压缩软件压缩为abcd.zip文件,并将abcd.zip文件上传到新网站。

原网站数据一定要进行打包,再在外部服务器解压,因为都是小文件,不打包直接上传可能需要几个小时,而打包再上传可能只要几分钟。

4、新网站主目录解压数据

将abcd.zip文件解压到准备放置新网站的主目录位置,根据apache的文档建议,放置在/var/www目录下比较好,如/var/www/cc 等,如果想放在别的地方也没有问题。

六、设置新网站

原网站数据上传后,数据里面的很多内容还是原有的,并不能在新网站直接使用,比如链接、程序接口等,这些都要进行手工更换。

新网站要运行老网站的内容,新网站的网络门户必须配置好利用原网站的内容,同时原网站中wordpress目录中的基本配置也要修改,使它能正确在新系统环境中运行。

1、wordpress配置数据

进入系统后台,修改主目录下的wp-config.php文件

wordpress启动要连接数据库,以上config文件就配置好了数据库。

2、网络环境配置

涉及修改的文件主要以下几个:

2.1 /etc/apache2/apache2.conf

加入DirectoryIndex index.php index.html语句,因为wordpress直接首页运行php。

加入新网站主目录,并配置好。

2.2 /etc/apache2/mods-available/dir.conf

index.php移动到最前面

2.3 /etc/apache2/sites-available/000-default.conf和/etc/apache2/sites-enlabled/000-default.conf

通过网站环境的配置,就将新网站指向了80端口和自己原数据的主目录

3、验证新网站的运行

浏览器输入 http://域名(ip)将出现wordpress的页面,只是页面上的链接是失效的。

七、为网站使用https连接,并修复链接

到第六步其实已经基本完成网站的迁移,可以在更换链接数据后,从80端口进行访问,但在外网环境这样肯定是不安全的,没有实际意义,所以要为网站设置https访问。

1、修改/etc/apache2/sites-available/default-ssl.conf文件

其中,DirectoryIndex index.php是添加内容,证书位置改为自己上传证书位置

2、 链接上述修改文件到 site-enabled

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-ssl.conf

只要sites-available/default-ssl.conf做了修改之后sites-enabled/000-ssl.conf也会做相应的修改。

3、 上传证书到指定目录

4、 重启apache2服务

systemctl restart apache2

5、验证https浏览,出现登录页面

6、修复网站中的链接

mysql

use aadb

update wp_posts set post_content=replace(post_content,’http://eeeeee’,’https://fffffff’);

此时进入后台,各项功能应该正常,包括跳转到各个栏目以及进入文章的浏览、修改和写文章。

7、 强制开启SSL连接可以提高网站的安全性

修改/var/www/wordpress/wp-config.php

添加以下文本:

define(‘FORCE_SSL_LOGIN’, true);

define(‘FORCE_SSL_ADMIN’, true);

至此,整个迁移工作就完成了,步骤还是比较多的,很多地方只讲到了原理,细节部分都可以从网络上学习到,这里讲的是整个过程,正确完成需要的是耐心。

发表回复

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