在 CentOS 7 上安装 Jekyll 博客

Posted by Start Bootstrap on December 09, 2017

在 CentOS 7 上安装 Jekyll 博客

Simple,Static,Blog-aware.
Jekyll让写作重新成为了博客的重点。
静态页面和低的内存占用,让一个最低配的服务器都可以轻松驾驭,更别说在 GitHub 上一键式的部署了。
不过今天,我们要在一个云上部署。

我在 Vutlr 上开了一个5刀每月的服务器,首先我们要阅读一下 Jekyll 安装 。之后,以 root 远程连接到服务器,我们开始部署。

Vutlr 的文档中已经有关于在 CentOS 7上部署 Jekyll 的文章了,事实上我就是通过这篇文章成功部署了博客,鉴于原文是英文加之一些步骤在我的机子上存在偏差,所以,这里注重记录一下安装过程的不一样。

第一步: 安装 Ruby

首先需要更新一下:

yum update -y

然后下载 Ruby’s package manager (RVM)

cd /tmp   
curl -sSL https://get.rvm.io > ruby_install  
chmod 755 ruby_install  
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3   
./ruby_install stable --ruby

下载可能需要一点时间,在下载结束后我们开始安装

rvm install ruby
rvm --default use ruby

最后我们要安装 NodeJS

yum install epel-release -y
yum install npm nodejs -y

第二步: 安装 Jekyll

这一部分相当简单

gem install jekyll bundler

之后他创建了一个账号用于管理 Jekyll

useradd jekyll
jekyll build
cd /home/jekyll/
jekyll new myblog
chown jekyll:jekyll -R myblog/

我遇到的情况是这个用户在执行 jekyll build 权限不够。执行权限修改的时候似乎没有起到作用。 如果遇到权限问题,可以切换到 root 权限在操作一次

最后执行

bundle exec jekyll serve --detach

这样,博客就已经可以通过 IP 访问了, 通过浏览器访问 http://your-ip:4000 试一试。

不需要执行 exit 现在还不需要退出

第三步: 反向代理

通过域名直接访问博客,就需要使用 Nginx。

yum install nginx -y

之后写配置文件

cd /etc/nginx/conf.d/
vi jekyll.conf

server {
    listen 80;
    server_name xxx.com;
    location / {
        proxy_pass http://localhost:4000;
    }
}

保存之后,你需要修改默认配置文件 /etc/nginx/nginx.conf, 把其中的默认 server 配置全部注释就好。
之后,重启服务

systemctl restart nginx

第四步: 配置防火墙

需要打开80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

到此,整个安装过程就结束了。快使用域名访问一下你的博客吧。