最近購買了阿里雲的雲服務器和域名,本身折騰搭建博客。在這裏我把搭建的過程記錄分享一下!node
瀏覽器進入NodeJS 官網,安裝 LTS(Long Term Support)版本。nginx
按住win+R
,輸入cmd
,進入 cmd 命令行工具,輸入node -v
查看 node 版本,git
若出現版本信息,則說明 node 安裝成功。web
在 cmd 命令行中輸入npm install hexo-cli -g
,安裝 hexo。完成後輸入hexo -v
查看版本信息,確認安裝成功。shell
初始化根目錄npm
建立文件夾Hexo-Blog
,在 cmd 命令行中進入該目錄,輸入hexo init
初始化根目錄。vim
本地查看瀏覽器
輸入hexo g&&hexo s
(生成靜態文件,並開啓本地服務器)緩存
根據提示,在瀏覽器中打開http://localhost:4000
,便可看到初始的博客頁面。bash
美化
對本身的博客進行更改樣式、美化、增刪功能、發佈文章等操做,就不展開介紹了。
購買域名
在阿里雲上以學生認證優惠購買了lzxjack.top
這個域名。
域名備案
域名綁定國內的服務器,必需要進行備案操做,不然將沒法訪問。
從提交備案信息,到管局審覈經過,備案號下來一共花了不到 10 天的時間。
域名解析
域名解析是把域名指向網站空間 IP,讓人們經過註冊的域名能夠方便地訪問到網站的一種服務。IP 地址是網絡上標識站點的數字地址,爲了方便記憶,採用域名來代替 IP 地址標識站點地址。
www
表明域名前加www.
,如www.lzxjack.top
,@
就表明lzxjack.top
,這樣兩個地址都能訪問到服務器了A
是指,將域名指向一個IPV4
地址爲了讓其餘用戶在本身的客戶端訪問到本身的博客,就須要將博客部署到服務器上,其餘用戶經過訪問服務器的公網 IP 來訪問到服務器上的資源。若綁定了域名,還能夠經過域名訪問。
經過阿里雲開發者成長計劃,購買了輕量應用服務器
。在系統的選擇上,做爲服務器系統,CentOS 穩定、強大,因此係統鏡像選擇了 Linux 系統的 CentOS 7.3 版本。
點擊雲服務器管理頁面的防火牆
,再點擊添加規則
。
要使用 HTTP 協議訪問服務器,須要在服務器端監聽 80 端口,由於 80 端口是服務器的默認端口號。而阿里雲服務器默認關閉 80 端口,則須要咱們手動打開監聽 80 端口。另外,服務器端配置 Git 時須要使用 SSH 協議進行本地與服務器的鏈接,須要服務器監聽 22 端口,也須要手動打開。
此步驟須要在雲服務器上完成,具體方法可使用遠程鏈接,也可使用 Xshell 客戶端進行鏈接。
安裝 nginx
切換到 root 賬號
sudo su root
複製代碼
須要使用 nginx 做爲 Web 服務器,因此咱們首先要安裝 nginx。可使用 yum 命令直接進行安裝。
yum install -y nginx
複製代碼
安裝完成後啓動 nginx 服務器
systemctl start nginx
複製代碼
systemctl enable nginx
複製代碼
創建博客根目錄
將博客的頁面文件放在/home/www/website/
路徑下,須要先建立這些文件。
cd /home
mkdir www
cd www
mkdir website
複製代碼
查看建立的文件:
配置 nginx 路由
創建了博客的根目錄後,須要將 nginx 服務器指向這個根目錄地址,才能訪問到博客頁面,因此須要修改 nginx 的配置文件。
阿里雲默認的庫下載的是基於 fedora 的 nginx,查閱資料發現,默認配置文件位於 etc/nginx/
下的nginx.conf
。
查看 nginx 的默認配置文件:
cd ~
cd /etc/nginx
ls
複製代碼
文件中的nginx.conf
就是默認配置文件。
但不採用直接修改 nginx 配置文件的方式,而是新建一個文件夾,將本身的配置寫在新建的文件夾中。再利用include
,在配置文件nginx.conf
中將文件夾引入進來便可。這樣如有新的需求時,只需在文件夾中添加新需求的配置文件便可,不會再次修改配置文件nginx.conf
,提升效率。
切換/etc/nginx/
目錄,在此目錄下建立一個文件夾vhost
:
cd /etc/nginx
mkdir vhost
cd vhost
複製代碼
輸入vim blog.conf
新建blog.conf
文件並編輯內容:
server{
listen 80;
root /home/www/website;
server_name lzxjack.top;
location /{
}
}
複製代碼
其中,listen
表明監聽 80 端口。root
是博客的根目錄,頁面存放的地址。server_name
是服務器名稱,填域名lzxjack.top
,將域名和博客的頁面根目錄綁定。
爲了讓http://www.lzxjack.top/
也能訪問到博客頁面,再新建一個配置文件wwwblog.conf
,將server_name
設置爲www.lzxjack.top
:
這樣,/etc/nginx/vhost
目錄下就有兩個配置文件,blog.conf
和wwwblog.conf
:
打開/etc/nginx/
目錄下的nginx.conf
文件,添加下面一行代碼,將剛纔新建的配置文件引入進來。*.conf
的意思是將vhost
文件夾下的全部.conf
後綴的文件都引入了進來。注意:要寫在http{}
的裏面。
include /etc/nginx/vhost/*.conf;
複製代碼
至此,完成了 nginx 路由的配置,將域名和雲服務器指定路徑進行了綁定。
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
複製代碼
安裝完成後執行 node -v 和 npm -v 若是打印版本號則安裝成功
這一部分主要目的是本地電腦能夠經過ssh
方式鏈接到雲服務器,而後就能夠經過命令行方式將博客傳到服務器上。
yum install git
複製代碼
輸入如下添加 Git 用戶:
adduser git
複製代碼
修改用戶權限:
chmod 740 /etc/sudoers
複製代碼
打開/etc/sudoers:
vi /etc/sudoers
複製代碼
在這個位置添加語句:
git ALL=(ALL) ALL
複製代碼
保存退出後,將sudoers
文件權限改回原樣:
chmod 400 /etc/sudoers
複製代碼
設置 Git 用戶的密碼:
sudo passwd git
複製代碼
切換到 git 用戶,而後在~
目錄下建立.ssh
文件夾
su git
cd ~
mkdir .ssh
cd .ssh
複製代碼
生成公鑰密鑰文件:
ssh-keygen
複製代碼
輸入後都按回車便可!!!
此時在目錄下就會有兩個文件,分別是id_rsa
和id_rsa.pub
,其中id_rsa.pub
就是公鑰文件,複製一份:
cp id_rsa.pub authorized_keys
複製代碼
這樣目錄下就會有一個authorized_keys
文件,修改它的權限:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
複製代碼
客戶端生成密鑰:
在本地電腦的CMD
命令行工具中輸入ssh-keygen -t rsa
,都按回車便可!會在本地電腦的用戶文件夾下生成密鑰:
接着,將本地電腦的id_rsa.pub
文件的內容拷貝到雲服務器的authorized_keys
文件的末尾!!!!可採用的方法有:
Xftp
文件傳輸工具,先將本地電腦的id_rsa.pub
文件傳輸到雲服務器某位置,再在雲服務器上該位置執行cat id_rsa.pub >> ~/.ssh/authorized_keys
便可而後咱們在本地電腦上,打開 cmd,使用ssh
方式鏈接雲服務器,輸入:
ssh -v git@雲服務器的公網IP
複製代碼
最後提示Welcome to Alibaba Cloud Elastic Compute Service !
,說明不用輸入密碼也登陸成功了,即配置 Git 密鑰成功,之後更新博客部署的時候不用輸入 Git 密碼了!
建立一個 Git 的倉庫,而且新建一個post-receive
文件
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 根目錄下,輸入如下安裝插件:
npm install hexo-deployer-git --save
npm install hexo-server
複製代碼
打開_config.yml
文件,修改deploy
項目以下:
deploy:
type: git
repo: git@雲服務器公網IP:/home/git/blog.git
branch: master
複製代碼
其中,type
項表示部署類型爲git
,倉庫repo
地址爲git@雲服務器公網IP:/home/git/blog.git
,分支branch
爲master
主分支。
對博客進行的美化、功能添加、文章擬寫等完畢後,命令行輸入hexo clean
清除本地緩存,輸入hexo g -d
生成靜態文件,並部署到遠程倉庫。
此時本地的博客頁面已經部署到了服務器的/home/www/website
目錄下:
部署完成後,若打開頁面沒變化,能夠在雲服務器輸入如下重啓nginx
便可:
nginx -s reload
複製代碼
到此,經過 hexo 搭建博客並部署到阿里雲服務器總算完成啦!