博客选型
搭建博客首先肯定考虑选择哪个开源的软件了,看了一下其他大佬的分享和网上的文章,最终确定了docsify
和halo
。
docsify好处就在于干净、简单,比较符合我的要求,但是考虑到后面维护可能会交给不懂技术的朋友,所以最终还是选择了halo了。
halo的话模板比较多,搞起来也比较快,还带个后台管理系统,可以说只要搭建起来有手就行,后面就不需要我自己去操心了。
看下搭建好的页面,随便搞个模板整一下看起来还不错的样子。
搭建过程
说实话我不太喜欢搞github pages那些东西,整个服务器也花不了几个钱,自己没事上去还能玩一玩,主要还是喜欢这种能自己控制的感觉。
服务器和域名
首先,服务器阿里云刚好在搞活动,然后用朋友没买过阿里云服务器的弄个小号,绑定我自己的代理推广账户,最后买了个2C2G+3M带宽的3年才花了800,然后代理还给我自己返利了180,还是很可以的,如果你有买服务器的需求我也可以帮一帮你,我觉得这样操作很稳。
域名的话注册,aixiaoxian.vip,3年100块,建议第一次多买几年会便宜很多,续费的话会比较贵。
备案阿里云都可以很快速的搞定,现在域名备案改版后还是比之前好用多了,之前还要阿里云给你快递幕布,然后手持身份证拍照上传。。。现在方便多了,5分钟搞定。
halo环境搭建
我们按照官网的环境部署方式傻瓜式一步步做就好了:https://docs.halo.run/install/docker,还是简单贴一下过程,为什么选择docker方式呢,我想可能3年后我还得去搞个新号再白嫖3年服务器,要是不用docker迁移可能会挺麻烦的。
因为我不用H2哈,还是选择Mysql,知根知底用起来方便点,所以搭建的过程会有点不同,如果对docker不太熟悉的同学搞起来还是有点不太顺利的,因为官网它也没有告诉你用Mysql到底要怎么搞,怎么配置。
- 跟着官网走,创建工作目录
mkdir ~/.halo && cd ~/.halo
- 下载配置文件,这里我们等会儿要修改的
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3.修改配置文件,我把修改好的贴出来,关于H2的部分我们要全部注释掉,Mysql的URL填写方式要注意修改,这里不能写127.0.0.1,要填写待会儿我们安装docker mysql的名字才行,如果这里没有配置正确的话,肯定会报错的。
server: port: 8090 # Response data gzip. compression: enabled: false spring: datasource: # H2 database configuration. # driver-class-name: org.h2.Driver #url: jdbc:h2:file:~/.halo/db/halo #username: admin #password: 123456 # MySQL database configuration. driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://blog_mysql:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: aixuan123 # H2 database console configuration. # h2: # console: # settings: # web-allow-others: false # path: /h2-console # enabled: false halo: # Your admin client path is https://your-domain/{admin-path} admin-path: admin
4.然后我们先安装mysql,不带版本号安装最新版本就好了,就用8.0的版本。
docker pull mysql
- 接着创建镜像,启动,因为我服务器自己装了一个mysql,所以端口做个映射。
docker run --name blog_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123123 -d mysql
- 接着,我们进入容器按照官方文档要求去创建halo的数据库,因为不会自动创建,创建好数据库之后会自动帮我们创建好表,为了方便我们外网访问,还是顺便把访问权限一并干了,因为mysql8之后授权方式有点不一样,还是用创建新用户的方式。
# 进入容器 docker exec -it blog_mysql /bin/bash # 登录mysql,创建数据库 mysql -u root -p create database halodb character set utf8mb4 collate utf8mb4_bin; # 切换数据库 use mysql; # 创建用户设置密码 CREATE USER 'blog'@'%' IDENTIFIED BY '123123'; # 修改加密方式,不然可能有些客户端不支持会报错 ALTER USER 'blog'@'%' IDENTIFIED WITH mysql_native_password BY '123123'; # 授权 grant all on *.* to 'blog'@'%';
- 去拉取halo镜像,然后创建容器、启动,注意这里关联到我们的mysql
#拉取halo镜像 docker pull halohub/halo # 关联mysql启动 docker run -itd --name halo --link blog_mysql -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo
- 这样实际也可以用了,但是我们肯定不会用8090的端口了,所以我们还需要接着安装nginx,配置的话就按照官方给出的配置就好了。
# 安装Ngnix sudo yum install -y nginx # 设置开机启动 sudo systemctl enable nginx # 启动 sudo systemctl start nginx # 修改nginx反向代理配置 vim /etc/nginx/nginx.conf
流程到这里就差不多结束了,然后我们访问http://120.55.164.9/,按照步骤安装完成,就看到了文章开头的博客地址了,输入http://120.55.164.9/admin 就可以进管理后台了,导入我们之前写好的文章只需要通过系统-小工具-Markdown导入即可,很方便!
对于那些没有用过阿里云或者其他云产品的人来说,可能经常会有一个问题就是明明都OK为什么都访问不了呢?因为要设置安全组出入规则,要把你的端口都配置进去才行。
好了,简单的搭建教程就到这里结束了,说起来好像几句话的功夫,其实弄下来一天功夫还是要的,别说我还摸索了下这个皮肤能不能修改下字体,我对这个字体不太满意,改完发现问题挺多还是先放弃了。
要买服务器,域名备案,然后安装,文章导入,导入之后还得加个标签啊什么的,简单设置下页面,主题要配置,挺麻烦的,回头再搞个域名搞一个docsify自己玩。