centos7服務(wù)器部署git并搭建部署Hexo個人博客
centos服務(wù)器搭建
個人服務(wù)器搭建
-
買一個合適自己的服務(wù)器(主要是價錢合適)
比如雙十一期間可以搶購一些大廠有優(yōu)惠活動的服務(wù)器。
-
如果有能力者吃警,可以自己買個主機,連接上公網(wǎng)火诸,做一個自己的服務(wù)器(本人這方面小白,以后有機會可以嘗試一下這種方式)
buy_server.png
本人在騰訊云買的服務(wù)器(不能用我多年積攢的Q幣支付荠察,屬實難受T.T)
如果想買個域名置蜀,花幾塊錢買個一年的域名也是極好的奈搜。
-
備案,不必多說盯荤,按照步驟采集一些信息馋吗,相關(guān)工作人員給你打幾個電話就完事了,當(dāng)你收到備案成功郵件時秋秤,備案就算完成了宏粤。
beian_success.png
-
安裝服務(wù)器操作系統(tǒng)
-
服務(wù)器操作系統(tǒng)
system_select.png
本人選擇的是centos,不過大都相同類似灼卢,因為大部分都是Linux操作系統(tǒng)绍哎,使用的大多是Linux操作命令
- 安裝過后,就可以進入下一步了鞋真。
-
如果有域名的崇堰,可以綁定一下域名,因為當(dāng)前服務(wù)器使用的還是公網(wǎng)IP涩咖,具體位置在云服務(wù)器上的我的域名海诲,管理域名板塊,解析上去就完事了檩互。
該整的整特幔,整完以后登錄服務(wù)器,點擊實例中的登錄按鈕闸昨,進入云服務(wù)器上的操作系統(tǒng)蚯斯,默認路徑應(yīng)該是root根路徑,但是這個root并不是最頂層零院,上層還有一個操作系統(tǒng)級的目錄溉跃〈迮伲可以用命令行進各大目錄看一看告抄,具體如何操作。
# 進入目錄
cd <目錄名>
# 進入上一級
cd ../
# 展示當(dāng)前目錄
ls
# 展示當(dāng)前路徑
pwd
# 創(chuàng)建文件夾
mkdir <文件名>
熟練掌握這些命令嵌牺,可以玩好幾天打洼,不過如果想使用的更好,建議還是學(xué)習(xí)一下linux命令逆粹,畢竟在操作系統(tǒng)不再low逼得使用可視化工具了募疮。
進入主線,安裝個nginx練練手先
打開騰訊云官方文檔
-
運維指南->軟件安裝 在這里可以根據(jù)不同的環(huán)境安裝軟件僻弹,本人使用的事centos環(huán)境阿浓,大致介紹一下安裝步驟:
- yum install 軟件名稱 這個命令用來安裝需要安裝的軟件
- 會顯示出安裝軟件的相關(guān)信息,并提示是否安裝蹋绽,選擇y
- 當(dāng)界面提示complete時芭毙,意味著安裝完成
如需查看安裝包軟件信息可以輸入 rpm -ql 軟件名 查詢安裝目錄筋蓖,如需查看軟件版本信息可以輸入rpm -q 軟件名 查看軟件包的版本信息,如需查看已安裝過的軟件可以輸入rpm -qa 查看已安裝過得軟件列表退敦。如果使用云服務(wù)安裝好的系統(tǒng)粘咖,會自帶很多常用的包,安裝之前可以查看一下是否安裝過侈百。
-
安裝個nginx玩玩瓮下,實在抱歉,因為騰訊云服務(wù)已經(jīng)幫您安裝好了钝域,您只需要使用就行了讽坏,使用linux命令尋找一下nginx安裝目錄在哪。然后進入目錄例证,準備下一步操作震缭。
通常軟件安裝后的目錄在etc這個文件夾里,使用vim打開它 vim /etc/nginx/nginx.config
可能有很多人剛接觸战虏,不敢使勁操作拣宰,生怕搞壞個目錄結(jié)構(gòu)啥的,造成系統(tǒng)崩潰烦感,弄得互聯(lián)網(wǎng)世界崩盤巡社,宇宙大爆炸啥的!但是手趣,我要說的就是這個晌该,如果你能在一個如此完善的操作系統(tǒng)里,僅憑修改幾個文件就搞壞了一整個系統(tǒng)绿渣,那就真的不用再看這邊文章了朝群,這篇文章容不下您這尊大神,您已經(jīng)是真的世界頂尖極客了中符。姜胖。。開個玩笑淀散,可勁作吧右莱,服務(wù)器買下來就是個小電腦,放心用档插,可勁造慢蜓,弄不壞的,如果實在弄壞了郭膛,咱還可以重新安裝系統(tǒng)晨抡,重裝后又成一個新的服務(wù)器了不是。
使用nginx配置一個簡單的首頁,方法也很簡單新手只需要改兩個地方
先把nginx.config最上邊的 user 改了耘柱,改成自己的主用戶權(quán)限的用戶名圆雁,比如我這里就改為user root
-
修改server下的index 為index.html,root為首頁文件的路徑
nginx_config.png -
改好之后啟動nginx帆谍,有兩種方式啟動nginx
第一種:切換入nginx目錄下伪朽,執(zhí)行nginx start啟動nginx服務(wù)器,nginx stop關(guān)閉nginx服務(wù)器汛蝙,nginx reload重啟nginx服務(wù)器
第二種:使用全局方法烈涮,使用systemctl啟動服務(wù)(可以不添加后綴.service)
systemctl start nginx
systemctl stop nginx
systemctl reload nginx# 命令合集 systemctl is-enabled servicename.service #查詢服務(wù)是否開機啟動 systemctl enable *.service #開機運行服務(wù) systemctl disable *.service #取消開機運行 systemctl start *.service #啟動服務(wù) systemctl stop *.service #停止服務(wù) systemctl restart *.service #重啟服務(wù) systemctl reload *.service #重新加載服務(wù)配置文件 systemctl status *.service #查詢服務(wù)運行狀態(tài) systemctl --failed #顯示啟動失敗的服務(wù)
nginx搭建完畢,下一步需要在服務(wù)器上搭建一下git倉庫窖剑,方法
-
git安裝
yum install -y git
-
配置git倉庫
useradd git # 添加git用戶 passwd git # git用戶新密碼 su git # 切換到git用戶 mkdir -p 目標目錄 # 項目的真實目錄
進入etc目錄下坚洽,打開sudoers,給git添加權(quán)限西土,root ALL=(ALL)ALL
如果sudoers沒有權(quán)限讶舰,可以用root用戶給sudoers添加可寫權(quán)限具體操作,chmod 740 /etc/sudoers需了,修改完后再改為chmod 440 /etc/sudoers跳昼,740 440 具體含義,請自行翻查linux權(quán)限操作
注意對其
進入git用戶執(zhí)行如下命令su git cd /home/git/ git init --bare blog.git cd blog.git/hooks vim post-receive # 在git里創(chuàng)建一個鉤子
在post-receive里邊輸入如下內(nèi)容:
#!/bin/bash GIT_REPO=/home/git/blog.git TMP_GIT_CLONE=/tmp/blog PUBLIC_WWW=/var/www/blog rm -rf ${TMP_GIT_CLONE} git clone $GIT_REPO $TMP_GIT_CLONE rm -rf ${PUBLIC_WWW}/* cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
保存后退出肋乍,執(zhí)行chmod +x post-receive 給這個文件可執(zhí)行權(quán)限
關(guān)閉git用戶shell權(quán)限
執(zhí)行:vim /etc/passwd
將最后一行的git:x:1001:1001:,,,:/home/git:/bin/bash修改為git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell-
配置SSH
cd /home/git mkdir .ssh # 創(chuàng)建.ssh目錄鹅颊,這是個隱藏文件,因為以.開頭的文件 cd .ssh vim authorized_keys
然后將本地的公鑰復(fù)制到authorized_keys文件里(公鑰即上文中本地執(zhí)行cat ~/.ssh/id_rsa.pub查看的內(nèi)容)
查看用戶組管理
ll /home/git ll /var/www
確保blog.git墓造、.ssh紊册、blog目錄的用戶組權(quán)限為git:git杖挣。若不是,執(zhí)行下列命令后再查看:
sudo chown git:git -R /var/www/blog sudo chown git:git -R /home/git/blog.git
到此為止就創(chuàng)建完成了辕漂,使用git上傳一下代碼和更新一下代碼嘗試嘗試嘹害。
配置hexo
學(xué)習(xí)一波hexo官方文檔
學(xué)習(xí)一波
發(fā)第一篇文章
進入下一步
配置_config.yml文件
學(xué)習(xí)一波官網(wǎng)的一鍵部署通砍。其實也沒啥好講的厕宗。配置好觉增,上傳齊活。
如果喜歡偷懶的刘离,可以一鍵部署加上傳githab室叉,具體方法:
// 修改package.json文件
"scripts": {
"build": "hexo clean && hexo g && hexo d && git add . && git commit -m '更新' && git pull && git push",
"dev": "hexo clean && hexo g && hexo s"
}
這么整的好處就是可以一鍵上傳源碼到GitHub,另一邊可以一鍵部署到個人服務(wù)器的私人git倉庫硫惕。
說一下自己的理解:大致原理就是在服務(wù)器上創(chuàng)建一個git倉庫,在鉤子里寫一個shell腳本野来,腳本內(nèi)容大概說的就是當(dāng)有版本上傳上來時恼除,刪除tem臨時文件中的內(nèi)容,執(zhí)行g(shù)it clone到tem臨時文件夾內(nèi),然后刪除對外的公網(wǎng)地址(nginx首頁位置)豁辉,最后復(fù)制tem內(nèi)新的臨時文件到對完的公網(wǎng)地址上令野。nginx指向的實質(zhì)就是hexo生成的public目錄下的內(nèi)容,到底很簡單徽级,就是這個整體自動化工具气破,多多少少有點復(fù)雜。
說實話餐抢,第一次寫這么長现使,還不敢中斷思路,生怕錯過細節(jié)旷痕,寫到最后實在是惡心的不想寫了碳锈,單純的流水賬。下一次爭取用最簡潔的語言欺抗,描述出最完整的意思售碳。