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