前言
地基打好了,是该开始添砖加瓦盖房子了!
从哪里开始呢?我认为作为独立开发者或者自由职业者,首先应该做的,就是通过开源项目搭建一个控制权完全属于自己的个人博客,而不是一上来就开始做产品设计,甚至撸代码。
1. 为什么要搭建个人博客
虽说,现在市面上已有很多现成的平台可供选择,如CSDN、博客园、简书,甚至B站、小红书等等,这些平台写文章绰绰有余,且各有特色,但也都有不同程度的限制,而个人博客则可以让我们更加自由地创作,更加全面地展示自己。
虽然,在很多人的心目当中,个人博客是上个时代的产物,早就已经过时了,但事实上,作为独立开发者,个人博客却仍然有着不可替代的作用。
首先,个人博客可以让我们更方便地展示自己的作品、技能、特长、爱好甚至商品等,让自己的人物画像更加真实饱满,从而形成一张更加立体的个人名片。
其次,个人博客也可以让我们更方便地分享自己的经验和见解,更流畅地和读者互动交流,从而吸引更多志同道合的人。
再者,只要内容合法合规,个人博客没有任何限制,只要愿意,我们可以任意添加外链,广告,商业合作等,以增加收入。
最后,个人博客还可以以任何形式聚合自己所有平台的网络资源,如GitHub,B站,抖音,公众号等,形成一个中心枢纽,联通整个网络。
总之,搭建一个博客网站,对于我们这些独立开发者或自由职业者来说,无论是资源整合,作为个人门户,还是打造IP,充当个人名片,都绝对算得上是一把利器,百利而无一害。
2. 为什么是Typecho
这主要是由个人需求与个人技能决定的,每个人的选择都可能不同。
对我而言,首先,我希望我的个人博客主要以图文的形式记录开发日常,分享开发经验,以外链的形式展示个人作品,整合网络资源等等,基于这一点,大部分的开源博客系统都可以满足我的需求。
其次,作为开发者,我希望以Markdown
格式来编写文章,并且能够对代码有更美观的展示。
再次,由于我有着相对丰富的开发经验,我希望我的个人博客具备自己的数据库,能够方便的支持评论功能,并且当功能不满足时,我也可以方便地对其进行扩展和定制开发。
最后,作为一名抠搜的独立开发者,我希望我的个人博客能够在满足需求的基础上,尽可能地简单易用,减少维护成本,并且尽可能的少的占用服务器资源,以留给其它的应用。
综合比较之下,Hexo
、Hugo
等评论互动麻烦,Halo
、WordPress
等太重,Typecho
就成了我的不二之选。当然,每个人需求不同,选择也不同,我的选择,并不等于是你的选择。
3. 如何搭建Typecho
常规套路,这里我同样准备了一个文件夹,目录结构如下:
结构非常简单,只有两个文件,其中,start.sh
只有一行docker compose up -d
命令,没什么好说的,下面简单解释一下docker-compose.yml
文件。
version: '3'
services:
typecho:
image: joyqi/typecho:nightly-php7.4-apache
container_name: typecho
restart: always
environment:
- TYPECHO_SITE_URL=https://your-domain.com
- TYPECHO_DB_HOST=mysql
- TYPECHO_DB_DATABASE=typecho
- TYPECHO_DB_USER=root
- TYPECHO_DB_PASSWORD=123456
ports:
- 8080:80
volumes:
- ./usr:/app/usr
networks:
- ilaozhu_net
networks:
ilaozhu_net:
driver: bridge
name: ilaozhu_net
external: true # 使用已存在的网络,如果不存在,则会报错
- 我这里采用的是官方提供的镜像
joyqi/typecho:nightly-php7.4-apache
,docker-compose.yml
文件也是参考官方编写的,详见typecho/Dockerfile。 TYPECHO_DB_HOST=mysql
中的mysql
是前面搭建的MySql数据库的服务名,为了让这种写法生效,该容器需要加入到ilaozhu_net
网络中。TYPECHO_DB_DATABASE=typecho
中的typecho
是博客系统的后端数据库名,部署时不会自动创建,因此需提前建好。如下图所示:TYPECHO_DB_USER
和TYPECHO_DB_PASSWORD
是typecho
数据库的账号密码。理论上,为了提高数据的安全性,每个库都应该有单独的账号密码,但这样一来,时间久了,数据库多了,账号密码维护起来将是一件很麻烦的事情。还不如直接共用同一个root
账号密码,简单省事。
具体安装过程和上一篇文章的MySql相同,先将文件夹上传到服务器,然后执行如下脚本即可:
$ cd /data/typecho/
$ chmod +x start.sh
$ ./start.sh
效果如下图所示:
4. 放通端口
从上面的docker-compose.yml
文件中可以看到,typecho
对外暴露的是8080
端口,因此需要到腾讯云的防火墙中放通该端口,如下图所示:
5. 初始化网站设置
浏览器访问http://ilaozhu.com:8080
,即可打开如下页面:
不知大家是否还记得,在《域名注册、网站备案、域名解析》一文的域名解析部分,我们采用了泛解析,因此,其实访问任意以.ilaozhu.com
结尾的域名都会打开该页面,如http://blog.ilaozhu.com:8080
。如果你没有域名,也可以通过IP+端口的形式访问。
接下来,点击“我准备好了,开始下一步”按钮,填写初始化配置,主要是一些数据库连接相关的信息。
“高级选项”不用管,直接点击“确认,开始安装”按钮,创建管理员账号。
后续就没什么操作了,能打开如下页面,就说明安装成功了。
结语
到这里,一个基于Docker的Typecho博客系统就搭建完成,可以开始写博客了。不过,不难发现,这个博客网站其实还存在一些问题,比如:
- 任意以
.ilaozhu.com
结尾的域名都可直接访问网站,明显不合适,我们只希望ilaozhu.com
能直接访问,而其它没支持过的二级域名,则应该是跳转到主站,而不是直接访问; - 通过
8080
端口访问显然很不专业,虽然可以直接暴露80
端口,但是,80
端口一旦被博客网站占用,其它网站就用不了了,也不能这么霸道; - 浏览器地址栏显示“不安全”字样,让人很没安全感。
这些问题,我们将在接下来的文章中逐个解决。
评论0
暂时没有评论