Hexo-博客部署到騰訊雲服務器centos7.5

相信大家把博客部署到服務器都是爲了加快訪問速度,這裏就不囉嗦了。

我的服務器

  • 系統 CentOS 7.5 64bit

  • 配置 標準型S2/1核/2GB/1Mbps

服務器需要的環境

  • 環境:gitNginx
  • 使用git 自動化部署發佈

打開騰訊雲,進入【雲服務器】→【登錄】

初始密碼在右上角消息裏面有

1】Git安裝及配置

一、安裝依賴庫和編譯工具

  • 安裝依賴庫:
  yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 

然後會出現:

Is this ok [y/d/N]:

輸入y繼續安裝,後面也一樣。

  • 安裝編譯工具:
  yum install gcc perl-ExtUtils-MakeMaker package 

二、下載 git並解壓編譯安裝

  • 查看服務器已有的git版本
git --version

然後會看到:

git version 1.8.3.1

但是官網版本已經更新了,因爲yum倉庫的Git版本更新的時間會存在延時,我們這裏採用源碼包安裝方式安裝。

  • 將陳舊版本的git刪除
yum remove git
  • 選擇一個目錄來存放下載下來的 git 安裝包。這裏選擇了/usr/local/src 目錄
  cd /usr/local/src  
  • 下載最新版git到/usr/local/src,可以在官網找到版本,目前最新版本是2.26.0。
wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.0.tar.gz
  • 解壓到當前目錄
tar -zvxf git-2.26.0.tar.gz
  • 進入 git-2.26.0.tar.gz 目錄下
cd git-2.26.0
  • 執行編譯
make prefix=/usr/local/git all
  • 安裝 git 到 /usr/local/git 目錄下
make prefix=/usr/local/git install

三、配置 git 環境變量

  • 打開環境變量配置文件
vim /etc/profile

按i進入編輯模式,按向下鍵到底部,添加下面兩行命令:

PATH=$PATH:/usr/local/git/bin   # git 的目錄
export PATH

esc退出,按:wq保存編輯。(注意是先:再是wq)

  • 使 git 環境變量生效
 source /etc/profile
  • 驗證安裝完成,查看 git 的版本號
git --version

這時候我們的git版本已經變成了:

git version 2.26.0

四、創建 git 用戶

  • 創建git用戶
adduser git
  • 獲取權限
chmod 740 /etc/sudoers
vim /etc/sudoers

i 鍵進入文件的編輯模式,按向下鍵找到如下字段

root    ALL=(ALL)       ALL

在其後面增加一句:

git     ALL=(ALL)       ALL

Esc 鍵退出編輯模式,輸入:wq 保存退出。(先輸入:,然後輸入wq回車)

  • 退回權限
chmod 400 /etc/sudoers

五、配置密鑰

  • 創建密鑰

來到這裏的小夥伴應該都已經有了自己的hexo博客,那麼肯定已經創建過自己的密鑰,一般存放在c/用戶/.ssh下。

如果沒有自己的密鑰,可以移步我之前的教程,裏面有密鑰創建步驟

Github + Hexo 搭建個人博客超詳細教程

  • 將密鑰保存在服務器(之前有密鑰的直接複製就可以)

id_rsa.pub裏面的密鑰複製,在服務器運行下面命令,創建.ssh文件夾

su git
mkdir ~/.ssh

創建.ssh/authorized_keys文件,打開authorized_keys文件並將剛纔在本地機器複製的內容拷貝其中並保存

vim ~/.ssh/authorized_keys

i進入編輯模式粘貼完按 Esc 鍵退出編輯模式,輸入:wq 保存退出。(先輸入:,然後輸入wq回車)

  • 修改權限
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 測試本地連接服務器

    在本地電腦git bash here

//yourIp爲遠程服務器的ip地址
ssh -v git@yourIp     //yourIp爲你的服務器ip

如圖則證明本地機器與遠程機器已經接通

六、創建git倉庫

  • 切換到root用戶,創建一個目錄用於存儲網站的根目錄
su root
  • 創建網站的根目錄
mkdir /home/hexo
  • 給予權限
chown git:git -R /home/hexo

2】安裝Nginx

Nginx (engine x) 是一個高性能的HTTP反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務

一、安裝配置Nginx

  • 安裝Nginx
yum install -y nginx
  • 配置Nginx
nginx -t

使用vim打開nginx.conf文件

vim /etc/nginx/nginx.conf

i進入編輯模式粘貼完按 Esc 鍵退出編輯模式,輸入:wq 保存退出。(先輸入:,然後輸入wq回車)

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  www.muyiio.com;   //你的博客域名
        root         /home/hexo;       //git倉庫目錄
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }
j
    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

  • 啓動Nginx
systemctl start nginx.service
  • 重啓Nginx
systemctl restart nginx.service

二、自動化部署

  • 獲取root權限
su root
  • 建立git倉庫
cd /home/git
git init --bare blog.git
  • 修改blog.gi權限
chown git:git -R blog.git
  • /home/hexo/blog.git 下,有一個自動生成的 hooks 文件夾,我們創建一個新的 git 鉤子 post-receive,用於自動部署。
im blog.git/hooks/post-receive
  • i 鍵進入文件的編輯模式,在該文件中添加兩行代碼(將下邊的代碼粘貼進去),指定 Git 的工作樹(源代碼)和 Git 目錄
 #!/bin/bash 
 git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f 

Esc 鍵退出編輯模式,輸入:wq 保存退出。(先輸入,然後輸入wq回車)

  • 修改文件權限,使得其可執行。
chmod +x /home/git/blog.git/hooks/post-receive

3】配置本地Hexo

  • 博客根目錄_config下增加
deploy:
    type: git
    repo: root@***(服務器ip,內網外網都行):/home/git/blog.git    #倉庫地址
    branch: master    #分支
  • 部署
hexo clean
hexo g
hexo d
  • 輸入hexo d的時候,會要求你輸入自己的服務器密碼
Branch 'master' set up to track remote branch 'master' from 'https://e.coding.net/godxiaolon/godxiaolon.git'.
On branch master
nothing to commit, working tree clean
root@119.25.56.82's password:
Enumerating objects: 182, done.
Counting objects: 100% (182/182), done.
Delta compression using up to 12 threads
Compressing objects: 100% (61/61), done.
Writing objects: 100% (95/95), 73.08 KiB | 3.18 MiB/s, done.
Total 95 (delta 45), reused 0 (delta 0)
remote: hooks/post-receive: line 1: t: command not found
To 118.25.27.52:/home/git/hexoBlog.git
   8df3691..7d63b39  HEAD -> master
Branch 'master' set up to track remote branch 'master' from '[email protected]:/home/git/hexoBlog.git'.
INFO  Deploy done: git

輸入密碼不會有顯示,輸完回車就可以

  • 如果出現bash: git-receive-pack: command not found,則運行:
sudo ln -s /usr/local/git/bin/git-receive-pack  /usr/bin/git-receive-pack

  • 訪問服務器ip,看看有沒有成功

最後,發現其實挺簡單的,快去訪問你的服務器ip看看有沒有部署成功吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章