摘要:原文地址作為一個(gè)天天造的人,必然要經(jīng)常訪問谷歌等網(wǎng)站,所以前些日子買了自己搭了梯子。今天就跟大家分享一下,如何使用搭建個(gè)人博客。創(chuàng)建用戶,建立裸庫(kù),配置。
原文地址:https://www.xksblog.top/use-V...
作為一個(gè)天天造BUG的人,必然要經(jīng)常訪問谷歌等網(wǎng)站,所以前些日子買了VPS自己搭了梯子。但如果只是用VPS來搭梯子那就太浪費(fèi)了,所以又折騰了一天,把自己之前的Hexo博客也遷移了過來,但也是踩了不少坑。今天就跟大家分享一下,如何使用VPS搭建個(gè)人Hexo博客。
準(zhǔn)備工作VPS(我使用的是Vultr,系統(tǒng)是CentOS 7)
SSH工具(遠(yuǎn)程連接你的VPS,這里使用的是PuTTY)
域名(在阿里云購(gòu)買的,有些活動(dòng)域名首年僅1元)
本地搭建好的Hexo博客(這里不再贅述,網(wǎng)上教程一大把,當(dāng)然也可以參考我之前寫的Hexo+碼云+git快速搭建免費(fèi)的靜態(tài)Blog,只看里面的第一步就好)
VPS搭建Hexo博客的原理如果上來就干,不知其所以然,那很難成功的,即使出了bug也不知道該從哪里調(diào)試。我們先來看下VPS搭建Hexo博客的基本原理,一圖以蔽之:
好了,我們來稍微分析一下:
本地計(jì)算機(jī)方面,本地Hexo在之前準(zhǔn)備階段已經(jīng)安裝好了,所以這一塊我們無需多慮。
服務(wù)器方面,我們需要在服務(wù)器上搭建一個(gè)Git倉(cāng)庫(kù)。在本地Hexo執(zhí)行deploy后,博客文件會(huì)被push到這個(gè)Git倉(cāng)庫(kù),然后這個(gè)倉(cāng)庫(kù)又會(huì)通過一個(gè)git-hooks的功能把文件同步到VPS的網(wǎng)站根目錄,經(jīng)過Nginx代理服務(wù)把網(wǎng)站展現(xiàn)給用戶。
整個(gè)搭建流程服務(wù)器端安裝配置Git、Nodejs、Nginx。
創(chuàng)建git用戶,建立git裸庫(kù),配置git-hooks。
配置本地Hexo,完成git自動(dòng)化部署。
服務(wù)器環(huán)境搭建以下均需要通過SSH工具連接VPS進(jìn)行操作
安裝Git和Nodejs# 安裝git yum install git # 安裝Nodejs curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
使用git --version和node --version查看,顯示版本號(hào)則安裝成功,
安裝Nginxyum install nginx
使用nginx -v查看,顯示版本號(hào)則安裝成功
找到Nginx目錄下的conf配置文件,執(zhí)行:
# 修改前先備份一下 cp nginx.conf nginx.conf.bak # 修改配置文件 vim nginx.conf
修改配置文件中的server部分:
server { # 默認(rèn)80端口 listen 80 default_server; listen [::]:80 default_server; # 修改server_name為自己之前注冊(cè)好的域名 server_name www.xksblog.top xksblog.top; # 修改網(wǎng)站根目錄,在這里存放你的Hexo靜態(tài)文件,請(qǐng)自行選擇或創(chuàng)建目錄 root /var/www/blog; # 下面保持默認(rèn) # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
配置完成后保存退出,使用nginx -t查看配置是否有錯(cuò)誤。
查看運(yùn)行狀態(tài):systemctl status nginx,顯示running表示成功運(yùn)行。
1.創(chuàng)建一個(gè)git用戶,并根據(jù)提示設(shè)置密碼,用來專門運(yùn)行g(shù)it服務(wù):
adduser git
2.賦予git用戶sudo權(quán)限
chmod 740 /etc/sudoers vim /etc/sudoers
找到以下內(nèi)容:
## Allow root to run any commands anywhere root ALL=(ALL) ALL
在下面添加一行:git ALL=(ALL) ALL
保存退出后改回權(quán)限:chmod 400 /etc/sudoers
3.切換用戶,配置SSH
使用su git切換到git用戶,再執(zhí)行下列操作:
# 切換到git用戶目錄 cd /home/git # 創(chuàng)建.ssh文件夾 mkdir ~/.ssh # 創(chuàng)建authorized_keys文件并編輯 vim ~/.ssh/authorized_keys # 如果你還沒有生成公鑰,那么首先在本地電腦中執(zhí)行 cat ~/.ssh/id_rsa.pub | pbcopy生成公鑰 # 再將公鑰復(fù)制粘貼到authorized_keys # 保存關(guān)閉authorized_keys后,修改相應(yīng)權(quán)限 chmod 600 ~/.ssh/authorzied_keys chmod 700 ~/.ssh
然后可以通過本地Git Bash執(zhí)行ssh命令測(cè)試是否可以免密登錄
ssh -v git@服務(wù)器ip地址
這樣git用戶就添加好了。
建立git裸庫(kù)# 回到git目錄 cd /home/git # 使用git用戶創(chuàng)建git裸倉(cāng)庫(kù),以blog.git為例 git init --bare blog.git檢查用戶組權(quán)限
我們的git裸倉(cāng)庫(kù)已經(jīng)建立好了,離成功又近了一步。為了以防萬(wàn)一,我們要檢查一下之前的blog.git、.ssh、blog目錄的用戶組權(quán)限是否都為git:git
# 還記得/var/www/嗎?這是之前配置nginx時(shí),我們自己選定的網(wǎng)站根目錄,請(qǐng)依據(jù)你自己的設(shè)置更改 ll -a /var/www/ ll -a /home/git/
如果有哪個(gè)不是,執(zhí)行下面相應(yīng)的命令后再查看
sudo chown git:git -R /var/www/blog sudo chown git:git -R /home/git/blog.git使用git-hooks同步網(wǎng)站根目錄
簡(jiǎn)單來說,我們使用一個(gè)鉤子文件:post-receive,每當(dāng)git倉(cāng)庫(kù)接收到內(nèi)容的時(shí)候,就會(huì)自動(dòng)調(diào)用這個(gè)鉤子,把內(nèi)容同步到網(wǎng)站根目錄。
在git用戶下執(zhí)行:
# 新建一個(gè)post-receive文件并編輯 vim ~/blog.git/hooks/post-receive
在里面輸入以下內(nèi)容,注意修改為自己的設(shè)置:
#!/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賦予這個(gè)文件可執(zhí)行權(quán)限。
好了,以上就是服務(wù)器端需要配置的內(nèi)容。我們還差最后一步就可以完成整個(gè)部署了!
配置本地Hexo的_config.yml非常簡(jiǎn)單,只需要找到本地Hexo博客的站點(diǎn)配置文件_config.yml,找到以下內(nèi)容并修改:
deploy: type: git repo: git@你的服務(wù)器IP:/home/git/blog.git branch: master
保存后,剩下的就是Hexo的日常操作了,這里就不贅述了,寫完文章后,在你的本地博客根目錄執(zhí)行以下命令:
hexo clean hexo g -d
就可以實(shí)現(xiàn)線上博客的自動(dòng)更新了!一切搞定!
一些注意點(diǎn)和小坑很多時(shí)候我們沒這么幸運(yùn),博客搭建過程中總會(huì)出現(xiàn)無數(shù)的坑。
CentOS和Ubuntu如果你的VPS系統(tǒng)是Ubuntu,那么yum命令肯定要換成apt-get。
一般來說著名的linux系統(tǒng)基本上分兩大類:vim: command not found
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常見的安裝包格式 rpm包,安裝rpm包的命令是“rpm -參數(shù)”
2 包管理工具 yum
3 支持tar包
Debian系列
1 常見的安裝包格式 deb包,安裝deb包的命令是“dpkg -參數(shù)”
2 包管理工具 apt-get
3 支持tar包
系統(tǒng)自帶的vim未正確安裝
輸入rpm -qa|grep vim命令, 如果vim已經(jīng)正確安裝,會(huì)返回下面的三行代碼:
root@server1 [~]# rpm -qa|grep vim vim-enhanced-7.0.109-7.el5 vim-minimal-7.0.109-7.el5 vim-common-7.0.109-7.el5
如果少了其中的某一條,比如vim-enhanced,就用命令yum -y install vim-enhanced來安裝缺少的那一個(gè)。
如果上面的三條一條都沒有返回, 那就直接用yum -y install vim*命令吧!
Permission denied如果git用戶出現(xiàn)類似權(quán)限不夠被拒絕訪問的問題,直接試試使用sudo權(quán)限吧!
例如:在創(chuàng)建文件夾的時(shí)候出現(xiàn)權(quán)限不夠的問題,最簡(jiǎn)單的解決方法就是sudo mkdir 文件夾名
但還是具體問題具體分析,多多谷歌。
一切正常,但deploy后網(wǎng)頁(yè)無法顯示首先要查看一下服務(wù)器網(wǎng)站根目錄下是否有Hexo的靜態(tài)文件。
如果沒有,說明git配置出現(xiàn)問題,再仔細(xì)查找配置上的原因。
如果已經(jīng)傳入了靜態(tài)文件,說明可能是服務(wù)器nginx等環(huán)境配置出現(xiàn)問題,這種情況排查起來比較困難,一個(gè)簡(jiǎn)單粗暴的辦法就是試試一鍵安裝LNMP(安裝方法請(qǐng)自行百度+谷歌)。
LNMP代表的就是:Linux系統(tǒng)下Nginx+MySQL+PHP這種網(wǎng)站服務(wù)器架構(gòu)后記
同樣還有LAMP,它代表的是Linux+Apache+Mysql/MariaDB+Perl/PHP/Python
本人也是一個(gè)Linux小白,在使用VPS搭建Hexo博客的時(shí)候,著實(shí)出現(xiàn)了不少頭疼的問題。一步步走下來,收獲頗豐。解決問題的過程,就是學(xué)習(xí)提升的過程。如果博客搭建沒那么順利,解決不了那些頭疼的問題,試著稍作休息,或許靈光一閃,思路也就有了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40090.html
摘要:提示,如果需要通過實(shí)現(xiàn)服務(wù)器自動(dòng)化部署,推薦使用會(huì)更方便一些然后在目錄初始化本地倉(cāng)庫(kù)并提交到這時(shí)候上已經(jīng)有我提交的代碼了。再新建一個(gè)文件處理部署相關(guān)腳本,內(nèi)容如下將新增的與兩個(gè)文件到服務(wù)器。 這篇文章將如何搭建hexo,以及如何通過git webhooks實(shí)現(xiàn)遠(yuǎn)程vps的自動(dòng)部署 這篇文章適合的條件: 簡(jiǎn)單的用于個(gè)人博客、公司博客展示,hexo的定位是靜態(tài)博客,要實(shí)現(xiàn)動(dòng)態(tài)服務(wù)器的功能...
摘要:博客的架構(gòu)先搞明白博客從搭建到自動(dòng)發(fā)布的架構(gòu),才能更好的理解我們每一步進(jìn)行的操作。整個(gè)搭建流程第一部分服務(wù)器環(huán)境搭建,包括安裝配置創(chuàng)建用戶。在裸庫(kù)的文件夾中,新建文件。 1. 博客的架構(gòu) 先搞明白Hexo博客從搭建到自動(dòng)發(fā)布的架構(gòu),才能更好的理解我們每一步進(jìn)行的操作。不然只跟著步驟過了一遍,卻不知道為什么這么做。 首先看這張架構(gòu)圖:showImg(https://segmentfaul...
原文鏈接 隨著Vateral主題的開發(fā)接近了尾聲,在對(duì)主題速度優(yōu)化的時(shí)候發(fā)現(xiàn)之前用的githubpage問題多多:首先就是因?yàn)樵趪?guó)內(nèi)的原因,訪問速度本身就很慢,曾經(jīng)有次加載一張16kb的圖標(biāo)時(shí)間耗費(fèi)了26s!?。科浯?,在對(duì)資源做CDN托管加速時(shí),域名是需要備案的,顯然githubpage也是做不了的;所以果斷舍棄了這個(gè)把hexo搭建到了我的阿里云服務(wù)器上 總體來說還是比把hexo搭建到github...
閱讀 2991·2021-11-16 11:51
閱讀 2621·2021-09-22 15:02
閱讀 3737·2021-08-04 10:21
閱讀 3627·2019-08-30 15:43
閱讀 1961·2019-08-30 11:04
閱讀 3612·2019-08-29 17:14
閱讀 500·2019-08-29 12:16
閱讀 2945·2019-08-28 18:31