从零开始通过Jekyll+git+AWS搭建一个静态个人博客.
Published on November 28, 2021 by shadershader
gitlab jekyll AWS Amplify
2 min READ
关于Jekyll,Hexo,Hugo的比较网上很多,就不一一对比了,这里之所以选择Jekyll主要有两个原因:一个是被GitHub深度集成了,各大云厂商也支持构建。另外一个是而本地Ruby环境本身我会用到也需要折腾一下。搭建过程整体还算比较顺利,主要是处理各模块的版本环境。框架流程为环境处理/运行服务/主题更换/云构建。
Jekyll
GitLab
AWS Amplify
查看各环境版本
$ ruby -v
ruby 2.x(这里macOS自带了2.x的ruby)
$ gem -v
3.2.32
$ gcc -v
$ g++ -v
$ make -v
GNU Make 3.81
更新切换buby版本准备环境
# 先确定xcode command line环境
$ xcode-select --install
$ brew install ruby
# 不建议用rvm,brew足够,就部署个环境不需要搞那么复杂
# 安装过程中会提示如何切换到,提示类似这样(错过了就reinstall):
$ echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
# 再查看版本发现已经切换到了新版本,此时再进行下一步,否则安装Jekyll会出问题(openssl找不到等)
$ ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [arm64-darwin21]
# 更新gem
$ gem update --system
$ gem install bundler
$ bundler -v
安装Jekyll:以上都准备好了到现在Jekyll的官方文档才有真的有用
# 安装jekyll
$ gem install jekyll bundler
# 新建博客(任意一个你喜欢的路径下,上面环境不对这里过不去)
$ jekyll new blog
# 进入到博客目录
$ cd blog
# 上面brew了新的ruby,3.0以上需要附加依赖到工程
$ bundle add webrick
# 此时可以启动本地服务, --livereload可以不加,作用是热重载更新
$ bundle exec jekyll --livereload
# 到此结束,打开 http://localhost:4000
# 可以安装jekyll-admin
$ gem install jekyll-admin
# 如果遇到jekyll-admin版本有问题,需要在对应主题下的Gemfile,Gemfile.lock中修改正确的版本号
# 关于主题,直接git clone或者download zip,然后执行下面的命令
$ bundle install
$ bundle add webrick
# 最后启动服务测试一下
$ bundle exec jekyll serve
# 没问题就可以定制配置了
# 最好设置时区(因为默认会skip未来的博客,本地生效上传到git可能无效),格式如下:
# timezone: Asia/Shanghai
新建repo,拉取如果授权有问题,用git@gitlab.com:username/reponame.git拉不到:
# 清理 ~/.ssh/known_hosts,打开把没用或者不确定的删掉,都没用就清空
$ sudo vim ~/.ssh/known_hosts
$ cd 到想要clone的目录下
$ git clone repo路径,中间提示直接过去,成功
关于报错找不到git源:
curl: (7) Failed to connect to raw.githubusercontent.com port 443
是由于目标DNS 解析被污染,导致DNS 解析过程无法通过域名取得正确的IP地址。解决方案是打开:https://www.ipaddress.com/ 输入访问不了的域名,这里输入:raw.githubusercontent.com,得到结果:
raw.githubusercontent.com resolves to the following 4 IPv4 addresses:
185.199.108.133
185.199.109.133
185.199.110.133
185.199.111.133
# 将上面的结果加域名添加到hosts文件下:
185.199.108.133 raw.githubusercontent.com
185.199.109.133 user-images.githubusercontent.com
185.199.110.133 avatars2.githubusercontent.com
185.199.111.133 avatars1.githubusercontent.com
$ vim sudo /etc/hosts
# 我这里直接把四个地址都用了,一般用一个就可以,最后看一下结果
$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
185.199.108.133 raw.githubusercontent.com
185.199.109.133 user-images.githubusercontent.com
185.199.110.133 avatars2.githubusercontent.com
185.199.111.133 avatars1.githubusercontent.com
没问题后把blog上传到repo
# 从GitHub,Bitbucket,GitLab,AWS CodeCommit, Deploy without Git provider来创建
# 授权导入即可
# build成功后会生成对应的Domain,可以直接浏览器中打开访问
# 完成
# 点击Add domain
# 输入域名,如:shadershader.com
# Configure domain及以后步骤根据操作来做就行了
# 最后开启https进行SSL验证,主要三步配置十分简单不说了,不立即生效需要等会