前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker安装solo博客部署到云服务器教程

Docker安装solo博客部署到云服务器教程

作者头像
兮动人
发布2021-06-11 20:25:22
1.4K0
发布2021-06-11 20:25:22
举报

文章目录

Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动

总的来说,这款博客框架还不错,社区也在不断的完善。最重要的是使用Java写的。像流行的Hexo、Hugo等博客框架都是静态博客,没有后台啥的,主要发表的文章是Markdown转HTML格式的形式发表的,但solo是有后台管理的,与Jpress有些相似。

  • 官网:https://b3log.org/solo,一般安装一套博客框架最重要的是看懂官方给的文档,虽然有些时候看完了,但安装遇到的问题却是“奇行八怪”,我这里就准备写个教程,当做“踩坑”日记来看看也还是不错的。
  • 本地运行主要用于试用或者生成静态站点

1. Docker 部署

docker pull b3log/solo
  • 启动容器
  • 注意:对于如下命令,如果你不确定如何使用 \ 来进行换行,就不要换行了,一行内写完整条命令。
  • 使用 MySQL
  • 手动建库(库名 solo ,字符集使用 utf8mb4 ,排序规则 utf8mb4_general_ci ):
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
create user 'root'@'127.0.0.1' identified by '123456';
grant all privileges on *.* to 'root'@'127.0.0.1';
flush privileges;
  • 打开服务器上的mysql,一条一条执行即可
  • 注意:上面的密码指mysql的root用户密码
  • 启动容器:
在这里插入图片描述
在这里插入图片描述
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&allowPublicKeyRetrieval=true" \
    b3log/solo --listen_port=6000 --server_scheme=http --server_host=localhost --server_port=
  • 启动参数说明: –listen_port:进程监听端口,可以自定义修改 –server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https –server_host:最终访问域名或公网 IP,不要带端口 –server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可 完整启动参数的说明可以使用 -h 来查看。
  • 注意:JDBC_PASSWORD 也是指云服务器上mysql的root用户密码
  • 注意--listen_port,我这边设置监听的端口号是6000,官方给的是8080端口,因为我这边服务器上的8080端口已经被Tomcat占用了,所以放行 6000 端口的防火墙,也可以自定义其他端口号(在不冲突的情况下,也就是确定没有其他进程在使用),开启防火墙端口号的命令如下:
firewall-cmd --zone=public --add-port=6000/tcp --permanent

firewall-cmd --reload

firewall-cmd --zone=public --list-ports
  • 也要在服务器上的安全组上放行 6000 端口
  • 执行启动容器后,可以使用如下命令观察容器进程的变化
docker ps -a 
  • 也可以使用打印solo的日志来观察时候安装成功
docker logs solo
  • 当看到这条日志时,表示solo正在创建表和初始化
在这里插入图片描述
在这里插入图片描述

2. 日志配置

  • 默认通过 log4j2 将日志打印到标准输出流,可以通过 docker logs solo 进行查看。如果需要覆盖 log4j 配置,可通过挂载文件实现:
--volume ~/log4j2.xml:/opt/solo/log4j2.xml
  • 挂载第三方皮肤 如果需要使用第三方皮肤,可以挂载目录 skins,目录结构请参考原版 skins
--volume ~/skins/:/opt/solo/skins/

3. Nginx 反向代理

  • 在nginx的安装目录conf文件夹下的nginx.conf文件添加如下:
upstream backend {
    server localhost:6000; # Solo 监听端口
}

server {
    listen       80;
    server_name  solo.xdr630.com; # 博客域名

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP $remote_addr;
        client_max_body_size  10m;
    }
}
  • 这边监听的6000端口号就是上面solo进程所需要的的端口号
  • 添加完成后重载配置使其生效
nginx -s reload
在这里插入图片描述
在这里插入图片描述
  • 可以看到,主题还是比较多的,也可以在设置移动端的皮肤,或添加看板娘之类的。
在这里插入图片描述
在这里插入图片描述
  • 有关更细致的对solo博客的了解请访问官网。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. Docker 部署
  • 2. 日志配置
  • 3. Nginx 反向代理
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档