阿里雲部署博客hexo+git+nginx

部署環境:阿里雲centos7.3,本地win10html

檢查端口訪問權限

實列列表->操做->更多->網絡和安全組->安全組配置,點擊配置規則,查看是否開放了400080端口node

沒有配置的直接點擊右上角的【添加安全組規則】便可,受權對象通常配置0.0.0.0/0,即對全部訪問者開放。nginx

環境搭建

推薦直接使用命令安裝,也能夠去官網下載tar包而後解壓。git

安裝git

yum install git
複製代碼

安裝NodeJs

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
sudo yum install -y nodejs
複製代碼
  • 安裝完成後,查看版本,確認安裝成功
git --version
node --version
複製代碼

環境部署與博客搭建

添加用戶

adduser git
複製代碼
  • 受權用戶
chmod 740 /etc/sudoers
vim /etc/sudoers
複製代碼
  • /Allow root定位到此處

  • 將給git添加到root下面
git ALL=(ALL) ALL
複製代碼

  • :wq保存退出後,將權限改回
chmod 400 /etc/sudoers
複製代碼

免密輸入

  • 切換用戶
sudo passwd git
複製代碼
  • 爲新用戶建立密碼後,考慮git的自動部署,開始爲git授予ssh公鑰實現免密輸入
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
複製代碼

電腦端操做(windows)

  • git-bash
ssh-keygen -t rsa
複製代碼
  1. 鍵入這個命令後,會提示讓你給這個公鑰配置密碼,咱們的目的就是免密登陸,不用理會,一路回車便可。npm

  2. 而後將win10中生成的id_rsa.pub文件中的公鑰複製到authorized_keysvim

  3. 隨後修改目錄權限權限windows

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
複製代碼
  • 輸入一次帳戶密碼,之後再鏈接SSH就能夠免密登陸,直接在window遠程操做
ssh -v git@服務器公網IP
複製代碼

nginx安裝配置

  • 回到root用戶centos

  • 安裝安全

su // 回到root
yum install nginx -y
複製代碼
  • 啓動
systemctl start nginx
systemctl enable nginx
複製代碼
  • 隨後訪問公網ip

  • 配置Nginx(若是有人是Welcome to nginx on Fedora!是沒有該目錄的,建議從新安裝
vim /etc/nginx/conf.d/default.conf
複製代碼
  • 修改域名和目錄

  • 建立對應的目錄
sudo mkdir -p /usr/share/nginx/html/blog
sudo chown -R git:git /usr/share/nginx/html/blog
複製代碼
  • 建立git倉庫
su git
cd ~
git init --bare blog.git
複製代碼
  • 建立一個新的 Git 鉤子,用於自動部署在/blog.git 下,有一個自動生成的 hooks 文件夾。在裏邊新建一個新的鉤子文件 post-receive
vim ~/blog.git/hooks/post-receive
複製代碼
  • 編輯內容
#!/bin/sh
git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f
複製代碼
  • 保存退出以後,再輸入如下代碼,賦予該文件可執行權限。
chmod +x ~/blog.git/hooks/post-receive
複製代碼

博客與Hexo

Hexo是經常使用於搭建博客系統的框架,支持markdown編輯,可以實現博客的自動部署bash

安裝Hexo

sudo npm install -g hexo-cli
複製代碼
  • 建立文件夾,用於初始化Hexo及存放博客內容
mkdir ~/hexo
cd hexo
hexo init blog
複製代碼
  • 初始化的Hexo即在blog文件夾中,包含配置_config.yml(核心配置),source(博客資源)等主要目錄,
  • 接着安裝必要插件
cd blog
npm install hexo-deployer-git --save
npm install hexo-server
複製代碼

hexo-deployer-git用於Git自動部署,hexo-server用於本地簡單的服務器。

  • 運行測試
hexo s -g
複製代碼

  • 訪問IP/域名:4000

這個是Hexo的默認主題,若是想換個主題。推薦使用Next主題,選擇喜歡的主題後,裏面的wiki有詳細的主題配置教程。

  • ctrl+c中止剛纔的hexo服務,而後初始化NodeJs
brew install nodejs
複製代碼
  • 建立本身的第一篇博客 Hello World
hexo new "Hello Saturaday"
複製代碼
  • 能夠看到對應的Hello-Saturday .md已自動生成,咱們在裏面寫咱們的博客就能夠了
vim source/_posts/Hello-Saturday.md
複製代碼

  • 保存退出後,hexo s -g

  • 再次訪問域名,就可看到新編輯的內容了

Hexo的後臺運行腳本

按照上數部署後,雖然能夠訪問博客,可是一旦斷開了鏈接,這個服務就中止了,所以須要編輯一個運行腳本,保持服務的運行。

  • 直接在blog的目錄下,先建立啓動腳本start.sh
vim start.sh
hexo s & > log.txt
:wq
chmod 777 start.sh
複製代碼
  • 再建立run.sh運行腳本
vim run.sh
nohup ./start.sh 2> run.txt
:wq
chmod 777 run.sh
複製代碼
  • 最後建立關閉stop.sh腳本
vim stop.sh
ID=`ps -ef | grep "hexo" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "---------------"
:wq
chmod 777 stop.sh
複製代碼
  • 最後運行腳本便可
./run.sh
複製代碼

注:偏於有限,可能不太詳細,參考博文
相關文章
相關標籤/搜索