如何從零構(gòu)建屬于自己的博客刽严?


title: 如何從零構(gòu)建屬于自己的博客?
p: builder-my-blog
date: 2019-03-30 16:52:40
tags:


互聯(lián)網(wǎng)時(shí)代瑟慈,每一個(gè)人都希望有一個(gè)自己的個(gè)人Blog來自由發(fā)表自己想法漫谷,對于小白用戶可以借助一些互聯(lián)網(wǎng)公司的平臺(tái)來記錄自己的想法仔雷,比如CSDN,cnblogs舔示,簡書朽寞,知乎,微信公眾號(hào)等斩郎。對于IT行業(yè)的程序員來說,可能希望使用自己學(xué)到的技術(shù)從零搭建一個(gè)屬于自己的個(gè)人博客喻频,讓它能夠自由定制而不受到大平臺(tái)的各種約束缩宜。
但要搭建一個(gè)屬于自己的博客,我們需要想清楚兩個(gè)問題;

  • 是否值得花時(shí)間去寫博客呢锻煌?
  • 博客能夠?qū)懸恍┦裁磧?nèi)容才有意義妓布?

想清楚以上兩點(diǎn),我們就可以開始搭建之旅了宋梧。

是否值得花時(shí)間去寫博客匣沼?

做一件事情,并且持續(xù)做一件事情是非常不容易的捂龄,必須有非常令人信服的理由释涛,才能驅(qū)動(dòng)我們投入時(shí)間。 那寫博客是否真的值得我們投入時(shí)間呢倦沧?答案是肯定的唇撬。無論從哪個(gè)角度看,沒有什么明顯的壞處展融。第一窖认,博客寫一些技術(shù)文章,可以讓我們復(fù)習(xí)學(xué)過的知識(shí)告希,俗話說“教是最好的學(xué)”扑浸,你必須非常理解某個(gè)東西,你才能比較清晰的寫出來燕偶,博客是我們和自己的對話喝噪,是反思。第二杭跪,人的記憶是會(huì)遺忘的仙逻,當(dāng)你許久不用一項(xiàng)技術(shù),慢慢也就生疏了涧尿,及時(shí)總結(jié)輸出相當(dāng)于整理一個(gè)用于快速回顧的筆記系奉。 第三,博客是一個(gè)程序員的門面姑廉,你擅長哪個(gè)領(lǐng)域缺亮,從你日常研究的技術(shù)能夠看出端倪。第四桥言,認(rèn)識(shí)志同道合的朋友交流想法萌踱,我們固然喜歡贊美,但是不同的聲音卻是可貴的号阿。在不同思想的交流中并鸵,我們才能獲得意外的收獲。

博客需要寫一些什么內(nèi)容才有意義扔涧?

說服了自己寫博客园担,是否內(nèi)心激動(dòng)萬分届谈,馬上挽起袖子開始干。啊...今天我做了什么可以寫出來弯汰,ok艰山。洋洋灑灑的寫了一大堆流水賬發(fā)表,做一個(gè)評論的功能咏闪,開始期待別人的反饋曙搬,但...毫無回應(yīng)。工作忙鸽嫂,996.ICU纵装,中國IT人員的常態(tài),下班已經(jīng)疲憊不堪溪胶,久而久之搂擦,寫博客的宏偉計(jì)劃宣告失敗。
因此哗脖,內(nèi)容很重要瀑踢;我總結(jié)了以下幾點(diǎn)寫博客的原則:
第一:必須有參考價(jià)值。
第二:盡量寫別人沒寫過的東西 才避。
第三:結(jié)構(gòu)清晰橱夭,目標(biāo)明確,說明了什么問題如何解決一目了然桑逝,有關(guān)于該主題更深層次的思考棘劣。

搭建博客系統(tǒng)的環(huán)境的選擇

接下來,如何選擇Blog的環(huán)境呢楞遏? 以下給出幾個(gè)選擇:

環(huán)境選擇

  1. Github Pages 免費(fèi)茬暇,可集成Travis自動(dòng)構(gòu)建,可用Jekyll和Hexo搭建
  2. 阿里云ECS 偏貴寡喝,自主性強(qiáng)糙俗,需要自主安裝所有環(huán)境,也可選擇阿里云提供的免費(fèi)鏡像環(huán)境
  3. 其他服務(wù)器 (暫時(shí)未嘗試预鬓,國外較便宜)

我個(gè)人使用阿里云ECS+nginx+hexo+Node.js+Git.

阿里云ECS

  1. 購買服務(wù)器,了解ECS
  2. 購買域名巧骚,備案
  3. 預(yù)裝系統(tǒng) Centos7 64位
  4. 配置域名解析規(guī)則
  5. 配置Linux的防火墻規(guī)則(端口)
  6. 配置SSH免密登錄
ssh-keygen : 生成密鑰
ssh-copy-id -i 公鑰文件 root@服務(wù)器ip 公鑰文件拷貝到主機(jī)
ssh root@ip 遠(yuǎn)程登錄
  1. 拷貝文件到主機(jī)
    從阿里云直接下載速度慢時(shí),可從本機(jī)上傳到阿里云格二,速度可能有所增加劈彪。
scp 文件 root@IP:目錄

安裝Git

有yum的系統(tǒng)執(zhí)行下列命令

$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel
$ yum install git-core

安裝node.js

  • 官網(wǎng)下載: wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
  • 解壓xz :tar xvJf xx
  • bin目錄的軟連接放入path:cd 目標(biāo)目錄 ; ls -s 源執(zhí)行文件(絕對路徑) 目標(biāo)目錄
  • 驗(yàn)證 :node -v ; npm -v

安裝hexo

hexo依賴與node.js環(huán)境

  • 安裝hexo:
npm install -g hexo-cli
npm install hexo --save
  • 設(shè)置軟連接:ln -s /root/node-v10.15.3-linux-x64/bin/hexo hexo
  • 切換到blog目錄,hexo generate ;hexo server &
  • 博客關(guān)閉遠(yuǎn)程自動(dòng)退出問題顶猜,借助插件接管進(jìn)程:npm install -g pm2
  • 在blog根目錄創(chuàng)建hexo_run.js文件
//pm2 start hexo_run.js
//pm2 stop hexo_run.js
const { exec } = require('child_process')
exec('hexo server',(error, stdout, stderr) => {
        if(error){
                console.log('exec error: ${error}')
                return
        }
        console.log('stdout: ${stdout}');
        console.log('stderr: ${stderr}');
})

安裝nginx

nginx做反向代理沧奴,hexo應(yīng)用通過nginx轉(zhuǎn)發(fā),并配置域名长窄。

centos安裝:http://nginx.org/en/linux_packages.html#RHEL-CentOS
先決條件安裝:sudo yum install yum-utils
設(shè)置yum倉庫滔吠,創(chuàng)建文件:/etc/yum.repos.d/nginx.repo
內(nèi)容如下

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

安裝主線nginx包:sudo yum-config-manager --enable nginx-mainline
安裝穩(wěn)定版:sudo yum install nginx

[root@fubin ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

Http配置

user www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
    use epoll;
    worker_connections 51200;
    multi_accept on;
}
http {
    include /www/server/nginx/conf/mime.types;
    default_type application/octet-stream;
    server {
        listen 80;
        server_name fubin.org.cn;
        index index.php index.html index.htm default.php default.htm default.html;
        root /home/halo/target/dist/halo;
        location /
        {
            proxy_pass http://127.0.0.1:8090;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
        }
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
    return 404;
    }
 }
}

Https配置

user www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
    use epoll;
    worker_connections 51200;
    multi_accept on;
}
http {
    server {
        listen 443;
        server_name fubin.org.cn;
        ssl on;
        root html;
        index index.html index.htm;
        ##ssl證書文件
        ssl_certificate ../cert/XXXXXX.pem;
        ssl_certificate_key ../cert/XXXXXX.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            index index.html index.htm;
            proxy_pass http://127.0.0.1:4000;
    }
    error_page 404 /404.html;
    }

    server {
        listen 80;
        server_name fubin.org.cn;
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }
}

問題檢查

無法訪問80或443端口远寸, 檢查防火墻

環(huán)境安裝配置完畢,輸入域名任然無法訪問屠凶。可以檢查防火墻

1.查看firewall服務(wù)狀態(tài)
systemctl status firewalld
2肆资、查看firewall的狀態(tài)
firewall-cmd --state
3矗愧、開啟、重啟郑原、關(guān)閉唉韭、firewalld.service服務(wù)
# 開啟
service firewalld start
# 重啟
service firewalld restart
# 關(guān)閉
service firewalld stop
4、查看防火墻規(guī)則
firewall-cmd --list-all
5犯犁、查詢属愤、開放、關(guān)閉端口
# 查詢端口是否開放
firewall-cmd --query-port=8080/tcp
# 開放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重啟防火墻(修改配置后要重啟防火墻)
firewall-cmd --reload
# 參數(shù)解釋
1酸役、firwall-cmd:是Linux提供的操作firewall的一個(gè)工具住诸;
2、--permanent:表示設(shè)置為持久涣澡;
3贱呐、--add-port:標(biāo)識(shí)添加的端口;

附錄

Java的開源博客參考方案

halo是使用Spring Boot構(gòu)建的博客系統(tǒng)入桂,可以搭配后臺(tái)MySQL或者H2數(shù)據(jù)庫搭建奄薇。

下面是基礎(chǔ)環(huán)境Java,Maven安裝

Java安裝

  • tar -zxvf jdk-8u144-linux-x64.tar.gz
  • vim /etc/profile
JAVA_HOME=/usr/local/jdk8
JRE_HOME=/usr/local/jdk8/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

source /etc/profile

Maven 安裝

export M2_HOME=/usr/local/maven36
export PATH=$PATH:$M2_HOME/bin

source /etc/profile
驗(yàn)證 : mvn -v

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抗愁,一起剝皮案震驚了整個(gè)濱河市馁蒂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜘腌,老刑警劉巖沫屡,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逢捺,居然都是意外死亡谁鳍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門劫瞳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倘潜,“玉大人,你說我怎么就攤上這事志于′桃颍” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵伺绽,是天一觀的道長养泡。 經(jīng)常有香客問我嗜湃,道長,這世上最難降的妖魔是什么澜掩? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任购披,我火速辦了婚禮,結(jié)果婚禮上肩榕,老公的妹妹穿的比我還像新娘刚陡。我一直安慰自己,他們只是感情好株汉,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布筐乳。 她就那樣靜靜地躺著,像睡著了一般乔妈。 火紅的嫁衣襯著肌膚如雪蝙云。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天路召,我揣著相機(jī)與錄音勃刨,去河邊找鬼。 笑死优训,一個(gè)胖子當(dāng)著我的面吹牛朵你,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揣非,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼抡医,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了早敬?” 一聲冷哼從身側(cè)響起忌傻,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搞监,沒想到半個(gè)月后水孩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡琐驴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年俘种,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绝淡。...
    茶點(diǎn)故事閱讀 40,928評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宙刘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牢酵,到底是詐尸還是另有隱情悬包,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布馍乙,位于F島的核電站布近,受9級(jí)特大地震影響垫释,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撑瞧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一棵譬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧预伺,春花似錦茫船、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涩禀。三九已至料滥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間艾船,已是汗流浹背葵腹。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屿岂,地道東北人践宴。 一個(gè)月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像爷怀,于是被迫代替她去往敵國和親阻肩。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 18.06.20,自己的Hexo博客總算Run起來了运授。不算整主題烤惊,來來回回也折騰了我兩天才弄好,私以為網(wǎng)上的教程有...
    Hosigus閱讀 2,360評論 1 24
  • 本文講解我在搭建Hexo博客的完整過程吁朦,主要內(nèi)容包括GitHub與SSH柒室、FAQ等。 另外還需要注意的是: Hex...
    風(fēng)清袖一閱讀 965評論 0 4
  • 經(jīng)過各種找資料逗宜,踩過各種坑雄右,終于搭建好了hexo,域名是在萬維網(wǎng)上買的纺讲,我的hexo是3.1.1版本擂仍,hexo不同...
    iplaycodex閱讀 774評論 0 0
  • 2016.12.09 星期五 重霾@成都 家里一個(gè)星期沒開窗戶了防楷,有點(diǎn)“小題大作”,更是“貪生怕死”则涯,我就害怕一...
    七羽夕安閱讀 666評論 1 1
  • 在Kubernetes中复局,Service(服務(wù))是分布式集群架構(gòu)的核心冲簿,一個(gè)Service對象擁有如下關(guān)鍵特征: ...
    c84f3109853b閱讀 1,075評論 1 3