摘要:在這里的作用只要是用管理員權(quán)限安裝一些軟件和開(kāi)啟一些服務(wù)創(chuàng)建操作用戶和分配權(quán)限。輸入完畢之后,命令模式下輸入強(qiáng)制保存退出。保存之后,修改文件權(quán)限最后一步,開(kāi)放服務(wù)器中的端口。
知識(shí)點(diǎn)準(zhǔn)備
我主要參考了兩篇文章:
【持續(xù)更新】最全Hexo博客搭建+主題優(yōu)化+插件配置+常用操作+錯(cuò)誤分析
基于CentOS搭建Hexo博客
我采用的方案是云服務(wù)器+域名的方式
首先是要搞懂一些概念
NginxNginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。在這里的主要作用就是掛載相關(guān)目錄到對(duì)應(yīng)端口(或者說(shuō)讓其他計(jì)算機(jī)訪問(wèn)服務(wù)器的某個(gè)端口時(shí),直接訪問(wèn)對(duì)應(yīng)目錄)。該教程中只需要裝在服務(wù)器。Git
Git(讀音為/g?t/。)是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理。簡(jiǎn)單來(lái)說(shuō)就是代碼庫(kù)及版本管理工具。在這里的作用就是:在服務(wù)器中創(chuàng)建倉(cāng)庫(kù)(鉤子),然后在本地的git工具中拉取項(xiàng)目和提交項(xiàng)目。其中hexo里面集成了提交打包好的文件的命令,即hexo d。該教程需安裝在服務(wù)器和客戶端。Linux
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。一般用于服務(wù)器的操作系統(tǒng),多用戶這個(gè)概念很重要,不同的用戶對(duì)文件的操作權(quán)限都會(huì)不同。在這里的作用只要是用root管理員權(quán)限安裝一些軟件和開(kāi)啟一些服務(wù)、創(chuàng)建git操作用戶和分配權(quán)限。git用戶只能對(duì)git倉(cāng)庫(kù)所在文件夾進(jìn)行操作。Node.js
注意:在這里使用的是centos版本。其中yum是centos自帶的包管理工具。文中編輯文本信息都用的是vim編輯器。
Node 是一個(gè)讓 JavaScript 運(yùn)行在服務(wù)端的開(kāi)發(fā)平臺(tái),它讓 JavaScript 成為與PHP、Python、Perl、Ruby 等服務(wù)端語(yǔ)言平起平坐的腳本語(yǔ)言。也就是說(shuō)node.js是一個(gè)后臺(tái)語(yǔ)言。這個(gè)是hexo的依賴環(huán)境,同時(shí)我們還需要用到node.js里面包含的包管理工具npm。一般來(lái)說(shuō)這個(gè)只需要安裝在本地即可,也就是說(shuō)你要對(duì)博客進(jìn)行操作或者開(kāi)發(fā)的時(shí)候,就一定要有node.js的環(huán)境。思路整理
結(jié)合上面涉及的知識(shí)點(diǎn),我先大概列一下服務(wù)器端和客戶端所需要做的事情。
服務(wù)器端:
安裝Git、創(chuàng)建倉(cāng)庫(kù)、及配置自動(dòng)部署
創(chuàng)建git用戶并分配好文件夾權(quán)限
安裝Nginx和配置好
客戶端:
安裝Git
安裝node.js
安裝hexo框架
客戶端配置客戶端方面的配置比起服務(wù)器端就簡(jiǎn)單很多,因?yàn)榭蛻舳说墓ぷ髦灰?fù)責(zé)編輯文章、修改項(xiàng)目文件、推送文章等操作。
本人使用的操作系統(tǒng)是windows,下面的配置項(xiàng)也只提供windows的操作方法。
直接在 Git官網(wǎng) 找到該位置下載,然后安裝即可
安裝了之后配置一下個(gè)人信息,輸入以下命令。
git config --global user.name "yourname" git config --global user.email "youremail"
(第一次安裝git的跳過(guò)這一步)然后檢查該電腦有沒(méi)有創(chuàng)建ssh密匙對(duì),“id_rsa”(私匙)和“id_rsa.pub(公匙)”這兩個(gè)。找到圖中的目錄(Administrator這個(gè)是我的用戶名,視個(gè)人情況而定。)。
(已經(jīng)有密匙對(duì)的話跳過(guò)這一步)在git bash中輸入以下命令創(chuàng)建密匙對(duì)(注意修改自己的郵箱):
ssh-keygen -t rsa -C "自己的郵箱"
到這里就應(yīng)該已經(jīng)完成了密匙對(duì)的創(chuàng)建了,注意一下這個(gè) id_rsa.pub ,待會(huì)服務(wù)器配置會(huì)用得上。
安裝Node.js很簡(jiǎn)單,直接到 官網(wǎng) 下載、安裝即可。
安裝了Node.js之后里面包含了npm包管理工具。
這一步就需要用到剛剛下載Node.js里面的npm命令了。
首先通過(guò)npm全局安裝hexo,打開(kāi)cmd命令行輸入:
npm install -g hexo-cli
等到安裝完成后,就要開(kāi)始創(chuàng)建、初始化項(xiàng)目了。先把剛剛的命令窗口關(guān)掉吧。然后進(jìn)入你要?jiǎng)?chuàng)建項(xiàng)目的目錄,比如在 D:/projects/ 創(chuàng)建之后就是 D:/projects/blog,然后在當(dāng)前目錄打開(kāi)命令行,輸入:
hexo init blog
等到安裝結(jié)束后進(jìn)入項(xiàng)目目錄。找到"package.json",編輯文件,在"dependencies"中追加以下一行:
在當(dāng)前項(xiàng)目目錄下執(zhí)行以下命令:
npm install
到這里客戶端的項(xiàng)目就已經(jīng)可以啟動(dòng)了,輸入以下驗(yàn)證下:
hexo s
如果看到這條信息,說(shuō)明項(xiàng)目啟動(dòng)成功,打開(kāi)瀏覽器訪問(wèn) localhost:4000 就可以看到網(wǎng)站了。
客戶端的就差不多了,其中還有個(gè)服務(wù)器倉(cāng)庫(kù)配置在“服務(wù)器端配置”章中底部會(huì)說(shuō)明。
文章末還會(huì)有一些常用命令的小補(bǔ)充。
登錄服務(wù)器的root用戶,運(yùn)行以下代碼安裝nginx:
yum -y update yum install -y nginx
配置nginx
接下來(lái)要修改配置,設(shè)置網(wǎng)站映射的根目錄和訪問(wèn)域名。使用vim編輯以下文件:
vi /etc/nginx/conf.d/default.conf
找到對(duì)應(yīng)配置,修改中文的地方:
server { listen 80; #這里填端口號(hào),80即默認(rèn)端口,訪問(wèn)時(shí)不需帶端口號(hào)。 server_name 這里填寫域名 root 這里填寫網(wǎng)站根目錄地址; }
啟動(dòng)nginx:
service nginx start安裝git和創(chuàng)建鉤子
安裝git:
yum install -y git
創(chuàng)建git用戶以及設(shè)置密碼(創(chuàng)建git用戶是為了安全起見(jiàn),防止權(quán)限太大進(jìn)行其他操作):
adduser git passwd git
給git用戶分配更高級(jí)的權(quán)限
輸入以下代碼 sudo vi /etc/sudoers ,打開(kāi)sudoers文件,輸入 :/root 進(jìn)行搜索,搜索到代碼行 root ALL=(ALL) ALL ,然后在這一行下添加以下代碼 git ALL=(ALL) ALL 。輸入完畢之后,命令模式下輸入 wq! 強(qiáng)制保存退出vi。
效果如下圖:
圖片來(lái)自網(wǎng)站:https://segmentfault.com/a/11...
切換到git用戶登錄,在用戶home目錄中添加密匙文件。作用是識(shí)別客戶端的主機(jī)身份,可免登錄操作git倉(cāng)庫(kù)
su git mkdir ~/.ssh vi ~/.ssh/authorized_keys
編輯 authorized_keys 文件時(shí)將(上文提過(guò))客戶端創(chuàng)建的公匙 “id_rsa.pub” 內(nèi)容復(fù)制到文件中。
接下來(lái)就要分配權(quán)限
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
現(xiàn)在就驗(yàn)證下之前的配置是否生效,在客戶端的git bash中輸入(記得改服務(wù)器ip):
ssh -v git@服務(wù)器ip
在git的home目錄中創(chuàng)建 初始化一個(gè)裸庫(kù),以管理代碼。
cd ~ git init --bare blog.git
創(chuàng)建一個(gè)鉤子,作用是當(dāng)倉(cāng)庫(kù)文件有新的推送時(shí),把文件拷貝到站點(diǎn)根目錄下。使用vim創(chuàng)建并編輯post-receive文件:
vi ~/blog.git/hooks/post-receive
添加以下內(nèi)容進(jìn)去(其中/var/www這個(gè)是網(wǎng)站根目錄,記得修改成自己的。):
#!/bin/sh git --work-tree=/var/www --git-dir=/home/git/blog.git checkout -f
保存之后,修改文件權(quán)限
chmod +x ~/blog.git/hooks/post-receive
最后一步,開(kāi)放服務(wù)器中的80端口。
先輸入以下命令確認(rèn)防火墻有無(wú)開(kāi)發(fā)80端口:
iptables -L -n # 注意 Chain OUTPUT里面有無(wú)以下這行,沒(méi)有的話就是沒(méi)有開(kāi)發(fā) ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
若沒(méi)有開(kāi)放則需要修改配置:
vi /etc/sysconfig/iptables #打開(kāi)后在配置項(xiàng)找到對(duì)應(yīng)的位置插入以下這行。 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
然后重啟防火墻以更新配置
service iptables restart
到這里服務(wù)器端的就配置完啦
接下來(lái)就是上文說(shuō)到的倉(cāng)庫(kù)地址配置
在客戶端的項(xiàng)目目錄下找到_config.yml,修改下面的對(duì)應(yīng)信息:
deploy: type: git repo: git@SERVER:/home/git/blog.git #此處的SERVER需改為你自己服務(wù)器的ip branch: master補(bǔ)充
hexo還有很多用戶制作的主題供大家選擇,可以在 官網(wǎng)主題 上找,進(jìn)去對(duì)應(yīng)的主題中會(huì)有教程的了。
hexo常用指令有如下(都可以只寫第一個(gè)字母,如 hexo n):
hexo clean # 清空緩存文件和已生成的靜態(tài)文件 hexo new [名字] # 新建一篇文章 hexo generate # 生成靜態(tài)文件,即html文件 hexo deploy # 部署網(wǎng)站,即提交到服務(wù)器的倉(cāng)庫(kù)(之前的git鉤子已設(shè)置成倉(cāng)庫(kù)文件一旦更新,會(huì)自動(dòng)更新到站點(diǎn)目錄)。
更多指令可在 官方文檔 中查詢。
第一次寫一篇這么長(zhǎng)的文章,口水話很多,也有很多不清晰的地方。不過(guò)相信會(huì)越寫越好的。
祝大家學(xué)習(xí)愉快,工作順利!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105018.html
摘要:工具技術(shù)創(chuàng)建項(xiàng)目賬戶注冊(cè)和新建項(xiàng)目,項(xiàng)目必須要遵守格式賬戶名,不然接下來(lái)會(huì)有很多麻煩。安裝在自己認(rèn)為合適的地方創(chuàng)個(gè)文件夾,我是在盤建了一個(gè)文件夾。 工具:Visual Studio Code/MarkdownPad技術(shù):Hexo+Github 創(chuàng)建Github項(xiàng)目 Github賬戶注冊(cè)和新建項(xiàng)目,項(xiàng)目必須要遵守格式:賬戶名.github.io,不然接下來(lái)會(huì)有很多麻煩。并且需要勾選In...
摘要:工具技術(shù)創(chuàng)建項(xiàng)目賬戶注冊(cè)和新建項(xiàng)目,項(xiàng)目必須要遵守格式賬戶名,不然接下來(lái)會(huì)有很多麻煩。安裝在自己認(rèn)為合適的地方創(chuàng)個(gè)文件夾,我是在盤建了一個(gè)文件夾。 工具:Visual Studio Code/MarkdownPad技術(shù):Hexo+Github 創(chuàng)建Github項(xiàng)目 Github賬戶注冊(cè)和新建項(xiàng)目,項(xiàng)目必須要遵守格式:賬戶名.github.io,不然接下來(lái)會(huì)有很多麻煩。并且需要勾選In...
摘要:工具技術(shù)創(chuàng)建項(xiàng)目賬戶注冊(cè)和新建項(xiàng)目,項(xiàng)目必須要遵守格式賬戶名,不然接下來(lái)會(huì)有很多麻煩。安裝在自己認(rèn)為合適的地方創(chuàng)個(gè)文件夾,我是在盤建了一個(gè)文件夾。 工具:Visual Studio Code/MarkdownPad技術(shù):Hexo+Github 創(chuàng)建Github項(xiàng)目 Github賬戶注冊(cè)和新建項(xiàng)目,項(xiàng)目必須要遵守格式:賬戶名.github.io,不然接下來(lái)會(huì)有很多麻煩。并且需要勾選In...
摘要:下面貼上棧長(zhǎng)博客的地址,也是技術(shù)棧的官方博客地址今天分享一下,如何從開(kāi)始搭建一個(gè)自己的技術(shù)博客,基于棧長(zhǎng)的博客。的國(guó)內(nèi)訪問(wèn)不是很快,這里推薦使用自己搭建國(guó)內(nèi)的云服務(wù)器,使用搭建靜態(tài)服務(wù)。 技術(shù)博客的選型有很多種,如:博客園、CSDN、開(kāi)源中國(guó)、簡(jiǎn)書、知乎等……都可以用來(lái)寫文章,形成自己的技術(shù)博客。 上面的博客都是第三方的,有沒(méi)有方式搭建自己的服務(wù)器、自己的域名的博客呢?棧長(zhǎng)知道的成熟方...
閱讀 1202·2021-11-24 09:38
閱讀 2608·2021-09-27 14:00
閱讀 1166·2019-08-30 15:55
閱讀 1344·2019-08-30 14:16
閱讀 1495·2019-08-30 10:54
閱讀 2869·2019-08-28 17:58
閱讀 762·2019-08-26 13:22
閱讀 1238·2019-08-26 12:01