"简介 [链接] 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的[链接],文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。 安装 本地试用 [链接]最新的 Solo 包解压,进入解压目录执行: Windows: java -cp 'WEB-INF/lib/*;WEB-INF/classes .."

Solo 用户指南

简介

Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。

安装

本地试用

下载最新的 Solo 包解压,进入解压目录执行:

如果你有 Java 开发环境,可参考这里通过源码构建运行。

请注意:我们不建议通过 war 发布包或者源码构建部署,因为这样的部署方式在将来有新版本发布时升级会比较麻烦。 这两种方式请仅用于本地试用,线上生产环境建议通过 Docker 部署。

Docker 部署

获取最新镜像:

docker pull b3log/solo

启动参数说明:

完整启动参数的说明可以使用 -h 来查看。

Docker 升级

  1. 拉取最新镜像
  2. 重启容器

可参考这里编写一个重启脚本,并通过 crontab 每日凌晨运行来实现自动更新。

NGINX 反代

upstream backend {
    server localhost:8080; # Solo 监听端口
}

server {
    listen       80;
    server_name  88250.b3log.org; # 博客域名

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

初始化后

初始化成功后请务必查看自动发布的第一篇文章,里面有一些必要的操作,请务必完成。然后请到管理后台 -> 工具 -> 偏好设定中进行一下博客的细节配置。

信息配置

签名档

最多可以配置 3 个签名档,发布文章的时候选择一个使用,可以使用 HTML 和脚本进行配置。

参数设置

下面是一些比较有特色或重要的参数:

导入 Markdown

请参考 Solo 支持 Hexo/Jekyll 数据导入

备份

安全第一,血泪的教训 😢

其他一些特性

多用户

可以几个用户同时使用一个博客发布文章,主要用在团队博客这个场景。权限方面做了简单隔离,非管理员用户可以看到其他用户的博文 / 评论列表,但是不能进行操作。

RSS/Atom

提供两种订阅供稿:Atom 1.0、RSS 2.0:

浏览器直接打开可能会出现编码,可使用阅读器查看。

Sitemap

自动生成全站文章的 sitemap.xml,有利于 SEO。

前台皮肤切换

通过 URL 带参(比如 http://88250.b3log.org/?skin=Finding)来确定渲染使用的皮肤。

使用场景举例:

  1. 只有在首页(/)会取参数skin=xxx
  2. 如果带有就记录到 Cookie 里面,如果带有skin=default或皮肤不存在则清空 Cookie
  3. 如果要切换成后台默认的皮肤,在首页带参skin=default

站外相关文章

“站外相关文章”指的是其他人使用 Solo 发布的文章,该文章含有与你的文章相同的标签。该功能主要是为了加强各个 Solo 博客之间的互动性,让博客访问者可以更有效地访问到相关的内容。

这是 B3log 构思 的一部分实现,请大家积极参与进来 💓

FAQ

服务器内存太小?

可以考虑使用内嵌的 H2 数据库代替 MySQL。如果一台服务器上要部署多个 Solo,可以考虑通过 war 包方式将它们部署到同一个 Tomcat/Jetty 中运行。

如何引入自定义静态资源,比如 .mp3?

请通过 NGINX 反代静态资源实现。

如何获得更好的 Markdown 渲染效果?

Solo 默认是使用内建的 flexmark 进行 md 渲染,可能对有的场景下的渲染效果不是很好。如果你想要获得更好的 md 渲染效果请参考这里

如何指定移动端皮肤

可在 solo.props 中配置 mobile.skin 来指定移动端访问时的皮肤。请配置成目录名,区分大小写。

结语

如果你在使用 Solo 过程中碰到问题或者有需求要提,欢迎跟帖,我们会在第一时间回复。另外,如果你想对 Solo 进行定制开发,请参考 Solo 从设计到实现

感谢    关注    收藏    赞同    反对    举报    分享
231 回帖    
请输入回帖内容...
  • bingofang      

    服务器下项目启动失败(直接拷贝 war 包到 tomcat/webapps 下), 版本用的 2.5.0 用 2.7.0 也出现类似问题: 查看日志 solo.log: [ERROR]-[2018-04-11 16:48:32]-[org.b3log.solo.service.UpgradeService:149]: Attempt to skip more than one version to upgrade. Expected: 2.4.0, Actually: 2.7.0 [ERROR]-[2018-04-11 16:54:16]-[org.b3log.solo.service.UpgradeService:149]: Attempt to skip more than one version to upgrade. Expected: 2.4.0, Actually: 2.7.0 请问该怎样破?谢谢!

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    用 2.5 的包升级,不要部署 2.7 的包。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • bingofang            

    你好!我用的就是 2.5.0 的 war 包,启动后 solo.log 日志内容如下,是不是需要 2.4 的 war 包,以前部署过一次,没出现类似问题 [ERROR]-[2018-04-12 08:59:10]-[org.b3log.solo.service.UpgradeService:149]: Attempt to skip more than one version to upgrade. Expected: 2.4.0, Actually: 2.7.0

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    哦,对,用 2.4 的,你现在的版本应该是 2.3,要先升级 2.4

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • bingofang            

    你好!输入我的域名能够出来首页。但是静态资源没有被加载进来,页面没有样式!一下是我的相关配置,麻烦帮忙解决下谢谢!

    questionPNG

    tomcat 配置: 项目配置:

    Browser visit protocol

    serverScheme=http

    Browser visit domain name

    serverHost=bingofang.top

    Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT!

    serverPort=80 nginx 配置: server { listen 80; server_name bingofang.top;

        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://localhost:8080/;
         }
    

    }

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    请看文档

    感谢    赞同    反对    举报    分享       评论    回复
  • xuwangcheng14      

    @88250 请问 1.9 升级 2.0 时报错,是不是 2.0 版本不支持 jdk1.7 了?

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    嗯,请使用 1.8

    感谢    赞同    反对    举报    分享       评论    回复
  • xuwangcheng14      

    @88250 2.3 升级 2.4 出错!!!!!

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            
    感谢    赞同    反对    举报    分享       评论    回复
  • xuwangcheng14      

    蛋疼 2.6 升级 2.7 又出问题了 。tomcat7 闪退!!!!! @88250

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    用 Tomcat9

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • xuwangcheng14            

    可以了。 刚才是数据库默认位置是 ~/solo_h2/db 导致的 之前的版本也是这样但是不会导致 tomcat 秒退,2.7 的会秒退的、

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    好的,能用就行。

    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478      

    各位,博客代码怎么不是高亮的呢?

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    用 Markdown 语法

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478            

    好的,谢谢

    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478      

    博客的存档在哪里删除呢?好像不能删除

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    存单是根据文章日期自动计算的,没有删除这一说。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478            

    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478      

    发布文章时报错:b3_solo_archiveDate’ doesn’t exist,但是数据库中明明有这个表的

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    看下大小写

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478            

    噢噢,大小写是不对,其他表是不是也有这个问题呢

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    其他表没有

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 792668478            

    ok,谢谢

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    这个坑当初设计表的时候没注意,现在木已成舟了…我再考虑下是否下个版本来个重命名,解决这个历史问题。

    感谢    赞同    反对    举报    分享       评论    回复
  • eviler      

    删不了文章,很烦😭 ,下图是出的错误截图(其他功能都可以)

    YPAVNZ_0S81WNH4OI5png

    7K0O5ADH96P5JG_6QFpng

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    自己改过代码?

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • eviler            

    没有,不过这个博客系统在我的主机上(win10)能够很好的使用删除文章功能,但放在阿里云上就出现这样的情况😭

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    是不是 JDK 版本问题,用 JDK 8 或者以上。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • eviler            

    Y0XV_34RFMQXS99png 这个是 1.9 吧😳

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    要不重新按个最新的 JDK8 试试。

    2 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • eviler            

    感谢    赞同    反对    举报    分享       评论    回复
  • eviler            

    可以了,谢谢老师了(暂且这样叫吧,嘿嘿)❤️

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • eviler      

    然后我又发现一个问题,点击订阅订阅跳出来的页面是代码 / 一脸懵逼.jpg Q2NBFYZDTIDVJDF4B42Npng

    Z0XDPJIEMRKI8CQGWpng

    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    叫我 D 就行 😅 订阅那个是正常的,要用阅读器打开。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • eviler            

    嗯,谢谢

    感谢    赞同    反对    举报    分享       评论    回复
  • happychai      

    有没有 mysql 的脚本

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    手动建库,自动建表的。

    感谢    赞同    反对    举报    分享       评论    回复
  • BGod      

    imagepng

    imagepng tomcat 的 webxml 文件已经加上如上配置了,markdown 编辑器还是乱码,怎么解决

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    Tomcat9 么?

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • BGod   1 感谢            

    已经好了,谢谢。除了要重启 tomcat,还要清浏览器缓存。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    好的,我加到 FAQ 里,谢谢!

    感谢    赞同    反对    举报    分享       评论    回复
  • Acc      

    发布到云服务器后,只能访问主页,点文章进去 404,但是远程连接服务器却可以查看,这是为啥

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    给个地址我看看

    2 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Acc            

    http://111.231.193.142:8080/solo-2.9.1

    又变了 突然加载不了样式了 0.0

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Acc            

    在云服务器里能看到正确的

    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            
    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • mogiihu            

    谢谢!我也出现了这个问题

    感谢    赞同    反对    举报    分享       评论    回复
  • mogiihu      

    D 哥,你好。有个问题想请教下。我修改了 Latck 端口打包成 war 包,放入本地 tomcat 运行打开没问题。放到服务器上测试就出现 404。原样复制过去的都不行😂 这是什么情况。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
请输入回帖内容...