个人博客搭建入坑指南

| 分类 tech  | 标签 博客 

一直以来都想着搭建一个自己的博客,“自己的”意思是从域名到服务器再到内容全都由自己掌控,直到今天才终于开始尝试。

最开始的博客是在CSDN上,那时似乎已经成为一种传统,将自己所有刷过的题以及对应的题解都挂到博客上,想想当时也是一种跟风效应——Final的大牛们都是这么干的。后来开始慢慢发现CSDN上内容太杂、广告太多,不符合个人博客这种私人场景,于是开始转移Github Pages。后来又发现Github上的域名稍显不专业,并非一个专业的技术博客所应有的样子,于是又开始折腾现在的云服务器+个人域名。

0x01 腾讯云服务器

其实也没有怎么比较几家云服务提供商,正好看到腾讯云服务器新手有打折的机会,于是就以10元/月的价格买了一个月的最基础的服务器,然后就得到了一个公网ip和对应的系统(Ubuntu 64位)。原来以为这中间会有多么高大上的操作,实际体验才发现并没有什么,有了用户名密码,SSH连上去就和普通电脑操作没有任何差别了。

0x02 域名

有了服务器,第二步就是需要购买域名服务,将域名解析到服务器的公网IP上,腾讯云平台上就直接提供了云解析服务,并且新手还有优惠券,于是就以1元/年的价格买到了现在的这个域名,然后在域名解析界面添加一条记录,解析到服务器地址上就OK了。

解决了域名之后,看到网站提示需要做域名的备案,于是又开始整备案,填完了开头之后发现服务器至少要买了3个月以上才给备案,于是又加了两个月,加完之后备案终于可以进行下一步了,发现越往下越复杂。。。。然后就放弃了。。

0x03 博客内容 - Hexo

原来直接使用的是静态的模版,直接在_posts目录中上传文章对应的markdown文件就可以,github pages会自动的将markdown转化成html文件然后在页面上显示。当然有了自己的服务器之后,当然得自己完成这个转换的过程了。于是就选择了hexo这个博客的模版系统。需要注意的一点是,nodejs的版本尽量使用最新的版本,我通过apt-get install安装的nodejs版本比较低,后续安装hexo-cli的时候就一直出现各种问题,更换为从官网直接下载的nodejs之后就没问题了。

nodejs安装


wget node_url
tar -xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/personal/nodejs 

// 配置环境变量
vim ~/.profile
export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH

// 此时,还不能使用sudo npm等,需要建立软连接
sudo ln -s /usr/local/personal/nodejs/node-$VERSION-$DISTRO/bin/node /usr/bin/node
sudo ln -s /usr/local/personal/nodejs/node-$VERSION-$DISTRO/bin/npm /usr/bin/npm
sudo ln -s /usr/local/personal/nodejs/node-$VERSION-$DISTRO/bin/npx /usr/bin/npx

hexo基本命令

// 安装
npm install hexo-cli -g

// 创建博客
hexo init <blog_dir>

// 新建文章
hexo new [layout] <title>

// 新建页面,页面的链接为root/page_name/
hexo new page <page_name>

// 生产静态文件到public目录下
hexo generate

// 配置_config.yml,将生成的public目录上传到github上
hexo deploy

// 启动本地服务默认端口4000
hexo server

上面就是hexo博客框架的基本操作,其中的使用hexo server产生的web服务官方并不建议直接用作production版本,因为其性能并不好,可以用作本地调试。正式的production版本应该使用通过hexo generate产生的public目录中的静态文件,并结合Nginx或者Apache等标准的web服务器来提供服务。

另外如果想要切换主题,那么只需要将对应的主题下载到blog_dir/themes,然后在_config.yml中修改theme的值即可。

0x04 目前的情况

由于选择了一个比较偏僻的主题,导致文章中的latex无法解析出来,折腾了半天也没搞定,根据搜索的资料也始终无法解决,所以最终又回到了github pages,只不过将域名解析到了github的地址上,然后在github博客对应的repo下添加了一个CNAME文件,其中填入域名即可。所以说如果服务器上只是运行一个博客系统的话,还是直接使用github吧,加一个域名重定向也可以达到同样的效果。

过段时间再折腾折腾Nginx服务器和其他的主题吧= =.


上一篇     下一篇