Typecho博客搭建笔记

生命在于折腾。

写在前面

这是一篇Typecho博客的搭建教程,主要是怕自己忘了,整理一下关键的步骤,也给各位朋友当个参考。

关于Typecho

Typecho官网

Typecho是一个轻量但精致的博客平台,安装简单,使用中的干扰信息也很少,个人觉得是很不错的。

一些建议

开始动手之前先想好自己想要什么样的效果

不光是视觉效果,也包括访问速度,后台操作的便捷性等等。

预计一下可能的访问流量,尽管个人网站流量一般也不会太大。

根据自己的需求来选择服务器,平台等等。

尽管在整个过程里基本没有需要额外支出的地方,提前考虑好预算也是不错的。

考虑一下自己建站相关的知识和经验

有些时候自己办不到就降低一点要求。

如果某一步你不明白是在干什么,操作之前一定要尽量搞明白,教程都会教你怎么操作,却很少教你搞错了怎么恢复。

本人的经验供各位参考:

Linux:甚至记不住基本命令

HTML & CSS:自学过能写点简单的

PHP & 数据库:买了书没看

我唯一有点基础的HTML只有在最后阶段对主题稍作修改的时候才用上,跟整个站点的搭建过程完全没什么关系。

我都可以,请对你自己有信心。

希望各位少走弯路。

前期准备

前期准备主要是两部分,服务器和域名。

个人建议是先配置好服务器,云服务器除了建站之外还能发挥很多作用,万一因为经验或是时间的限制没法成功建站,服务器也能派上用处。

相反,域名除了方便访问之外几乎没有任何作用,买了域名就代表你必须得用上,除非你打算用来投机。

当然炒域名的也没什么必要看这篇东西。

甚至等服务器环境配置完毕后再买域名也不迟。

服务器

选择云服务器供应商与服务器位置是第一步,千万不要轻信网上的推荐,亲自测试的结果才是最重要的。

如果服务器选在国内,网站就需要备案,想备案的话请自己找下其他教程。

我这里只谈国外的云服务器。

对于个人网站,你自己的连接速度和稳定性还是非常重要的,因为所有的修改和测试都是你自己一个人进行,你也经常需要向服务器上传文件,拥有一个高速稳定的连接肯定是基本要求。

连接速度好的话服务器用来做其他事情效果也很好。

网上的推荐当然能提供很多参考,尤其是其他地区的连接情况,我们只能参考别人的数据。

但是很多供应商都提供推荐返利或是返现,有时候它们也许并不像推荐文章里看起来那么完美。

另一方面推荐者跟你很可能不在同一个地区,你们的网络运营商也很可能不同,到服务器的连接情况不同是必然的。

我自家的移动与电信网络连接同一服务器的延迟就能相差100ms以上,更何况不同地区。

有些供应商会提供测速用地址,比如linode。(Linode Facilities Speedtest

知道了地址就可以自己ping一下看看各个地区,也能测试一下下载速度。

批量ping可以使用PingInfoView,主要关注一下延迟和丢包。

TTL对使用没什么影响,想要了解的话搜一下便可。

建议在网络高峰时段以及自己的常用时段进行测试,以免实际使用时发现高峰时间段连接质量差。

有些供应商,如三巨头Google Cloud Platform, Microsoft Azure和Amazon Web Services,没有提供测速用地址。

搜一下能找到不少在线对这些平台进行测速的网站,比如CloudHarmony的Cloud Network Test

当然自己开点机器ping一下然后把用不上的删掉也可以,GCP只要验证一下美元信用卡就有300美元试用额度,Azure有学生优惠,AWS在GitHub学生包的全家桶里,如果满足条件的话开几个机器试一下完全是零成本。

当然,建站也得考虑其他人的访问速度,你可以找到一些网站能提供从各地ping同一个主机的数据,比如这个网站

在你开好了机器有了IP之后,可以通过http://ping.pe 查看世界各地的访问情况,或是用站长之家的ping工具查看国内具体连接情况。

除了速度之外,不同供应商的control panel也各不相同。

就个人用过的而言,Linode的后台很简洁干净,三巨头的控制台都名目繁多,刚开始不怎么好上手。

Linode
Linode简洁的控制台

GCP
GCP的控制台

目前Linode出了一个新的控制界面,功能好像没什么变化,但是分栏的方式有点像GCP那种,个人感觉比原来的好看一些。

清爽的界面好处是一目了然,坏处在于基本所有东西都得自己来装,比如防火墙,并且基本都要在命令行里配置。

而复杂的后台记住了不同的东西在哪过后还是很方便的,无论是配置防火墙还是添加SSH公钥都能在后台做。

三巨头除了云主机都提供很多其他云服务,如果用得上或是想要学的话也是很不错的。

这里特别提醒一下GCP的后台国内是无法直连的,稍显不便。

另一方面,如果不考虑免费优惠,三巨头的价格绝对是要高出一截的,除了虚拟机本身,还有存储,硬盘IO,数据库,流量等等,每月20刀往上是很有可能的。

普通的云主机供应商最便宜的价格基本都在每月5刀,一般也没有其他费用,初次注册一般还基本都有优惠,价格上的优势是很大的。

机器稳定性上,对于流量不大的个人站点,只要是正规供应商,都不会有什么问题。

对于服务器的选择,总之还是那句话,不要轻信别人说的,自己试了好的才是真的好。

我的建议

有钱GCP没钱Linode,实在没钱又愿意折腾的去搜一下Github Pages建站,有惊喜。

有卡能过GCP验证的也可以先免费用着,同理有学生优惠的也可以先用着另外两家的。

想要注册Linode可以通过我的Linode推荐链接(

或者可以在注册的时候填我的邀请码60c99c0a00edede58b3a8fdfe5f94f47f87ae18b

Linode注册还能填优惠码额外拿20刀,优惠码一搜一大把,我用的是"atp2018"。

实话说我不清楚Linode的邀请对被邀请人有什么好处,但是这个20刀真的一定记得要拿,能开四个月最便宜的主机呢。

每个平台的注册和使用网上都能找到详细的教程,请善用搜索。

PS: 如果这个服务器你还打算用来干点别的,注意一下Vultr大多数IP被P站封了,傻屌游戏MLTD也封了很多供应商的日本节点IP(会提示Errorcode-10403),总之选择日本地区的时候多留个心眼,免得配置完了发现有些东西没法访问,又得从头做一遍。

域名

便宜的域名可以通过domcomp来找,如果你愿意的话可以用我的邀请链接,页面是一样的,但你成交了我能赚点。

有些地方域名注册很便宜但是养起来很贵,买之前一定要注意

后缀的选择上虽说.com是王道,但好的恐怕都很贵,比如stsecurity.com就要2000+,中彩票之前我是不用想了。

用作个人站点的话.me是个不错的选择,或是用一些冷门国家的后缀把网址凑成单词。

当然作为萌豚也不要忘了.moe,本站就是.moe域名,但.moe稍贵一些。(所以快来用我的邀请链接吧)

服务器要是设在国内的话也可以干脆在国内买.cn。

配置服务器环境(LAMP)

这里终于到了上手操作的时候了,我做不到事无巨细地手把手来教,每个平台也总会有些微妙的不同,重要的在于思路,如果有不明白的或者遇上问题,请善用搜索引擎,网上资料是很多的,尤其是人气比较高的平台。

我选择的环境是LAMP:Debian 9 (Linux) + Apache 2+ MariaDB + PHP 7

使用LAMP不用LNMP的原因是,好听。

个人站点,自己开心最重要。

平台选在GCP,主要是我自己连接确实很快,而且本来后台就不能直连,万一墙了也不心疼。

安装Linux (Debian 9)

一般来说在创建虚拟机的时候选择使用Debian 9的镜像即可。

如果有问题,可以查找一下自己所用平台的相关资料。

连接到虚拟机

机器建完之后需要用SSH连接到主机,GCP提供了网页版的SSH连接,连接方式请看官方教程

GCP的官方教程非常详细非常全,操作的时候有不清楚的务必先查查官方教程。

这样连实话说有点慢,而且一个网页版的terminal,总觉得怪怪的。

每次也要先打开不能直连的后台,并不是很方便。

建议还是用SSH客户端,Windows可以用PuTTY,我以前访问学校的科研用服务器就用过,保存登陆信息之后访问起来很方便。

而且PuTTY还自带生成SSH密钥用的工具,马上会用到。

GCP, Azure, AWS默认是动态IP,机器重启后IP会变,记得改成静态IP,GCP可参考官方教程

有了IP地址后,要使用SSH客户端来连接,GCP默认不开启账户密码登陆,需要先配置SSH密钥,详情请参照官方教程

简单来讲流程是先生成一对SSH密钥(公钥+私钥),然后把公钥通过GCP控制台提供给服务器,把私钥的位置在PuTTY中设置好,填上IP和SSH端口22就能直接连接了。

配置Apache2与PHP7

虚拟机启动时已经自动搭载了LAMP中的'L'(Linux),而对于剩下的AMP, GCP提供了配置LAMP的官方教程,无脑跟着操作到安装MySQL之前就行。

官方教程地址

其他平台的操作应该也是一样的。

成功的话,通过http访问你的虚拟机IP地址应该能看到这样的页面:

Apache2 index.html

这代表Apache 2 已经在正常工作。

Apache 2 默认网站文件位置在/var/www/html/

如要测试php,可在SSH的命令行中使用如下命令:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'

这将会创建一个phpinfo.php文件,随后使用浏览器访问 “你的IP/phpinfo.php”可看到如下页面:

phpinfo

你可以在这里查看你安装的php的相关信息。

配置数据库

在GCP上,数据库有两种方案,一种是利用GCP来建立MySQL实例供Typecho使用,具体操作请参见在GAE上安装Typecho,这是Typecho官方提供的文档。

这样的话数据库应该是要另外计费的,除非是有一定规模的网站,个人觉得没什么必要。

另一种方式是直接在你的虚拟机上安装数据库,对于小规模的个人网站这样就行了,而且如果你服务器不是选在大平台,本身就没有现成的数据库方案给你选。

数据库的安装命令与Google提供的配置LAMP教程中写的会有所不同,因为Debian 9并不包含php5相关数据包,也就没有php5-mysql这个数据包,照搬官方教程的命令会报错。

只需要改动一个字,将php5-mysql改成php-mysql即可:

sudo apt-get install mysql-server php-mysql php-pear

但是因为Debian 9 的默认数据库只有MariaDB,即使运行上述命令安装的也是MariaDB而不是MySQL...

那还不如直接装勒,把mysql-server改成mariadb-server,运行:

sudo apt-get install mariadb-server php-mysql php-pear

安装后输入并运行mysql_secure_installation,为数据库设置root密码等,按提示操作即可。

这样一来LAMP环境就安装完成了。

为Typecho创建数据库

安装完MariaDB后需要为Typecho创建数据库。

输入mariadb进入MariaDB。

使用命令CREATE DATABASE Typecho;创建一个名为'Typecho'的数据库。

使用命令CREATE USER 'Typecho'@'localhost' IDENTIFIED BY 'password';为Typecho创建一个名为'Typecho'的服务器用户,密码'password',记得把密码换成你自己设定的密码。

随后用GRANT ALL ON Typecho.* TO 'Typecho'@'localhost';来赋予Typecho对数据库的权限。

最后运行flush privileges;来刷新权限。

至此环境配置完成。

安装Typecho

访问Typecho官网,下载服务器端文件。

将下载下来的压缩包解压,得到一个名为build的文件夹。

向服务器上传文件建议用WinSCP,连接方式跟PuTTY差不多。

将build文件夹中的文件复制到Apache 2的网站根目录/var/www/html/

尝试上传时可能会出现无权限的问题,可以将/var/www/html/这个文件夹的所有者改成你的用户来解决权限问题。

在命令行中运行sudo chown -R yourusername /var/www/html/,将其中的yourusername改成你的SSH登陆用户名即可。

上传完成后访问 你的IP地址/install.php 就可以开始安装Typecho。

按照下图的方法配置数据库即可。

数据库配置

我当时一开始没法选择数据库适配器,重启服务器之后就可以了。

然后设定一下用户名和密码等等就可以安装了。

点了安装之后可能会需要你自己创建一个config.inc.php,按提示来就行,可以在本地创建然后复制系统里给的代码进去,再用WinSCP上传到网站根目录。

安装完成后访问你的IP就已经可以打开你的博客了。

设置DNS

接下来需要把你的域名指向你服务器的IP,你可以在购入域名的网站直接设置,也可以选用第三方的服务。

设置是很简单的,为你的顶级域名以及www.+顶级域名分别创建一条规则指向你的服务器IP即可。

Namesilo自带的DNS设置:
Namesilo自带的DNS设置

这里的TTL是域名解析记录在DNS服务器中的存留时间(单位为秒),设的太短影响访问效率,太长的话迁移服务器会很麻烦,对个人网站来说设置1天(86400)到一周(604800)个人认为都是比较合适的。

设置完DNS后一般需要等一段时间,如果直接访问你的域名能够打开Typecho主页就是成功了。

安装主题

如果想要安装主题的话,把下载的主题文件解压上传到 网站根目录/usr/themes/ 即可。

本站使用的主题是Material,请各位按自己的需求来选择合适的主题。

我只修改了一些细枝末节的地方,Material主题的样子基本上就是本站这样了。

Typecho官方主题商店的群众呼声一直很高,以后可能会有官方主题商店也说不定,选主题就会方便很多了。

不能使用Typecho自带上传功能的解决方案

Typecho自带的上传文件如果一直上传失败提示权限不足,把 网站根目录/usr/uploads/ 文件夹权限改为777即可。

使用的命令为sudo chmod -R 777 /var/www/html/usr/uploads/

Enjoy Blogging!

Link to this article: https://stsecurity.moe/Typecho/index.php/archives/7/
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.