小傅哥 | https://bugstack.cn
沉淀、分享、成長,專注于原創(chuàng)專題案例,以最易學(xué)習(xí)編程的方式分享知識(shí),讓自己和他人都能有所收獲。目前已完成的專題有;Netty4.x實(shí)戰(zhàn)專題案例、用Java實(shí)現(xiàn)JVM、基于JavaAgent的全鏈路監(jiān)控、手寫RPC框架、架構(gòu)設(shè)計(jì)專題案例、源碼分析、算法學(xué)習(xí)等。
萬萬沒想到!Github
竟然受到攻擊了!還能讓我使用了 GitPage
的博客癱瘓了!
整個(gè)網(wǎng)站一下不能訪問了,還是有點(diǎn)慌的,畢竟在這之前沒有考慮到還能有這事。但雖然沒有一個(gè)準(zhǔn)備好了的預(yù)案,但也還是可以使用自己技術(shù)把這事搞定,盡快恢復(fù)。為了可以盡快恢復(fù)博客的訪問,我把網(wǎng)站遷移到了 碼云
的Gitpage服務(wù),并開啟免費(fèi)一個(gè)月使用(挺香),并迅速搞定配置以及 HTTPS
。嗯!遷移過來速度還比之前快了。但是后來發(fā)現(xiàn)有些網(wǎng)絡(luò)環(huán)境下竟然不能訪問,這又讓我感覺不爽了,否則我都快要交錢給 碼云
(一年90元)。到 碼云
官網(wǎng)群問使用這個(gè)搭建博客,百度收錄嗎?也沒有人回應(yīng)。如果不收錄我沒必要用了就,是吧。錢花了,事沒辦! 不過也還好有 Gitee,否則網(wǎng)站不能那么快恢復(fù),如果按照下面的方式搞,至少 24
小時(shí)才能完事。
接下來就是將網(wǎng)站遷移到我自己買的服務(wù)器上,雖然過程比較坎坷,但終究還是滿足了我的需求。提升了網(wǎng)站速度、體驗(yàn),也可以讓網(wǎng)站被百度爬蟲收錄。如果也有小伙伴遇到這樣問題或者想建博客,可以按照我下面的步驟,進(jìn)行安裝 Jekyll
部署博客。
Ruby,一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O(shè)計(jì))腳本語言,在20世紀(jì)90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā),遵守GPL協(xié)議和Ruby License。它的靈感與特性來自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 語言。由 Ruby 語言本身還發(fā)展出了JRuby(Java平臺(tái))、IronRuby(.NET平臺(tái))等其他平臺(tái)的 Ruby 語言替代品。Ruby的作者于1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發(fā)布于fj(新聞組)。因?yàn)镻erl發(fā)音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。
序號(hào) | 官網(wǎng) | 描述 |
---|---|---|
1 | https://rubyinstaller.org/downloads/ | Ruby官網(wǎng)下載 |
2 | https://gems.ruby-china.com/ | 完整 RubyGems 鏡像China |
3 | http://www.ruby-lang.org/zh_cn/documentation/ | Ruby 編程文檔 |
4 | http://jekyllthemes.org/ | jekyll 模版 |
5 | https://www.jekyll.com.cn/docs/ | 快速入門手冊(cè) |
Ruby 的版本比較多,安裝方式也分為整體安裝和分開安裝(Ruby + devkit),而這些也是最容易出錯(cuò)的地方。有時(shí)候安裝完了和自己的不博客版本對(duì)不上,而導(dǎo)致報(bào)錯(cuò)不能編譯。目前經(jīng)過測試此版本Ruby+Devkit 2.5.7-1 (x64)比較適合 Jekyll
博客的編譯部署。如果你在官網(wǎng)下載速度較慢,可以添加公眾號(hào):bugstack蟲洞棧
,回復(fù)郵箱。
Ruby+Devkit 2.5.7-1,完整包的安裝過程比較簡單,但需要注意以下幾點(diǎn);
點(diǎn)擊下一步即可,不需要更改配置
初步安裝成功,點(diǎn)擊
Finsh
按照到這我們的軟件就已經(jīng)安裝完成了,此時(shí)你已經(jīng)可以執(zhí)行命令查看版本了。
Microsoft Windows [版本 6.1.7601]
版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。
C:\Users\xiaofuge>ruby -v
ruby 2.5.7p206 (2019-10-01 revision 67816) [x64-mingw32]
在安裝完成之后還需要執(zhí)行一系列配置,才能讓軟件正常工作。并且不注意英文提示的小伙伴,可能你的一個(gè)回車就把剛安裝好的軟件卸載了!
更新
Gem
C:\Users\xiaofuge>gem update --system
Updating rubygems-update
Fetching: rubygems-update-2.7.7.gem (100%)
Successfully installed rubygems-update-2.7.7
...
查看版本
C:\Users\xiaofuge>gem -v
2.7.7
替換源,否則你會(huì)下載的很慢
C:\Users\xiaofuge>gem sources --add https://gems.ruby-china.com/ --remove http
s://rubygems.org/
source https://gems.ruby-china.com/ already present in the cache
source https://rubygems.org/ not present in cache
查看新的源
C:\Users\xiaofuge>gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com
接下來的步驟就比較簡單了,但整體的過程比較耗時(shí),黑窗口會(huì)在我們執(zhí)行命令后下載大約 600M
的軟件。
命令 1
命令 2
命令 3
好!當(dāng)你順利安裝到此后,你的軟件就已經(jīng)安裝完成,可以使用了!
Ruby
軟件已經(jīng)安裝完成,接下來就是我們的博客的相關(guān)內(nèi)容的安裝了。
檢查版本并安裝
E:\>gem -v
2.7.7
E:\>gem install jekyll
Fetching: public_suffix-4.0.3.gem (100%)
Successfully installed public_suffix-4.0.3
Fetching: addressable-2.7.0.gem (100%)
Successfully installed addressable-2.7.0
Fetching: colorator-1.1.0.gem (100%)
Successfully installed colorator-1.1.0
...
ass-converter, rb-fsevent, rb-inotify, listen, jekyll-watch, kramdown, kramdown-
parser-gfm, liquid, mercenary, forwardable-extended, pathutil, rouge, safe_yaml,
unicode-display_width, terminal-table, jekyll after 33 seconds
26 gems installed
查看安裝的Jekyll版本
E:\>jekyll -v
jekyll 4.0.0
Jekyll 給我們提供了創(chuàng)建博客的命令,你只需要選擇好自己文件夾地址,進(jìn)入執(zhí)行即可。
C:\Users\xiaofuge>E:
E:\>cd E:\itstack
E:\>jekyll new myblog
Running bundle install in E:/myblog...
Bundler: Fetching source index from https://rubygems.org/
Bundler: Resolving dependencies.............
Bundler: Using public_suffix 4.0.3
Bundler: Using addressable 2.7.0
...
New jekyll site installed in E:/myblog.
E:\>cd myblog
這里執(zhí)行的編譯是默認(rèn)本地編譯,也就是編譯后文中都是 localhost:4000
地址開頭,不要把這回內(nèi)容傳到服務(wù)端。
E:\myblog>jekyll build
Configuration file: E:/myblog/_config.yml
Source: E:/myblog
Destination: E:/myblog/_site
Incremental build: disabled. Enable with --incremental
Generating...
Jekyll Feed: Generating feed for posts
done in 1.184 seconds.
Auto-regeneration: disabled. Use --watch to enable.
_site
的文件夾,這里就是我們的靜態(tài)博客內(nèi)容。如果在本地我們沒編譯而是執(zhí)行運(yùn)行預(yù)覽也是可以的,他會(huì)自動(dòng)進(jìn)行編譯。
E:\myblog>jekyll s
Configuration file: E:/myblog/_config.yml
Source: E:/myblog
Destination: E:/myblog/_site
Incremental build: disabled. Enable with --incremental
Generating...
Jekyll Feed: Generating feed for posts
done in 0.847 seconds.
Auto-regeneration: enabled for 'E:/myblog'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
十、助記指令
博客結(jié)構(gòu)
├── _config.yml
├── _includes
| ├── footer.html
| └── header.html
├── _layouts
| ├── default.html
| ├── post.html
| └── page.html
├── _posts
| └── 2020-03-28-welcome-to-jekyll.markdown
├── _sass
| ├── _base.scss
| ├── _layout.scss
| └── _syntax-highlighting.scss
├── about.md
├── css
| └── main.scss
├── feed.xml
└── index.html
好!接下來就是我們的重點(diǎn)內(nèi)容了,雖然默認(rèn)模版也不難看,但終究不是我們的博客。在這里我的目標(biāo)是將個(gè)人博客進(jìn)行本地編譯運(yùn)行。如果你有喜歡的模版或者是官網(wǎng),或者是別人個(gè)Github,可以下載到自己本地。
E:\itstack\gitee.com\fuzhengwei.github.io>gem install bundler
Fetching: bundler-2.1.4.gem (100%)
bundler's executable "bundle" conflicts with D:/Ruby25-x64/bin/bundle
Overwrite the executable? [yN] n
ERROR: Error installing bundler:
"bundle" from bundler conflicts with D:/Ruby25-x64/bin/bundle
E:\itstack\gitee.com\fuzhengwei.github.io>bundle install
Fetching gem metadata from http://gems.ruby-china.com/..........
Using rake 12.3.0
Fetching concurrent-ruby 1.0.5
Installing concurrent-ruby 1.0.5
Fetching i18n 0.9.1
Installing i18n 0.9.1
Using minitest 5.10.3
Using thread_safe 0.3.6
Fetching tzinfo 1.2.4
Installing tzinfo 1.2.4
Fetching activesupport 4.2.10
...
lockfile (nokogiri (~> 1.6)).
Either installing with `--full-index` or running `bundle update
E:\itstack\gitee.com\fuzhengwei.github.io>bundle update
Fetching gem metadata from http://gems.ruby-china.com/...........
Fetching gem metadata from http://gems.ruby-china.com/.
Resolving dependencies....
Fetching rake 13.0.1 (was 12.3.0)
...
bundle exec jekyll build
bundle exec jekyll s
http://localhost:4000/
http://localhost:4000/
,不能用于服務(wù)端部署。如果部署到服務(wù)端,那么我們編譯后里面的鏈接地址都肯定以我們的域名開始,例如;https://bugstack.cn/
。接下來我們開始執(zhí)行服務(wù)端部署的編譯和使用。
Microsoft Windows [版本 6.1.7601]
版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。
C:\Users\fuzhengwei>E:
E:\>cd E:\itstack\gitee.com\fuzhengwei.github.io
E:\itstack\gitee.com\fuzhengwei.github.io>bundle exec jekyll clean
Configuration file: E:/itstack/gitee.com/fuzhengwei.github.io/_config.yml
Cleaner: Removing ./_site...
Cleaner: Nothing to do for ./.jekyll-metadata.
Cleaner: Removing ./.jekyll-cache...
Cleaner: Nothing to do for .sass-cache.
E:\itstack\gitee.com\fuzhengwei.github.io>bundle exec jekyll build
Configuration file: E:/itstack/gitee.com/fuzhengwei.github.io/_config.yml
Source: E:/itstack/gitee.com/fuzhengwei.github.io
Destination: E:/itstack/gitee.com/fuzhengwei.github.io/_site
Incremental build: disabled. Enable with --incremental
Generating...
GitHub Metadata: No GitHub API authentication could be found. Some fields may
be missing or have incorrect data.
done in 18.102 seconds.
Auto-regeneration: disabled. Use --watch to enable.
E:\itstack\gitee.com\fuzhengwei.github.io>
bundle exec jekyll clean
)和構(gòu)建(bundle exec jekyll build
),接下來看以看到文件下的 _site
內(nèi)容的生成。遠(yuǎn)程服務(wù)器的部署主要依賴于大家個(gè)子使用的服務(wù)器類型,我的手里有一臺(tái)云虛擬機(jī),通過FTP的方式進(jìn)行部署即可。如下;
如果每次都是這樣去本地編譯在部署到服務(wù)端,代碼又得維護(hù)在 GitHub
還是比較麻煩的。可以使用;Github -> Travis CI -> Docker-> VPS。的方式進(jìn)行部署,不過還得花點(diǎn)錢買服務(wù)器。
這種方式目前我還沒有錢和時(shí)間去折騰,等后面我的博客訪問量和內(nèi)容更大了以后在投入經(jīng)歷去搞!
序號(hào) | 指令 | 說明 |
---|---|---|
1 | ruby -v | 查看Ruby版本 |
2 | gem update | 更新 |
3 | gem -v | 查看Gem版本 |
4 | gem install jekyll | 安裝jekyll |
5 | gem install bundler | 下載bundler |
6 | gem install jekyll-paginate | 下載jeky-paginate |
7 | git clone git@github.com:xiaofuge/xiaofuge.github.io.git | 克隆主題(cd到xiaofuge.github.io,執(zhí)行jekyll serve 可以在http://localhost:4000看到效果) |
8 | gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ | 更換源https://gems.ruby-china.com |
9 | jekyll new myblog | 初始化默認(rèn)博客 |
10 | bundle install | 進(jìn)入博客文件夾執(zhí)行初始化 |
11 | jekyll build | 本地編譯默認(rèn)所有鏈接為http://localhost |
13 | jekyll build --source --destination | 編譯指定的文件夾,同時(shí)可以設(shè)定到指定的地方 |
12 | jekyll build --destination | 編譯到指定地方 |
14 | jekyll build --watch | 編譯后好自動(dòng)監(jiān)聽文件變化 自動(dòng)編譯 |
15 | bundle exec jekyll build | 您只需構(gòu)建您的站點(diǎn)(而不是在本地提供),然后您可以將生成的文件上傳到您的服務(wù)器(這將生成與_config.yml中配置變量url的值的規(guī)范鏈接) |
16 | jekyll clean | 清空編譯_site |
17 | jekyll serve | 本地啟動(dòng)服務(wù) |
18 | jekyll serve --host 0.0.0.0 --port 80 | 指定ip和端口啟動(dòng) |
19 | nohup jekyll serve & | 后臺(tái)運(yùn)行 |
20 | ps -axu | grep jekyll |
21 | kill -9 [pid] | 殺死進(jìn)程 |
GitHub
掛了,也徹底讓我的博客又得花錢維護(hù)了。不花點(diǎn)錢是真不行!以前我忍受了;速度、收錄、體驗(yàn),但是突然的一掛,啥都拜拜了。所以只能掛到自己的服務(wù)器上,還好價(jià)格也不貴!畢竟是一個(gè)只能支持 PHP、ASP的虛擬機(jī)。天災(zāi)人禍
來臨的時(shí)候,能幫你抵擋的都是你日積月累的能力。就像;是時(shí)候展示真正的技術(shù)了!Jekyll
搭建的博客還是蠻好看的,也蠻容易維護(hù)的。技術(shù)人員還是要有自己的博客,通過不停的折騰從里面不斷的獲取各個(gè)技術(shù)點(diǎn)的突破。
聯(lián)系客服