前言
最近在将我的个人站点从 Wordpress 迁移至 Typecho 平台,原因很简单,站在我个人角度来说 Wordpress 可能过于臃肿,平时我也只是在平台上面写写文章、看看动态而已,没什么太特别的需求,加之最近有发现网站加载越来越慢了。
其实促使我决定更换平台的主要原因是 Wordpress 界面过于“复杂”(其实就是个人用不上的功能太多...),而且原生不支持 Markdown 编辑,于是决定改用功能、界面都更简洁,而且原生就支持 Markdown 编辑的 Typecho 平台。
在此次的网站迁移中,我决定不再用原域名(taitaiblog.com),而是使用新注册的域名(wuqintai.com)。
网站迁移,对于新手而言,肯定是一脸茫然,这需要考虑方方面面的问题,如:新站点系统环境部署、新站点安装、数据迁移、数据验证、旧网站到新网站权重转移 等等。
下面,我给大家讲解一下如何从 Wordpress 迁移到 Typecho 平台。注意,这里更多的是 提供思路而不是详细的步骤教程,如有不对或不完善的地方也请各网友指正。
运行环境配置
安装 Typecho 需要系统底层软件环境的支持,以最常见的 LNMP 环境为例:
第一阶段:安装 LNMP 环境
- 点击 LNMP 官进入网获得安装程序及相关资料 。
- 查看 Typecho 安装要求 。
- 根据要求安装适合的 LNMP 软件环境。
第二阶段:创建网站虚拟主机
- 执行
lnmp vhost add
命令添加一台虚拟主机。 - 创建虚拟主机时: 需要开启 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 权重转移到新站上面来,以百度为例。
注意:默认你有在百度提交网站信息给百度蜘蛛的操作。
第一阶段: 在百度搜索资源平台提交网站改版信息
登录 百度搜索资源平台,接着点击 用户中心
--> 站点管理
:
- 点击
添加网站
将你的新站点添加进来。 - 点击 旧网站 ,进入其管理页面,接着在左侧下方找到
网站改版
服务,点击进去即可查看改版操作说明,按改版提示完成操作即可。
百度提供 站点改版、 规则改版 和 新旧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 相关教程
1 条评论
这个迁移插件 “”“”注意,本插件版本为(v1.0.3 Beta),仅适用于wordpress2.7“”“”
你注意到了这个么?