博客選型 docsify好處就在于干凈、簡單,比較符合我的要求,但是考慮到后面維護可能會交給不懂技術的朋友,所以最終還是選擇了halo了。
halo的話模板比較多,搞起來也比較快,還帶個后臺管理系統,可以說只要搭建起來有手就行,后面就不需要我自己去操心了。
看下搭建好的頁面,隨便搞個模板整一下看起來還不錯的樣子。
搭建過程 說實話我不太喜歡搞github pages那些東西,整個服務器也花不了幾個錢,自己沒事上去還能玩一玩,主要還是喜歡這種能自己控制的感覺。
服務器和域名 首先,服務器阿里云剛好在搞活動,然后用朋友沒買過阿里云服務器的弄個小號,綁定我自己的代理推廣賬戶,最后買了個2C2G+3M帶寬的3年才花了800,然后代理還給我自己返利了180,還是很可以的,如果你有買服務器的需求我也可以幫一幫你,我覺得這樣操作很穩。
域名的話注冊,aixiaoxian.vip,3年100塊,建議第一次多買幾年會便宜很多,續費的話會比較貴。
備案阿里云都可以很快速的搞定,現在域名備案改版后還是比之前好用多了,之前還要阿里云給你快遞幕布,然后手持身份證拍照上傳。。。現在方便多了,5分鐘搞定。
halo環境搭建 我們按照官網的環境部署方式傻瓜式一步步做就好了:https://docs./install/docker,還是簡單貼一下過程,為什么選擇docker方式呢,我想可能3年后我還得去搞個新號再白嫖3年服務器,要是不用docker遷移可能會挺麻煩的。
因為我不用H2哈,還是選擇Mysql,知根知底用起來方便點,所以搭建的過程會有點不同,如果對docker不太熟悉的同學搞起來還是有點不太順利的,因為官網它也沒有告訴你用Mysql到底要怎么搞,怎么配置。
mkdir ~/.halo && cd ~/.halo
wget https://dl./config/application-template.yaml -O ./application.yaml
修改配置文件,我把修改好的貼出來,關于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
然后我們先安裝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自己玩。