博客搭建教程

本贴最后更新于 2180 天前,其中的信息可能已经东海扬尘


前言

最开始使用 github 搭建博客,后来觉得不方便,就自己使用 Django 框架写了一套博客网站,虽然十分简陋但也可以使用。直到发现了 solo
这个基于 Java 的开源博客系统,它提供了绝大部分博客所需的功能,而且后台管理能力特别丰富,安装方式也特别简单,所以选择了它。

安装环境搭建

这里选择了最简单的方式去搭建该博客,使用 Docker 方式运行该博客,官方 GitHub 里也介绍了如何使用 Docker 运行该博客系统。
so,在运行该博客之前,应该要有一个安装了 Docker 的环境。这里以 centos7.2 环境来介绍如何安装 Docker, ubuntu 的安装方法请参考 Ubuntu 安装 docker

# Docker 要求 CentOS 系统的内核版本高于 3.10, 查看内核版本
$ uname -r  
3.10.0-693.11.6.el7.x86_64

# 安装 docker 
$ yum -y install docker

# 启动 docker 后台服务
$ service docker start 

# 设置开机自启动
# systemctl enable docker

运行博客系统

安装后了之后,就可以使用下面命令拉取 solo 博客镜像到本地了

docker pull 88250/solo

上面命令把 solo 镜像拉取到本地,然后就可以起个容器运行博客了。
下面是官方给出的运行命令

docker volume create solo_datas && docker run --privileged --name solo --restart=unless-stopped -p 8080:8080 -v solo_datas:/opt/b3log/backup/ -d 88250/solo

这个命令首先创建了一个 volume,用于持久化存储博客信息,然后通过 docker run 运行博客系统并映射到本机的 8080 端口。

如果需要使用 nginx 来反代该服务的话,请不要直接使用以上命令,如果你配置了通过域名来访问该博客,需要在运行时添加环境变量,还可以指定 https 或者 http,具体如下:

$ docker run --privileged --name solo -e "SERVER_NAME=www.guoweikuang.com" -e "SERVER_PORT=80" -e "SERVER_SCHMEA=https" --restart=unless-stopped -p 8080:8080 -v solo_datas:/opt/b3log/backup/ -d 88250/solo

如果是本地 run 的话,你就可以通过 http://localhost:8080 访问博客了。

如果选择 nginx 来反代该服务,因此下一步就是安装 nginx 并进行配置

nginx 配置

第一步先安装 nginx, 使用下面命令就可以直接安装 nginx

# 将nginx放到yum repro库中
$ rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 使用yum安装ngnix
$ yum install nginx

# 开启 nginx 服务
$ sudo service nginx start

# 查看 nginx 状态
$ systemctl status nginx

安装后之后就可以进行一些配置

# cd 到 /etc/nginx/conf.d/ 目录下,新建一个blog.conf 配置文件
server {
  listen 80;
  server_name www.guoweikuang.com;

  location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

如果配置https的话,可能需要下面这种配置方式
server {
  listen 443;
  server_name www.guoweikuang.com;
  client_max_body_size 2m;
  access_log on;
  access_log /var/log/nginx/blog.log;
  access_log /var/log/nginx/blog.error.log;

  ssl on;
  ssl_certificate /path/1_www.guoweikuang.com_bundle.crt;
  ssl_certificate_key /path/2_www.guoweikuang.com.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;
  location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

}
server {
   listen 80;
   server_name www.guoweikuang.com;
   rewrite ^(.*) https://$server_name$1 permanent;
}

然后保存,reload nginx 配置即可

# 检查配置文件是否正确
$ sudo nginx -t

# 重载nginx 配置文件
$ sudo service nginx reload

# 或者 重启nginx 服务
$ sudo service nginx restart

然后就可以通过 http://www.guoweikuang.com 来访问博客,如配置有误或者不成功,欢迎评论。

首页

后台管理

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 201 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1433 引用 • 10052 回帖 • 484 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • keppel
    该回帖仅作者和楼主可见
  • silenceport

    按照步骤搭建后首次访问时,报 Latke 配置错误