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
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地址应该能看到这样的页面:
这代表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”可看到如下页面:
你可以在这里查看你安装的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设置:
这里的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!
本文链接:https://blog.stsecurity.moe/archives/7/
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.