前言

最近在将我的个人站点从 Wordpress 迁移至 Typecho 平台,原因很简单,站在我个人角度来说 Wordpress 可能过于臃肿,平时我也只是在平台上面写写文章、看看动态而已,没什么太特别的需求,加之最近有发现网站加载越来越慢了。

其实促使我决定更换平台的主要原因是 Wordpress 界面过于“复杂”(其实就是个人用不上的功能太多...),而且原生不支持 Markdown 编辑,于是决定改用功能、界面都更简洁,而且原生就支持 Markdown 编辑的 Typecho 平台。

在此次的网站迁移中,我决定不再用原域名(taitaiblog.com),而是使用新注册的域名(wuqintai.com)。

网站迁移,对于新手而言,肯定是一脸茫然,这需要考虑方方面面的问题,如:新站点系统环境部署、新站点安装、数据迁移、数据验证、旧网站到新网站权重转移 等等。

下面,我给大家讲解一下如何从 Wordpress 迁移到 Typecho 平台。注意,这里更多的是 提供思路而不是详细的步骤教程,如有不对或不完善的地方也请各网友指正。

运行环境配置

安装 Typecho 需要系统底层软件环境的支持,以最常见的 LNMP 环境为例:

第一阶段:安装 LNMP 环境

  1. 点击 LNMP 官进入网获得安装程序及相关资料 。
  2. 查看 Typecho 安装要求
  3. 根据要求安装适合的 LNMP 软件环境。

第二阶段:创建网站虚拟主机

  1. 执行 lnmp vhost add 命令添加一台虚拟主机。
  2. 创建虚拟主机时: 需要开启 pathinfo 探针支持、使用 typecho 伪静态,同时选择不创建 数据库 和 SSL 证书。

Typecho 站点安装

第一阶段:创建 Typecho 数据库

通过 phpmyadmin 或 命令行 等方式在 MySQL 主数据库上创建用于安装 Typecho 网站的数据库。

第二阶段:将 Typecho 网站放至到虚拟主机的根目录下。

你可以访问 Typecho 官网,将源码下载到本地,然后再通过 FTP 上传到网站根目录,或直接在网站根目录进行下载。

以下是直接在网站根目录下载的示例代码:

# 1)虚拟机根目录
cd xxxxxx
# 2)下载 Typecho 源码
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
# 3) 解压 并 删除相关文件
tar -zxvf 1.1-17.10.30-release.tar.gz && mv build/* ./ && rm -rf build/ 1.1-17.10.30-release.tar.gz

第三阶段: 访问网站,根据向导完成安装

在浏览器输入你网站的 IP 或 域名进入安装向导,根据向导完成安装即可!

Tips: 安装过程中需要指定数据库的搜索引擎,如果你不知道,可执行以下命令查看。
mysql> show engines;    # 查看当前 MySQL 提供使用的引擎
show variables like '%storage_engine%';    # 查看 MySQL 当前默认的存储引擎
show
注意:如果你使用的是默默网站目录,可使用 IP 或 域名进行访问,如果是 创建的指定虚拟机,则需要通过对应的 域名进行访问。

HTTPS 配置服务

Tips: 默认网站已可以通过 HTTP 方式进行访问,为了更安全以及方便后续的 SEO 可以选择性的决定是否配置 HTTPS 服务。

以下将介绍如何配置 HTTPS 服务。

第一阶段: 安装 acme.sh

acme 是一个用于创建和管理 SSL 证书(特点:自动续签,永不过期)的命令工具,详情:点这
curl  https://get.acme.sh | sh
~/.acme.sh/
alias acme.sh=~/.acme.sh/acme.sh

第二阶段:生成证书

acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/

参数说明:

  • -d : 是需要签证的域名
  • --webroot : 是域名对应的网站根目录

注意:签证(续签)过程中是需要验证域名合法性的,方案有多种,这里使用的是配合网站服务器的验证方法,因此,需务必保证签证的域名以及对应的网站目录可访问。

默认: 创建好的证书防止在 /usr/local/nginx/conf/ssl/xxx域名文件夹xxx/ 下。

Tips: 默认证书只有 90 天左右的有效期,但 acme.sh 已在系统的 cronjob 中为我们创建了自动续签任务,做到一次创建、自动续签、永久有效。

第三阶段: 在控制虚拟主机的 nginx 配置文件中引用证书

编辑 /usr/local/nginx/conf/vhost/网站域名.conf 文件,默认只有一个监听 80 端口的 server 配置,将其 server 配置完整 copy 一份并追加到原 server 的下方,接着根据下方提示修改配置:

# 新追加的 server 配置项
server
    {
        # 1)将原 80 修改为 443 ssl http2
        listen 443 ssl http2;
        server_name www.example.com example.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/www.example.com;
        # 2)在 root 的下方追加以下内容(注意将证书修改为自己的)
        ssl on;
        ssl_certificate /usr/local/nginx/conf/ssl/example.com/fullchain.cer;
        ssl_certificate_key /usr/local/nginx/conf/ssl/example.com/example.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        ...
        ...
        ...

}

保存修改后,执行以下命令重载 Nginx 服务:

lnmp reload nginx
或
service reload nginx

第四阶段: 验证 https 服务是否可用

在浏览器上以 https 的方式访问你的站点,此时地址栏的 小锁 图标会出现,此时你可以点击小锁,查看证书颁发信息,至此 https 配置完成。

拓展:

如果你希望全站都以 https 方式进行访问,那么你可以在网站的 Nginx 配置文件中,在监听 80 端口服务的配置中的 server_name 字段的下方,加入以下指令,强制将 http 的请求也跳转到 https 上:

# 加入以下字段将强制重定向到 HTTPS
rewrite ^(.*)$  https://$host$1 permanent;

注意: 由于加密是需要消耗性能资源的,如果你的服务器的性能不好,可针对性的开启加密。

网站数据迁移

根据 Typecho 官网 wordpress-to-typecho 迁移操作文档,下载 wordpresstotypecho(v1.0.3 Beta) 插件, 然后安装到前面安装的 Typecho 站点上,接着根据提示配置好插件所需信息即可轻松一键同步。

当然,同步过来的数据并非所有,但重要的数据都会同步过来,如:文章标题、内容、标签、目录 等,但原有文章的阅读量似乎没有同步,需要自己手动同步。

当然,针对该部分数据,因人因站而异,本人也写了一个 Python 脚本进行同步,后续已单独文章发布,敬请留意!

网站改版

在一个流量为王的信息时代中,一个网站经营许久,一定会有相关的权重,如果因为迁移到新域名而无法将原有流量转化到新站点上来,这是一个很大的亏损。

其实,主流的搜索引擎服务公司是有提供 网站改版 服务的,目的就是帮助用户将旧站点的流量迁移到新站点上(其实就是通知搜索引擎加快收录改版后的内容)。

所以,这部分的内容主要是讲如何将原网站的 SEO 权重转移到新站上面来,以百度为例。

注意:默认你有在百度提交网站信息给百度蜘蛛的操作。

第一阶段: 在百度搜索资源平台提交网站改版信息

登录 百度搜索资源平台,接着点击 用户中心 --> 站点管理

  1. 点击 添加网站 将你的新站点添加进来。
  2. 点击 旧网站 ,进入其管理页面,接着在左侧下方找到 网站改版 服务,点击进去即可查看改版操作说明,按改版提示完成操作即可。
百度提供 站点改版、 规则改版 和 新旧URL对 改版 3种,请根据个人站点情况按需选择。

第二阶段: 原网站资源 301 重定向到新网站

为了将旧网站的流量迁移转移到新站点上,例如:原网站文章 http://www.abc.com/11.html 迁移至新网站后地址为 http://www.cba.com/archives/11.html ,那需要怎样进行对接呢?

此时,可以使用 301 重定向方式进行对接(也是百度网站改版的要求),那又需要怎样操作呢?

同样是配置 Nginx 的配置文件,找到原网站的 Nginx 配置文件,接着编辑它:

# http 部分 重定向
server {
    listen 80;
    server_name mydomain.com;
    # 重定向语句
    return 301 http://anotherdomain.com$request_uri;
    ...
    ...
}

# https 部分 重定向

server {
    listen 443;
    server_name mydomain.com;
    # 重定向语句
    return 301 https://anotherdomain.com$request_uri;
    ...
    ...
}

301 后的信息是你要重定向的新域名信息,按实际情况调整,其中 $request_uri 表示将原请求的所有参数信息传递给新域名。

Tips:Nginx 配置相对复杂,如果想了解更多可查看:Nginx入门教程

第三阶段: 等...

按百度的提示,网站改版周期在 12.5 ~ 50 小时内完成。 前提是所有操作均无误!!!

时间到了之后,你就可以在百度的搜索引擎输入以下指令查看收录情况了:

# 按实际情况修改以下域名
site: www.your_new_site_domain.com

小结

本教程只提供一个大体的思路,具体的过程步骤忽略不说,原因在于每个人遇到的问题、选择的环境、改版信息等等都涉及到非常多的问题,很难用一篇文章来讲述所有。

各位可以根据思路及上述提供的相关网站信息,一步一步的去解决,不懂的可以问度娘或看我的其它相关文章,又或给我留言。

拓展

1、SSL 相关教程

最后修改:2021 年 06 月 20 日 12 : 18 PM