HelloTypecho! ghost博客迁移至typecho踩坑纪

2020年3月19日,因为不满ghost的收费政策和ghost-cli糟糕的使用体验(想象一下小版本的变化导致整个程序都不可用),决定从ghost 2.x转向typecho系统。

参考资料:https://blog.csdn.net/u012505400/article/details/78704211
作者: 风清袖一 最后发布于2017-12-03 21:01:35

0. 安装Typecho前的准备(写给纯小白的,熟手请跳)

0.1 最基本准备

这里写一个大概,具体的操作大家可以多查查资料。

  • 购买一台主机 安装Debian或者CentOS系统。我本人比较熟悉CentOS,所以用的是最新的CentOS7.6。这次重装系统的时候,没想到腾讯云的预装镜像中竟然自动安装了fastmirrorlanguagePack(汉化包)插件。

    • 费用:如果你是学生,首次注册腾讯云使用会有一个超低的费用优惠,还提供一次低价续费的机会。
  • 购买一个域名。在国内cn是所有顶级域名 中便宜又比较大众的。如果买com会贵。用其他的又太小众了。
  • 域名备案并拿到备案号。这个时间可长可短,短的一星期,长的一个月。需要本人在备案系统上填写内容,还要等着网站给你寄来幕布,要去拍照登记,等待工信部给备案号。大多数Typecho模板会预留备案号的填写位置。如果你不备案,网站的80和443端口就会被serverhold,要想访问必须带丑陋的端口号。另外没有有正确填写备案号,也会被电话警告。
  • 完成后需要将你的服务器IP和域名关联起来,也就是做DNS解析。如果前几步骤你都是在同一家完成的,那就太方便了,有的平台甚至一键接入。

0.2 你需要大概如下的基础知识

  • 使用putty,xshell,FinalShell的基础知识。推荐finalshell。开源免费,而且还支持FTP上传文件,xshell往后稍稍吧啊
  • 操作Linux命令行的基本知识。这个很简单的,大部分指令网上都查得到,如果你实在不清楚,我罗列几个最基本的:

    • yum 命令(yum是centos下的包管理器)

      yum install 包名 #使用yum安装特定的包 想象一下部分系统连vim都没有 我惊了
    • wget命令

      wget fileurl #下载特定的文件。很多程序都通过这种方式下载包或者安装脚本。
      wget fileurl && bash xxx.sh #很多程序喜欢用这种一键命令下载并执行脚本
    • cd 命令

      cd /a/full/directory #跳转到特定目录
      cd ../ #跳转到上级目录 ../可以叠加使用 ./指的是本目录 
    • mv移动命令

      mv 一个文件或者目录 目标另一个目录
    • ls命令

      ls #用来列举当前目录的文件
    • vim编辑器的操作

      vim 文件完整路径或者当前文件路径 #用vim编辑器打开文件

      需要在vim中按任何非功能键进入插入模式,注意字符不要被覆盖了。完成后先按esc再输入:wq为保存并退出。使用vim的其他操作请自行百度

    • tar 命令

      tar -xcvf 压缩包 #用来解压tar.gz压缩包

为什么非得用命令解压呢。因为很多程序本身不大,但是压缩包里全都是小文件。如果你现在电脑上解压,再通过FTP上传,你的上传会非常慢,因为不断的在建立小文件的TCP链接和文件传输。你的时间全浪费在建立和释放链接上了。

1. 安装LNMP环境

typecho推荐使用LNMP(LinuxShell Nginx MySQL PHP环境),实际上本人也偏好使用nginx而并非Apache。安装也完全不需要使用宝塔这种臃肿的面板。使用了LNMP.org的一键安装包(链接是这里) 进行安装;睡前发现这个玩意儿是现场编译的,遂挂机让其自动配置。实际安装花了半小时。

2. 添加网站虚拟主机

为了让typecho拥有一个干爽的环境,推荐使用LNMP的虚拟主机方法添加。方法见https://lnmp.org/faq/lnmp-vhost-add-howto.html

lnmp vhost add

期间要牢记MySQL的root账号密码,安装的时候要用。

3.安装Typecho

typecho的官方安装包下载下来,改一个没有.的名字(原名字是1.1-17.10.30-release.tar.gz),再通过FTP上传到 /home/wwwroot/上一步你配置的网站虚拟域名。确保你的目录结构是

/home/wwwroot/ryanz
├── admin
├── build
├── config.inc.php (这个会在你配置好typecho之后出现)
├── index.php
├── install
├── install.php
├── LICENSE.txt
├── usr
└── var

然后访问你的域名,这个时候就会看到typecho的安装界面了,提供一下之前安装时候MySQL的数据库信息和用户密码。typecho会自己完成安装配置。

4. 为网站上SSL/HTTPS访问并开启伪静态

参考资料:

https://blog.csdn.net/zrainload/article/details/94437343

https://www.laobuluo.com/338.html

如果你的网站还没配好SSL证书,没有关系,可以使用LNMP自带的Letsencrypt,也可以找自己的主机供应商平台上申请。我的域名、主机、DNS都在腾讯云上,所以非常方便的完成了。

如果你通过运营商申请了,下载Nginx专用的证书和秘钥文件。下面还是介绍一下大概过程。

4.1 为网站启用HTTPS并强制转换HTTP为HTTPS

FTP定位至/usr/local/nginx/conf/,该目录下新建一·个文件夹ssl或者cert随你喜欢。把你的.crt.key文件上传到这里。记住这两个文件的路径。并在终端执行以下指令:

lnmp ssl add

使用这条指令为你的虚拟主机指定SSL。在填写SSL步骤的时候选择Use your own SSL Certificate and Key,填入刚才的两个文件完整路径。

之后,打开/usr/local/nginx/conf/vhost/你的网站虚拟主机配置文件.conf 这里就是保存着你虚拟主机的配置文件。首先在server中进行修改:

server {
    #listen 80;  首先把listen 80这一行备注掉,改成如下
    listen 443 ssl; #这是新加的代码
    ssl_certificate /usr/local/nginx/conf/ssl/你的.crt;   #这是新加的代码,.crt/pem文件写成你的路径
    ssl_certificate_key /usr/local/nginx/conf/ssl/.key;    #这是新加的代码,.key文件写成你的路径
}

然后在最上面新加如下内容:

server 
{
    listen 80; 
    server_name 你的域名加www 你的域名不加www;
    include rewrite/typecho.conf;  # 这一行还是记得有
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
    
}

这就是用301返回的方法强行将HTTP转为HTTPS

之后,在终端下输入命令重启nginx:

lnmp nginx reload

4.2 为网站开启伪静态

确认/usr/local/nginx/conf/vhost/你的网站虚拟主机配置文件.conf有这么一行:

include rewrite/typecho.conf
最后修改:2020 年 03 月 21 日 05 : 26 PM