Typecho建站指南

Typecho搭建教程网上已经非常多,我这里只做一下注意点解释。Typecho是个轻量级的博客程序,既然说到轻量,肯定免不了一番折腾,然后你就会发现还是wordpress好用……这里说下站点的信息。部署于阿里云,配置了阿里云的全站加速,服务器架构为LNMP,博客使用Typecho框架与Initial主题,全站PJAX无刷新加载,图片存储于阿里云OSS。

关于阿里云全站加速价格,其实像我这种小博客,在按量付费的情况下基本就相当于白嫖,完全不用担心。但是,一定要注意

CDN被恶意刷流量。

初级的解决方案基本是在阿里云的CDN设置带宽限制,抑或是使用带TPS限制的腾讯云(支持超限404),具体讲解在这里

搭建过程

LNMP运行环境

推荐使用LNMP一键脚本,减少不必要的麻烦。

在这里推荐两个:

  1. 军哥的LNMP脚本,部署时间94mins
  2. oneinstack,部署时间34mins

这两个脚本功能上差别不大,如果你想要节省时间,推荐使用第二个。两个脚本的使用指南请直接参考链接。

为什么使用脚本?

  • 节省时间,学习LNMP架构手动部署花的时间可真的不少
  • 一键配置站点,网站链接伪静态,SSL证书自动申请,快速实现全站HTTPS

Typecho插件与主题

Typecho的主题和插件都可以在这个网站找到,当然你可以看这个typecho插件项目typecho-fans,不过很多插件已经很久没有更新了。其实,如过你想要更多的功能,更好的平台为wordpress,如果你只是喜欢写作和分享,或许轻量的Typecho更适合你。

主题:Initial

使用的插件:

  1. sitemap,站点地图,利于搜索引擎SEO,不过你得去比如百度站长和谷歌站长上面注册你的网站
  2. OssForTypecho,自动将图片上传到阿里云OSS存储,当然,你也可以用本地存储,推荐搭配CDN使用
  3. LoveKKComment,评论邮件通知,自带的邮件模板非常好看
  4. GAuthenticator,博客后台登录两步认证,最好的方式还是改个后台路径
  5. DynamicLines,本站网页背景中会动的线条,不过这玩意CPU占用挺高的
  6. CodeHighlighter,代码高亮,使用会与全站PJAX冲突,导致二次刷新才能加载代码高亮,解决见下文

使用到的一些github项目:

  1. canvas-nest.js,就是上方插件5所用的js库,一句话引入footer.php的</body>前即可,具体参数请看github,或者直接用DynamicLines插件。<script type="text/javascript" color="255,140,0" opacity='1' zIndex="-1" count="99" src="https://image.qyuwen.cn/cdn/canvas-nest.js"></script>
  2. parsedown,替换Typecho的Markdown解析器,更快更高效。亦可直接使用插件typecho-markdown
  3. highlight.js,代码框样式,代码高亮,用来替代插件 6 ,直接在footer.php文件中</body>前引入js和在header.php文件引入css文件即可,需要处理pjax刷新问题。

一些坑

PJAX刷新与代码高亮冲突

highlight.js引入后,若开启了全站PJAX,需要在footer.php文件中的</body>标签前引入下面代码。

//将代码高亮添加到页面加载事件
<script>hljs.initHighlightingOnLoad();</script>
//pjax开启后的pjax回调
<script type="text/javascript">
$(document).on('pjax:complete', function() {
    document.querySelectorAll('pre code').forEach((block) => {
    hljs.highlightBlock(block);
    });
});
</script>

站点不支持emoji🙃

这是由于mysql字符集的问题,改为utf8mb4字符集即可,解决参见链接

甜点

全站强制https

在站点的Nginx配置文件中,按照下面修改,注意将域名替换为你的域名

server {
    listen 80;
    server_name blog.qyuwen.cn ;
    return 301 https://blog.qyuwen.cn$request_uri;
}

后台安全

Typecho的默认后台路径为/admin,简易修改为其他路径确保安全。

  1. 找到站点文件夹,修改admin文件夹名字
  2. 更新config.inc.php文件中的后台地址,需要与文件夹名称一致/** 后台路径(相对路径) */
    define(‘__TYPECHO_ADMIN_DIR__’, ‘/admin/’);也可以建立个admin文件夹放个index.html文件进去,比如本站的后台😝😝

启用BBR(拥塞控制算法)

TCP BBR 是Google给出的一个改良版的tcp网络协议,可以优化TCP性能(扶墙必备),ubuntu默认不启用BBR算法,在ubuntu18.04中,内核为4.15,已经自带BBR,查看系统是否可以直接开启BBR,使用

uname -r    //输出内核版本大于4.9 即可

接下来执行

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p //保存生效,配置内核

最后检查内核是否已经开启BBR

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

输出中带有bbr代表开启成功。

2 条评论

发表评论

*

    • 所以这个本质还是个需求问题…..看需求把,我之前捣鼓过一段时间Typecho,感觉不满意,然后就去试试WordPress了