帶你跳過各類坑,一次性把 Hexo 博客部署到本身的服務器

hexo-to-your-server

原文地址:帶你跳過各類坑,一次性把 Hexo 博客部署到本身的服務器前端

完成效果:點擊查看我的網站node

1、開始

配置本地 node 環境

  1. node下載 官網下載,能夠的話推薦使用 nvm 安裝linux

  2. 安裝記得把目錄改到其餘盤,這裏我具體是在 D:\programming\nodejsnginx

node更換路徑

打開cmd查看node安裝狀況git

node -v
npm -v
複製代碼
  1. 配置全局環境

進入安裝目錄,建立文件夾node_globalnode_cache 並執行github

npm config set prefix "D:\programming\nodejs\node_global"
npm config set cache "D:\programming\nodejs\node_cache"
複製代碼

環境配置:新增環境變量NODE_PATH和添加Path,兩個值都爲 D:\programming\nodejs\node_globalshell

node更換路徑

node更換路徑

  1. 安裝hexo-cli
npm i hexo-cli -g
hexo
複製代碼

若是顯示下面狀況,恭喜你成功全局模塊調用npm

node更換路徑

  1. 若是出現命令未找到,或不是可執行程序,彆着急!先仔細重複 3-4 步,通常是可以給解決的,若是實在是不能解決,日後看json

  2. 隨便找個地方初始化文件,執行以下命令:swift

mkdir hexo-blog
cd hexo-blog && npm init -y
複製代碼

如今有 3 種解決方法,任選其一

  • 法 1:檢查全局目錄是否的hexo模塊,執行以下命令:
D:\programming\nodejs\node_global\hexo
複製代碼
  • 法 2:若是以爲每次加前綴麻煩,使用link命令連接
npm link hexo
複製代碼

package.json 中新建腳本以下

npm run hexo
複製代碼

新建npm腳本

  • 法 3:你還能夠直接在hexo-blog中下載
npm i hexo-cli
npm run hexo (仍是要在package.json中新建腳本)
複製代碼

初始化hexo項目

  1. 若是是按照上一節步驟 4 過來的,則在hexo-blog文件下初始化
hexo init myblog && cd myblog
npm i
複製代碼
  1. 下載主題
git clone https://github.com/iissnan/hexo-theme-next themes/next
複製代碼

本地配置文件中設置theme屬性

添加next主題

  1. 本地執行hexo項目,添加start腳本
npm start
複製代碼

新建npm-start腳本

打開 http://localhost:4000 驗證效果吧

git環境搭建

  1. git安裝:官網下載

  2. 生成ssh認證,執行以下命令

git config --global user.name "yourname"
git config --global user.email youremail@example.com
ssh-keygen -t rsa -C "youremail@example.com"
git config --global core.autocrlf false  // 禁用自動轉換,這個不設置後面上傳時會出現警告,以下
複製代碼

git警告

最後獲取到的ssh認證在C:\Users\yourname\.ssh


3、服務器配置

搭建遠程Git私庫

  1. 登陸到遠程服務器,推薦使用Xshell 5

  2. 安裝 git

git --version // 如無,則安裝
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git
複製代碼
  1. 建立用戶並配置其倉庫
useradd git
passwd git // 設置密碼
su git // 這步很重要,不切換用戶後面會很麻煩
cd /home/git/
mkdir -p projects/blog // 項目存在的真實目錄
mkdir repos && cd repos
git init --bare blog.git // 建立一個裸露的倉庫
cd blog.git/hooks
vi post-receive // 建立 hook 鉤子函數,輸入了內容以下
複製代碼
#!/bin/sh
git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
複製代碼

添加完畢後修改權限

chmod +x post-receive
exit // 退出到 root 登陸
chown -R git:git /home/git/repos/blog.git // 添加權限
複製代碼
  1. 測試git倉庫是否可用,另找空白文件夾
git clone git@server_ip:/home/git/repos/blog.git
複製代碼

若是能把空倉庫拉下來,就說明 git 倉庫搭建成功了

git倉庫測試

  1. 創建ssh信任關係,在本地電腦
ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip
ssh git@server_ip // 測試可否登陸
複製代碼

:此時的 ssh 登陸 git 用戶不須要密碼!不然就有錯,請仔細重複步驟 3-5

  1. 爲了安全起見禁用 git 用戶的 shell 登陸權限,從而只能用 git clone,git push 等登陸
cat /etc/shells // 查看 git-shell 是否在登陸方式裏面
which git-shell // 查看是否安裝
vi /etc/shells
添加上2步顯示出來的路勁,一般在 /usr/bin/git-shell
複製代碼

修改/etc/passwd中的權限

// 將原來的
git:x:1000:1000::/home/git:/bin/bash

// 修改成
git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
複製代碼

搭建nginx服務器

  1. 下載並安裝nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.15.2.tar.gz
tar xzvf nginx-1.15.2.tar.gz
cd nginx-1.15.2
./configure // 若是後面還想要配置 SSL 協議,就執行後面一句!
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
make && make install
alias nginx='/usr/local/nginx/sbin/nginx' // 爲 nginx 取別名,後面可直接用
複製代碼
  1. 配置nginx文件

先啓動是否安裝成功

nginx // 直接來!瀏覽器查看 server_ip,默認是 80 端口
複製代碼

修改配置文件

nginx -s stop // 先中止nginx
cd /usr/local/nginx/conf
vi nginx.conf
修改 root 解析路徑,以下圖
同時將 user 改成 root 以下圖,否則nginx沒法訪問 /home/git/project/blog
nginx -s reload
複製代碼

修改nginx配置

修改nginx user

4、發佈

至此咱們就把本地和服務器的環境所有搭建完成,如今利用 hexo 配置文件進行連接

配置_config.yml文件

  1. 編輯 _config.yml 的 deploy 屬性

編輯本地deploy

  1. 在 package.json 中添加 npm 腳本
"scripts": {
  "deploy": "hexo clean && hexo g -d",
  "start": "hexo clean && hexo g && hexo s"
},
複製代碼
  1. 連接!這下在本地調試就用npm start,調試好了就上傳到服務器,美滋滋~快經過你的服務器 ip 訪問吧
npm run deploy
複製代碼

5、最後說句

本人前端新手一枚,有錯誤的話歡迎指正

貼上 我的網站,建站初期,歡迎您的光臨~

喜歡的話麻煩給個 ★ 哦

6、參考連接

相關文章
相關標籤/搜索