[图片] 服务器 申请云服务器 (这里笔者选择腾讯云, 使用学生套餐便宜) [图片] 选择系统 (这里笔者建议使用自己熟悉的系统, 如果你不熟悉 linux 可以跟随笔者选择的系统) [图片] 创建云服务器登录方式选择密码方式 (方便上传文件) 配置创建好的云服务器安全组, 配置如下 [图片] [图片] 申请域名 查询 ..

Solo 博客搭建

服务器

  1. 申请云服务器 (这里笔者选择腾讯云, 使用学生套餐便宜)
    腾讯云服务器.png

  2. 选择系统 (这里笔者建议使用自己熟悉的系统, 如果你不熟悉 linux 可以跟随笔者选择的系统)
    云服务器系统.png

  3. 创建云服务器登录方式选择密码方式 (方便上传文件)

  4. 配置创建好的云服务器安全组, 配置如下
    入站安全组.png
    出站安全组.png

申请域名

  1. 查询域名
    域名查询.png
  2. 购买域名 (购买完域名, 需要备案才能解析和访问)
  3. 备案域名 (备案周期在 30 天左右)

安装服务

  1. 登录服务器 (mac 直接打开终端,Windows 系统需要安装软件 Secure CRT)
ssh -p 22 系统用户名@公网ip
# 例如
ssh -p 22 ubuntu@10.22.33.49
  1. 安装 docker
sudo apt-get install docker.io
  1. 安装 nginx
sudo apt-get install  nginx
  1. 安装 mycli(命令行操作 mysql 的智能提示工具)
sudo apt-get install mycli
  1. 安装 vim
sudo apt-get install vim
  1. 使用 docker 安装 solo 和 mysql
# 下载mysql 镜像
sudo docker pull mysql
# 启动镜像  MYSQL_ROOT_PASSWORD=mysql的root密码
docker run -d --name mysql-5.7 --network=host -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root  mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# 登录mysql
mycli
# 如果登录提示如下错误

mycliloginerror.png

# 执行如下即可
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
# 创建数据库
CREATE DATABASE solo DEFAULT CHARACTER SET utf8mb4  DEFAULT COLLATE utf8mb4_general_ci
# 退出mycli工具
quit


# 下载solo博客镜像
sudo docker pull b3log/solo

# 启动solo镜像 
# JDBC_PASSWORD(mysql的密码)  
# listen_port(启动端口)  
# server_scheme(访问协议) 
# server_host(请求的地址) 
# server_port(请求的端口)
 docker run --detach --name solo --network=host \
        --env RUNTIME_DB="MYSQL" \
        --env JDBC_USERNAME="root" \
        --env JDBC_PASSWORD="root" \
        --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
        --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
        b3log/solo --listen_port=8080 --server_scheme=https --server_host=adongs.com --server_port=80
# 查看启动结果
sudo docker ps
# 结果如下就表示启动成功(STATUS 都为UP表示启动成功)

docker启动容器列表.png

配置域名和代理

  1. 申请 SSL( 笔者在腾讯云申请的免费 SSL,第三方免费 SSL)
    tencentssldownload.png

  2. 下载 SSL 到本地, 并解压
    aliyunssl.png

  3. 上传 SSL 到云服务器

scp -r SSL文件目录 系统用户名@公网i:/home/系统用户名
  1. 配置 nginx
#登录云服务器,执行如下
sudo vim /etc/nginx/sites-enabled/default
#将文本里面的内容全删除,拷贝如下文本内容
#修改server_name为自己的域名
#修改ssl_certificate和ssl_certificate_key的文件路径
#修改proxy_pass为自己的域名和solo启动端口
server {
        listen    443 ssl;
        server_name www.xxx.com,xxx.com;
        ssl_certificate  /etc/nginx/ssl/xxx.crt;
        ssl_certificate_key /etc/nginx/ssl/xxx.key;

        location / {
                proxy_pass http://www.xxx.com:8080;
        }
}

server {
        listen     80;
        listen     [::]:80;
        server_name www.xxx.com,xxx.com;
        return 301 https://$host$request_uri;
}

# 保存并退出后重启nginx
nginx -s reload

调试

1. 打开自己的域名如下
博客调试.png

配置自动更新

1. 创更新脚本

docker-restart-solo.sh

#
# Solo docker Update and restart scripts
#
#  The script is added to the crontab
#
#  注意要修改配置
#  JDBC_PASSWORD(mysql的密码)
#  JDBC_URL(mysq连接地址)
#  listen_port(启动端口)
#  server_scheme(访问协议)
#  server_host(请求的地址)
#  server_port(请求的端口)
#
docker pull b3log/solo
docker stop solo
docker rm solo
docker run --detach --name solo --network=host \
           --env RUNTIME_DB="MYSQL" \
           --env JDBC_USERNAME="root" \
           --env JDBC_PASSWORD="123456" \
           --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
           --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
           b3log/solo --listen_port=8080 --server_scheme=https --server_host=adongs.com --server_port=80

2. 修改脚本权限

#最后是你的脚本绝对路径
sudo chmod 744 /opt/docker-restart-solo.sh

3. 加入 crontab

# ubuntu默认没有开启cron日志记录,需要开启
# 修改rsyslog
sudo vim /etc/rsyslog.d/50-default.conf
#将cron前面的注释符去掉
cron.* /var/log/cron.log 
#编辑crontab
crontab -e
#在最后一行加入如下内容(最后是你脚本的绝对路径),每天凌晨3点执行脚本
* 3 * * * /opt/docker-restart-solo.sh
# control + X 退出,选择Y保存,查看定时任务
crontab -l

相关资料

  1. solo 地址
  2. mysql 镜像说明
  3. 腾讯云学生购买

感谢

  1. B3log 开源社区

问题

1. 安装有什么问题请留言

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    723 引用 • 5468 回帖 • 695 关注
3 回帖   
请输入回帖内容...
  • aadream  

    感谢笔记, 今天回去试试自己搭一个博客

  • cuijianzhe  

    不错

  • adongs  

    有什么问题可以留言给我