建站過程:阿里雲服務器部署hexo博客

最近購買了阿里雲的雲服務器域名,本身折騰搭建博客。在這裏我把搭建的過程記錄分享一下!node

1、本地電腦

1.1 安裝 node.js

瀏覽器進入NodeJS 官網,安裝 LTS(Long Term Support)版本。nginx

按住win+R,輸入cmd,進入 cmd 命令行工具,輸入node -v查看 node 版本,git

若出現版本信息,則說明 node 安裝成功。web

1.2 安裝 hexo

在 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

  • 美化

對本身的博客進行更改樣式、美化、增刪功能、發佈文章等操做,就不展開介紹了。

2、購買域名

  • 購買域名

    在阿里雲上以學生認證優惠購買了lzxjack.top這個域名。

  • 域名備案

    域名綁定國內的服務器,必需要進行備案操做,不然將沒法訪問。

    從提交備案信息,到管局審覈經過,備案號下來一共花了不到 10 天的時間。

  • 域名解析

    域名解析是把域名指向網站空間 IP,讓人們經過註冊的域名能夠方便地訪問到網站的一種服務。IP 地址是網絡上標識站點的數字地址,爲了方便記憶,採用域名來代替 IP 地址標識站點地址。

    • 主機記錄中,www表明域名前加www.,如www.lzxjack.top@就表明lzxjack.top,這樣兩個地址都能訪問到服務器了
    • 記錄類型A是指,將域名指向一個IPV4地址
    • 記錄值就是服務器的公網 IP

3、服務器端

3.1 購買服務器

爲了讓其餘用戶在本身的客戶端訪問到本身的博客,就須要將博客部署到服務器上,其餘用戶經過訪問服務器的公網 IP 來訪問到服務器上的資源。若綁定了域名,還能夠經過域名訪問。

經過阿里雲開發者成長計劃,購買了輕量應用服務器。在系統的選擇上,做爲服務器系統,CentOS 穩定、強大,因此係統鏡像選擇了 Linux 系統的 CentOS 7.3 版本。

3.2 配置端口

點擊雲服務器管理頁面的防火牆,再點擊添加規則

要使用 HTTP 協議訪問服務器,須要在服務器端監聽 80 端口,由於 80 端口是服務器的默認端口號。而阿里雲服務器默認關閉 80 端口,則須要咱們手動打開監聽 80 端口。另外,服務器端配置 Git 時須要使用 SSH 協議進行本地與服務器的鏈接,須要服務器監聽 22 端口,也須要手動打開。

3.3 服務器環境搭建

此步驟須要在雲服務器上完成,具體方法可使用遠程鏈接,也可使用 Xshell 客戶端進行鏈接。

  • 安裝 nginx

    1. 切換到 root 賬號

      sudo su root
      複製代碼

    2. 須要使用 nginx 做爲 Web 服務器,因此咱們首先要安裝 nginx。可使用 yum 命令直接進行安裝。

      yum install -y nginx
      複製代碼

    3. 安裝完成後啓動 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.confwwwblog.conf

    打開/etc/nginx/目錄下的nginx.conf文件,添加下面一行代碼,將剛纔新建的配置文件引入進來。*.conf的意思是將vhost文件夾下的全部.conf後綴的文件都引入了進來。注意:要寫在http{}的裏面。

    include /etc/nginx/vhost/*.conf;
    複製代碼

    至此,完成了 nginx 路由的配置,將域名和雲服務器指定路徑進行了綁定。

3.4 安裝 node.js

curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
複製代碼

安裝完成後執行 node -v 和 npm -v 若是打印版本號則安裝成功

4、配置服務端 Git

這一部分主要目的是本地電腦能夠經過ssh方式鏈接到雲服務器,而後就能夠經過命令行方式將博客傳到服務器上。

4.1 安裝 Git

yum install git
複製代碼

4.2 配置 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
複製代碼

4.3 配置 Git 密鑰

生成公鑰密鑰文件:

ssh-keygen
複製代碼

輸入後都按回車便可!!!

此時在目錄下就會有兩個文件,分別是id_rsaid_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 密碼了!

4.4 建立 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
複製代碼

到此服務端配置完成。

5、配置 hexo,部署發佈

本地電腦和服務端配置都完成後,在本地電腦的 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,分支branchmaster主分支。

對博客進行的美化、功能添加、文章擬寫等完畢後,命令行輸入hexo clean清除本地緩存,輸入hexo g -d生成靜態文件,並部署到遠程倉庫。

此時本地的博客頁面已經部署到了服務器的/home/www/website目錄下:

部署完成後,若打開頁面沒變化,能夠在雲服務器輸入如下重啓nginx便可:

nginx -s reload
複製代碼

到此,經過 hexo 搭建博客並部署到阿里雲服務器總算完成啦!

相關文章
相關標籤/搜索