armbian nginx 部署博客_通过Git将Hexo博客部署到服务器
服務器是用的阿里云ECS CentOS,本來是用來部署WordPress的,后來接觸了Hexo,就把Hexo直接部署到了GitHub pages和Coding Pages上,但是最近發現Coding pages經常抽風,所以我決定將hexo重新部署回服務器上
基礎
- 使用hexo生成靜態文件
- 在云主機上搭建git環境,并將靜態文件通過git上傳到云主機
- 使用git-hooks實現自動部署
- Nginx用做靜態文件服務器,實現外界對博客的訪問
環境
- 本地桌面為Win10,使用的終端為cmder,cmder自帶git,理論上使用bash也一樣
- 服務器為 CentOS 7 64bit,默認狀態,不使用寶塔面板
開始
登錄服務器
$ ssh root@123.125.114.144 #這里假設服務器外網ip為123.125.114.144(悄悄告訴你一個大秘密,這是百度的ip地址) #登陸密碼就是你拿到服務器一開始設置的密碼安裝git和nginx
$ yum install git $ yum install nginx添加一個git用戶
$ adduser git #添加git用戶 $ chmod 740 /etc/sudoers #改變sudoers文件的權限為文件所有者可寫 $ vim /etc/sudoers #vim是一個很強大的編輯器,使用方法自行Google找到root ALL=(ALL) ALL,在它下方加入一行
git ALL=(ALL) ALL$ chmod 400 /etc/sudoers #將其權限修改為文件所有者可讀 $ sudo passwd git #設置git用戶的密碼給git用戶添加ssh密鑰
如果以前使用過給github或者是coding之類的,應該知道這個密鑰指的什么,這里我不多說
$ su git #切換到git用戶 $ mkdir ~/.ssh #創建.ssh文件夾 $ touch ~/.ssh/authorized_keys #創建authorized_keys文件 $ chmod 600 ~/.ssh/authorzied_keys #為authorized_keys文件賦予文件所有者可讀可寫的權限 $ chmod 700 ~/.ssh #為.ssh文件夾賦予文件夾所有者可讀可寫可執行的權限 $ vim ~/.ssh/authorized_keys #將ssh密鑰粘貼進去關閉終端,使用ssh git@123.125.114.144重新登錄服務器,測試是否能不要密碼登錄到git用戶
創建git倉庫并使用git-hooks實現自動部署
$ sudo mkdir /var/repo #新建目錄,這是git倉庫的位置 $ sudo mkdir /var/www # $ sudo mkdir /var/www/hexo #這是博客源文件的目錄 $ cd /var/repo #轉到git倉庫的文件夾 $ sudo git init --bare blog.git #創建一個名叫blog的倉庫 $ sudo vim /var/repo/blog.git/hooks/post-update增加下面兩行,當我們從本地push上去時,git-hooks會自動執行下列命令,這是git自帶的的方法,表示在/var/repo/blog.git中對/var/www/hexo執行checkout -f命令,可以在我們每次 push 完之后,把部署目錄更新到博客的最新狀態,這里我也有點糊涂,不太懂為什么checkout的作用是這個
#!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f然后給權限
$ cd blog.git/hooks/ $ sudo chown -R git:git /var/repo/ #進行文件夾及其子文件所有者變更 $ sudo chown -R git:git /var/www/hexo #進行文件夾及其子文件所有者變更,我也不知道為什么git:git $ sudo chmod +x post-update #賦予其可執行權限其實還有一種辦法,即push后,先刪除之前的文件,再clone倉庫到/var/www/hexo,可以自行嘗試,鏈接在此
配置nginx
$ sudo nginx -t #查看nginx配置路徑,寶塔面板安裝nginx非下列路徑 $ sudo vim /etc/nginx/nginx.conf找到server配置塊,主要配置listen, server_name, root三個字段。listen是端口,server_name是你的域名orxing.top ,root為博客源文件路徑 /var/www/hexo
域名沒備案,不允許使用80端口,不能添加server_name,端口可以換為任意端口,如果你的80端口被占,也可以修改為其他端口,自定義端口的填一個listen即可,另一個可以刪除
域名備案了,那把域名填上,并且去域名控制臺將域名解析到你的服務器ip上
由于阿里云服務器默認沒有開啟80端口,所以你必須去自行開啟,其他端口也是同理
給git用戶設置權限
給git用戶設置權限,使其不能通過ssh git@123.125.114.144登錄,也不能通過su git切換到git用戶,
git操作不影響
$ sudo vim /etc/passwd #修改最后一行 #將/bin/bash修改為/usr/bin/git-shell參考鏈接
- 阿里云ECS環境下搭建基于Hexo+Git+Nginx的靜態博客平臺
- Hexo搭建技術博客部署在阿里云服務器上教程
- Git 如何針對其他路徑下的Repository 執行指令
總結
以上是生活随笔為你收集整理的armbian nginx 部署博客_通过Git将Hexo博客部署到服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正在等待语音服务器回应,Python如何
- 下一篇: Java程序员遇到瓶颈后我们可以试着朝四