將Hexo博客部署到阿里雲服務器
前言
疫情期間,阿里雲推出了學生“在家實踐”計劃,可以免費領取6個月的服務器,本着學習(白嫖)的目的,咱也得領啊,第一天沒有搶到,主要不知道要先答題,答案網上都有,當然,大佬忽略我這句話,第二天答題過後很容易就搶到了,配置也還可以,鏈接在這( https://developer.aliyun.com/adc/student/ ),於是乎搭建了這個博客,期間也踩了不少坑,希望給有相關想法的同學提供一些幫助。
一.原理
搭建之前咱先得明白怎麼回事纔行啊,這裏我們得先了解以下我們的博客採用的框架—Hexo,這是一個快速、簡潔且高效的博客框架,關於這個框架的使用我會單獨寫一篇,這裏主要講部署相關的東西,敬請關注網站後續。
Hexo框架的大致架構爲我們在自己的計算機上寫好文章將它保存在source文件夾中,然後hexo會將我們的寫好的文章轉化爲靜態的HTML文件,之後push到git倉庫,服務器中配置好git-hooks,就可以自動將我們倉庫中的東西更新到網站的根目錄,於是乎就能看到整個頁面了(需要一點git相關的知識,最好能夠學習一下,看不懂也沒關係 照着敲就行)
二.雲服務器和域名的購買
-
雲服務器
這個就見仁見智了,可以選擇阿里雲、騰訊雲和華爲雲,都是比較好的,我這裏領了阿里雲的服務器所以就在這個平臺了。
-
域名
域名我建議你在哪個平臺上買的服務器就在哪個平臺上買域名吧,之後備案會方便一點,這裏注意一下,如果是國內的服務器,想要綁定你的域名是一定要備案的,備案也要花上一段時間,沒有備案的話,只能通過服務器給你的公網IP進行訪問,比較不方便,也不太好記,不過如果是國外的服務器就不需要這麼折騰了。
三.雲服務器上的操作(以阿里云爲例)
3.1 配置安全組規則
阿里雲默認是不授權80端口訪問的,這個端口跑的是網頁服務器的訪問,所以要先把它開啓,否則後面配置好後也無法訪問哦
登錄你的控制檯 -> 左側雲服務器ECS -> 點擊實例ID ->
3.2 配置服務器環境
3.2.1 安裝服務器
首先我們返回到實例詳情頁面,點擊基本信息處的遠程連接,輸入用戶名(默認爲root)和密碼登錄進去,當初選購雲服務器需要讓你選擇系統,那裏我選擇了Centos7.x的版本,有點忘了,選擇你熟悉的就行,這裏我們要先安裝服務器,我們採用nginx作爲我們的服務器,安裝命令如下
yum install nginx
安裝nginx
systemctl start nginx
開啓nginx服務
systemctl enable nginx
跟隨系統啓動
做完以上步驟後,你可以用公網IP來訪問以下你的網站,如果顯示nginx或是centos的界面的話就是沒問題的
3.2.2 修改nginx的配置文件
這裏我們先自己編寫好相應的配置文件,然後採用include的方式,將它引入到nginx的配置文件中,操作如下:
在/etc/nginx/目錄下創建一個文件夾 叫做vhost
cd /etc/nginx/
mkdir vhost
cd myConfig
vim blog.conf
編寫blog.conf的內容
server{
listen 80;
root /home/www/website;這裏填博客目錄存放的地址,我們待會兒去新建它
server_name 這裏填你的域名
location /{
}
}
保存並退出 按下esc鍵 -> :wq
接下來我們把這個文件引入到nginx的配置文件中
vim /etc/nginx/nginx.conf
並且修改server中的一些值
3.2.3 新建存放博客的目錄
也就是我們上面說的website,輸入命令
cd /home
mkdir www
cd /www
mkdir website
四. 安裝Git及Node.js
之所以要安裝Node是因爲我們的Hexo框架需要Node作爲支持
輸入命令
//安裝Git
yum install git
// 安裝Node
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
之後新建一個用戶並修改權限
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers
保存後退出 將權限修改回來
chmod 400 /etc/sudoers
sudo passwd git //設置git密碼
su git //切換到git用戶
cd ~ //切換目錄
mkdir .ssh //新建.ssh文件夾
cd .ssh //進入文件夾
ssh-keygen //生成公鑰密鑰文件
cp id_rsa.pub authorized_keys //複製文件
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
五.測試
使用自己電腦 管理員方式運行命令提示符 連接雲服務器
ssh -v git@你的公網IP
如果提示 Welcome balabali…
就成功了
六.創建git倉庫
在服務器端 創建git倉庫,輸入命令
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive
輸入git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
保存並退出
修改權限
chmod +x ~/blog.git/hooks/post-receive
七.完成部署
修改Hexo的配置文件,也就是_config.yml(至於怎麼在本地構建Hexo,之後我會再更新,敬請關注!)
deploy:
type: git
repo: git@你的服務器公網IP:/home/git/blog.git
branch: master
message:
之後重新執行
Hexo clean
Hexo g
Hexo deploy
最後重新運行nginx服務器即可
nginx -s reload
我的blog地址 https://bagbean.cn 歡迎大家訪問嗷!