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
。这次重装系统的时候,没想到腾讯云的预装镜像中竟然自动安装了fastmirror
和languagePack
(汉化包)插件。- 费用:如果你是学生,首次注册腾讯云使用会有一个超低的费用优惠,还提供一次低价续费的机会。
- 购买一个域名。在国内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访问并开启伪静态
参考资料:
如果你的网站还没配好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