Total Pageviews

Saturday, 20 July 2013

在vps上,搭建基于java的博客程序- b3log-solo

首先在你的vps上搭建tomcat.

环境
  • MySQL 5+
  • Tomcat 6+
1. 在 MySQL 中创建名为 b3log 的数据库
2. 配置 JDBC 数据源
按照数据库连接配置修改 ${b3log-solo-mysql-x.×.x}/WEB-INF/classes/local.properties 文件里
#### JDBC database Configurations ####
区域中
jdbc.URL=jdbc:mysql://localhost:3306/b3log?useUnicode=yes&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=
另外,还必须配置表前缀
# The specific table name prefix
jdbc.tablePrefix=b3_solo
可以配置为其他前缀,但不能留空。
3. 修改应用路径
修改 ${b3log-solo-x.×.x}/WEB-INF/classes/latke.properties 中的 Server 区域,配置成部署路径。
serverScheme=http
serverHost=你自己的域名
serverPort=端口填 80
staticServerScheme=http
staticServerHost=你自己的域名
staticServerPort=端口填 80
contextPath=/部署包展开后的目录名,例如 /b3log
staticPath=/部署包展开后的目录名,例如 /b3log
4. 部署
将 ${b3log-solo-mysql-x.x.x} 下的内容拷贝到部署目录下(tomcat/webapps/${contextPath}),例如 d:/tomcat/webapps/b3log

重启tomcat.

在浏览器中访问:http://${server}:${port}/${contextPath} 进行初始化.比如我的:
http://as3.brite.biz:8081/b3log

  • ${server}:${port} 为你容器的访问地址与端口.
 示例:http://as3.brite.biz:8081/b3log

修改自https://github.com/b3log/b3log-solo/wiki/deploy_local_tomcat

b3log-solo-mysql-0.6.0.war的下载地址:
http://pan.baidu.com/share/link?shareid=541735&uk=3255126224#dir/path=%2Fb3log-solo%2F0.6.0

项目地址:
https://github.com/b3log/b3log-solo(已经删除)
https://github.com/luckypoem/b3log-solo
-----

https://github.com/88250/solo
https://b3log.org/solo/
https://github.com/ydzydzydz/solo
https://hacpai.com/tag/solo

--------------------------------

Bolo菠萝博客 专为程序员设计的精致Java博客系统 | 🎸基于Solo深度定制 | ❤️完善文档轻松安装,贴心的技术支持 | 免登录评论 | 邮件/微信提醒 | 自定义图床 | 备案模式 | ✨精致主题持续更新 | 一键备份 | 防火墙 | 评论过滤 | 独立分类 | 文章与GitHub同步 | ✅安装太轻松!支持 Tomcat Docker 宝塔面板 | 支持Windows Linux MacOS Web容器 | 支持ARM处理器 X86/64处理器 | 🚚支持从Solo轻松迁移.
https://demo.stackoverflow.wiki/
 
基于 Java 的菠萝博客系统,简单易部署,精致主题,贴心服务,专为程序员设计。





❤ 令人放心的全面免费服务

✅ 贴心的技术支持

  • 有问必答的用户交流群,轻松气氛,社恐无惧
  • 舒心提问,耐心讲解,博客维护团队为你解答
  • 免费远程服务,解决疑难杂症
  • 菠萝博客及全部增值服务永久免费,永久更新

🌱 我是小白,装不好怎么办?

不用担心安装问题,我们提供完善的文档,提供所有部署方式的安装、升级方式,通过简单的几步就可启动。
如果你在跟随教程安装的过程中出现任何问题,菠萝博客用户群会有作者以及维护者随时待命,免费解答、远程帮助,QQ 用户群请点击最下方的链接。

为什么选择 Bolo

  1. 完整的教程文档,完善的交流答疑
  2. 精美皮肤常更新
  3. 支持将文章自动备份至 GitHub 仓库 示例
  4. 超酷的数据统计表
  5. 本地登录、评论,支持备案模式(隐藏登录、评论及搜索入口)
  6. 支持 Tomcat、Docker 快速部署
  7. 邮件提醒功能,不怕错过博客中的新评论,回复他人评论也会发邮件提醒他人
  8. 强大的 Vditor 编辑器,支持 所见即所得即时渲染分屏预览 三种模式,额外支持通过 Lute_HTTP 渲染
  9. 支持自定义图床(阿里云、又拍云、七牛云、腾讯云)
  10. 轻型防火墙功能,阻止恶意访问,保证博客正常运行
  11. 强大的 Markdown 编辑器(使用 Vditor)支持大纲、数学公式、脑图、图表、流程图、甘特图、时序图、五线谱、多媒体、语音阅读、标题锚点、代码高亮及复制、graphviz 渲染
  12. 支持黑暗模式,随系统设置自动切换,保护视力
  13. 看板娘+,在线更新海量看板娘资源
  14. 如果你是 Solo 用户,还可将 Solo 的数据一键迁移到 Bolo;如果你对 Bolo 不满意,还可以一键迁回至 Solo
  15. Server 酱推送功能,在微信上接收你的博客动态
  16. 自动生成“我在 GitHub 上的开源项目”文章功能,让博客的访客更好地了解你的 GitHub 履历

博客安装使用教程文档

👉 QQ用户群 | 安装教程 | 从Solo迁移 | Bolo介绍 | 常见问题 

from https://github.com/adlered/bolo-solo

https://doc.stackoverflow.wiki/web/#/7/165 

-----------------------------------------------------------

Solo 开发环境搭建详细说明


1. 环境搭建综述

讲述的是 CentOS7 的系统下安装 JDK,下载配置 Maven,安装 MySQL,配置 MySQL(改密码,建库),git clone solo 项目源码,编译启动的整个过程。
  • JDK:8 或更高的版本。我们就用当前最新的 JDK12 版本。
  • Maven:2 或更高的版本。我们就用当前最新的 Maven 3.6.1
  • MySQL:默认使用 MySQL,可选择使用内嵌的 H2 Database。我们就用当前最新的 MySQL8。

2. 安装 JDK12

2.1 安装之前先 rpm -qa |grep java 检查一下系统有没有低版本的 java

[root@localhost ~]# rpm -qa |grep java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-devel-1.8.0.212.b04-0.el7_6.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2019a-1.el7.noarch
java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
java-1.8.0-openjdk-headless-1.8.0.212.b04-0.el7_6.x86_64

2.2 用 yum -y remove java* 方法卸载低版本的 java

[root@localhost ~]# yum -y remove java*              

已加载插件:fastestmirror

正在解决依赖关系

--> 正在检查事务
---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.212.b04-0.el7_6 将被 删除
---> 软件包 java-1.8.0-openjdk-devel.x86_64.1.1.8.0.212.b04-0.el7_6 将被 删除
---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.212.b04-0.el7_6 将被 删除
---> 软件包 javapackages-tools.noarch.0.3.4.1-11.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

==========================================================================================================================================================================================
 Package                                                架构                              版本                                                  源                                   大小
==========================================================================================================================================================================================
正在删除:
 java-1.8.0-openjdk                                     x86_64                            1:1.8.0.212.b04-0.el7_6                               @updates                            529 k
 java-1.8.0-openjdk-devel                               x86_64                            1:1.8.0.212.b04-0.el7_6                               @updates                             40 M
 java-1.8.0-openjdk-headless                            x86_64                            1:1.8.0.212.b04-0.el7_6                               @updates                            104 M
 javapackages-tools                                     noarch                            3.4.1-11.el7                                          @base                               156 k

事务概要
==========================================================================================================================================================================================
移除  4 软件包

安装大小:145 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : 1:java-1.8.0-openjdk-devel-1.8.0.212.b04-0.el7_6.x86_64                                                                                                               1/4 
  正在删除    : 1:java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64                                                                                                                     2/4 
  正在删除    : 1:java-1.8.0-openjdk-headless-1.8.0.212.b04-0.el7_6.x86_64                                                                                                            3/4 
  正在删除    : javapackages-tools-3.4.1-11.el7.noarch                                                                                                                                4/4 
  验证中      : 1:java-1.8.0-openjdk-devel-1.8.0.212.b04-0.el7_6.x86_64                                                                                                               1/4 
  验证中      : 1:java-1.8.0-openjdk-headless-1.8.0.212.b04-0.el7_6.x86_64                                                                                                            2/4 
  验证中      : 1:java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64                                                                                                                     3/4 
  验证中      : javapackages-tools-3.4.1-11.el7.noarch                                                                                                                                4/4 

删除:
  java-1.8.0-openjdk.x86_64 1:1.8.0.212.b04-0.el7_6       java-1.8.0-openjdk-devel.x86_64 1:1.8.0.212.b04-0.el7_6       java-1.8.0-openjdk-headless.x86_64 1:1.8.0.212.b04-0.el7_6      
  javapackages-tools.noarch 0:3.4.1-11.el7               

完毕!
再次查看一下:
[root@localhost ~]# rpm -qa |grep java
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2019a-1.el7.noarch
继续删除:
[root@localhost ~]# yum -y remove python-javapackages-3.4.1-11.el7.noarch


已加载插件:fastestmirror

正在解决依赖关系

--> 正在检查事务

---> 软件包 python-javapackages.noarch.0.3.4.1-11.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

==========================================================================================================================================================================================
 Package                                              架构                                    版本                                           源                                      大小
==========================================================================================================================================================================================
正在删除:
 python-javapackages                                  noarch                                  3.4.1-11.el7                                   @base                                   65 k

事务概要
==========================================================================================================================================================================================
移除  1 软件包

安装大小:65 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : python-javapackages-3.4.1-11.el7.noarch                                                                                                                               1/1 
  验证中      : python-javapackages-3.4.1-11.el7.noarch                                                                                                                               1/1 

删除:
  python-javapackages.noarch 0:3.4.1-11.el7                                                                                                                                               

完毕!
[root@localhost ~]# yum -y remove tzdata-java-2019a-1.el7.noarch
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 tzdata-java.noarch.0.2019a-1.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

==========================================================================================================================================================================================
 Package                                       架构                                     版本                                             源                                          大小
==========================================================================================================================================================================================
正在删除:
 tzdata-java                                   noarch                                   2019a-1.el7                                      @updates                                   366 k

事务概要
==========================================================================================================================================================================================
移除  1 软件包

安装大小:366 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : tzdata-java-2019a-1.el7.noarch                                                                                                                                        1/1 
  验证中      : tzdata-java-2019a-1.el7.noarch                                                                                                                                        1/1 

删除:
  tzdata-java.noarch 0:2019a-1.el7                                                                                                                                                        

完毕!
再查看一下:(没有输出说明全部删除了)
[root@localhost ~]# rpm -qa |grep java
[root@localhost ~]# 

2.3 清理完旧的 Java 环境就可以开始安装新版本的 JDK 了。

2.3.1 先用命令搜索一下服务器镜像上的 JDK 版本

注:这里搜到的都是 openjdk,要装 oracle 的 JDK 需自行去官网下载
[root@localhost ~]# yum search jdk

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirror01.idc.hinet.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
==================================================================================== N/S matched: jdk ====================================================================================
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility-debug.i686 : OpenJDK accessibility connector for packages with debug on
java-1.8.0-openjdk-accessibility-debug.x86_64 : OpenJDK 8 accessibility connector for packages with debug on
java-1.8.0-openjdk-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment 8 with full debug on
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-1.8.0-openjdk-demo-debug.i686 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos 8 with full debug on
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-1.8.0-openjdk-devel-debug.i686 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment 8 with full debug on
java-1.8.0-openjdk-headless.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK 8 API documentation for packages with debug on
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in single archive
java-1.8.0-openjdk-javadoc-zip-debug.noarch : OpenJDK 8 API documentation compressed in single archive for packages with debug on
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-1.8.0-openjdk-src-debug.i686 : OpenJDK Source Bundle for packages with debug on
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle 8 for packages with debug on
java-11-openjdk.i686 : OpenJDK Runtime Environment 11
java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
java-11-openjdk-debug.i686 : OpenJDK Runtime Environment 11 with full debug on
java-11-openjdk-debug.x86_64 : OpenJDK Runtime Environment 11 with full debug on
java-11-openjdk-demo.i686 : OpenJDK Demos 11
java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
java-11-openjdk-demo-debug.i686 : OpenJDK Demos 11 with full debug on
java-11-openjdk-demo-debug.x86_64 : OpenJDK Demos 11 with full debug on
java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
java-11-openjdk-devel-debug.i686 : OpenJDK Development Environment 11 with full debug on
java-11-openjdk-devel-debug.x86_64 : OpenJDK Development Environment 11 with full debug on
java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full debug on
java-11-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-11-openjdk-javadoc-debug.i686 : OpenJDK 11 API documentation for packages with debug on
java-11-openjdk-javadoc-debug.x86_64 : OpenJDK 11 API documentation for packages with debug on
java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in single archive
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in single archive
java-11-openjdk-javadoc-zip-debug.i686 : OpenJDK 11 API documentation compressed in single archive for packages with debug on
java-11-openjdk-javadoc-zip-debug.x86_64 : OpenJDK 11 API documentation compressed in single archive for packages with debug on
java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-jmods-debug.i686 : JMods for OpenJDK 11 with full debug on
java-11-openjdk-jmods-debug.x86_64 : JMods for OpenJDK 11 with full debug on
java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
java-11-openjdk-src-debug.i686 : OpenJDK Source Bundle for packages with debug on
java-11-openjdk-src-debug.x86_64 : OpenJDK Source Bundle 11 for packages with debug on
java-latest-openjdk.x86_64 : OpenJDK Runtime Environment 12
java-latest-openjdk-debug.x86_64 : OpenJDK Runtime Environment 12 with full debug on
java-latest-openjdk-demo.x86_64 : OpenJDK Demos 12
java-latest-openjdk-demo-debug.x86_64 : OpenJDK Demos 12 with full debug on
java-latest-openjdk-devel.x86_64 : OpenJDK Development Environment 12
java-latest-openjdk-devel-debug.x86_64 : OpenJDK Development Environment 12 with full debug on
java-latest-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 12
java-latest-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-latest-openjdk-javadoc.x86_64 : OpenJDK 12 API documentation
java-latest-openjdk-javadoc-debug.x86_64 : OpenJDK 12 API documentation for packages with debug on
java-latest-openjdk-javadoc-zip.x86_64 : OpenJDK 12 API documentation compressed in single archive
java-latest-openjdk-javadoc-zip-debug.x86_64 : OpenJDK 12 API documentation compressed in single archive for packages with debug on
java-latest-openjdk-jmods.x86_64 : JMods for OpenJDK 12
java-latest-openjdk-jmods-debug.x86_64 : JMods for OpenJDK 12 with full debug on
java-latest-openjdk-src.x86_64 : OpenJDK Source Bundle 12
java-latest-openjdk-src-debug.x86_64 : OpenJDK Source Bundle 12 for packages with debug on
ldapjdk-javadoc.noarch : Javadoc for ldapjdk
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
ldapjdk.noarch : The Mozilla LDAP Java SDK
openprops.noarch : An improved java.util.Properties from OpenJDK

  名称和简介匹配 only,使用“search all”试试。

2.3.2 选择 java-latest-openjdk-devel.x86_64 安装。

注:列出来的 JDK 中 java-latest-openjdk-devel.x86_64 : OpenJDK Development Environment 12 就是最新版的 openjdk12。另外 java-latest-openjdk.x86_64 这个是 JRE 运行时环境,只有 java 命令,没有 javac 命令。
[root@localhost ~]# yum -y install java-latest-openjdk-devel.x86_64

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.aliyun.com

 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
epel/x86_64/primary_db                                                                | 6.8 MB  00:02:44     
正在解决依赖关系
--> 正在检查事务
---> 软件包 java-latest-openjdk-devel.x86_64.1.12.0.1.12-1.rolling.el7 将被 安装
--> 正在处理依赖关系 java-latest-openjdk(x86-64) = 1:12.0.1.12-1.rolling.el7,它被软件包 1:java-latest-openjdk-devel-12.0.1.12-1.rolling.el7.x86_64 需要
--> 正在检查事务
---> 软件包 java-latest-openjdk.x86_64.1.12.0.1.12-1.rolling.el7 将被 安装
--> 正在处理依赖关系 java-latest-openjdk-headless(x86-64) = 1:12.0.1.12-1.rolling.el7,它被软件包 1:java-latest-openjdk-12.0.1.12-1.rolling.el7.x86_64 需要
--> 正在检查事务
---> 软件包 java-latest-openjdk-headless.x86_64.1.12.0.1.12-1.rolling.el7 将被 安装
--> 正在处理依赖关系 tzdata-java >= 2015d,它被软件包 1:java-latest-openjdk-headless-12.0.1.12-1.rolling.el7.x86_64 需要
--> 正在处理依赖关系 javapackages-tools,它被软件包 1:java-latest-openjdk-headless-12.0.1.12-1.rolling.el7.x86_64 需要
--> 正在检查事务
---> 软件包 javapackages-tools.noarch.0.3.4.1-11.el7 将被 安装
--> 正在处理依赖关系 python-javapackages = 3.4.1-11.el7,它被软件包 javapackages-tools-3.4.1-11.el7.noarch 需要
---> 软件包 tzdata-java.noarch.0.2019a-1.el7 将被 安装
--> 正在检查事务
---> 软件包 python-javapackages.noarch.0.3.4.1-11.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=============================================================================================================
 Package                              架构           版本                              源               大小
=============================================================================================================
正在安装:
 java-latest-openjdk-devel            x86_64         1:12.0.1.12-1.rolling.el7         epel            4.5 M
为依赖而安装:
 java-latest-openjdk                  x86_64         1:12.0.1.12-1.rolling.el7         epel            201 k
 java-latest-openjdk-headless         x86_64         1:12.0.1.12-1.rolling.el7         epel             39 M
 javapackages-tools                   noarch         3.4.1-11.el7                      base             73 k
 python-javapackages                  noarch         3.4.1-11.el7                      base             31 k
 tzdata-java                          noarch         2019a-1.el7                       updates         187 k

事务概要
=============================================================================================================
安装  1 软件包 (+5 依赖软件包)

总下载量:44 M
安装大小:190 M
Downloading packages:
(1/6): python-javapackages-3.4.1-11.el7.noarch.rpm                                    |  31 kB  00:00:00     
(2/6): javapackages-tools-3.4.1-11.el7.noarch.rpm                                     |  73 kB  00:00:00     
(3/6): tzdata-java-2019a-1.el7.noarch.rpm                                             | 187 kB  00:00:00     
warning: /var/cache/yum/x86_64/7/epel/packages/java-latest-openjdk-12.0.1.12-1.rolling.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
java-latest-openjdk-12.0.1.12-1.rolling.el7.x86_64.rpm 的公钥尚未安装
(4/6): java-latest-openjdk-12.0.1.12-1.rolling.el7.x86_64.rpm                         | 201 kB  00:00:12     
(5/6): java-latest-openjdk-devel-12.0.1.12-1.rolling.el7.x86_64.rpm                   | 4.5 MB  00:03:01     
(6/6): java-latest-openjdk-headless-12.0.1.12-1.rolling.el7.x86_64.rpm                |  39 MB  00:09:44     
-------------------------------------------------------------------------------------------------------------
总计                                                                          77 kB/s |  44 MB  00:09:44     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 检索密钥
导入 GPG key 0x352C64E5:
 用户ID     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 指纹       : 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 软件包     : epel-release-7-11.noarch (@extras)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tzdata-java-2019a-1.el7.noarch                                                           1/6 
  正在安装    : python-javapackages-3.4.1-11.el7.noarch                                                  2/6 
  正在安装    : javapackages-tools-3.4.1-11.el7.noarch                                                   3/6 
  正在安装    : 1:java-latest-openjdk-headless-12.0.1.12-1.rolling.el7.x86_64                            4/6 
  正在安装    : 1:java-latest-openjdk-12.0.1.12-1.rolling.el7.x86_64                                     5/6 
  正在安装    : 1:java-latest-openjdk-devel-12.0.1.12-1.rolling.el7.x86_64                               6/6 
  验证中      : 1:java-latest-openjdk-12.0.1.12-1.rolling.el7.x86_64                                     1/6 
  验证中      : python-javapackages-3.4.1-11.el7.noarch                                                  2/6 
  验证中      : 1:java-latest-openjdk-headless-12.0.1.12-1.rolling.el7.x86_64                            3/6 
  验证中      : tzdata-java-2019a-1.el7.noarch                                                           4/6 
  验证中      : javapackages-tools-3.4.1-11.el7.noarch                                                   5/6 
  验证中      : 1:java-latest-openjdk-devel-12.0.1.12-1.rolling.el7.x86_64                               6/6 

已安装:
  java-latest-openjdk-devel.x86_64 1:12.0.1.12-1.rolling.el7                                                 

作为依赖被安装:
  java-latest-openjdk.x86_64 1:12.0.1.12-1.rolling.el7                                                       
  java-latest-openjdk-headless.x86_64 1:12.0.1.12-1.rolling.el7                                              
  javapackages-tools.noarch 0:3.4.1-11.el7                                                                   
  python-javapackages.noarch 0:3.4.1-11.el7                                                                  
  tzdata-java.noarch 0:2019a-1.el7                                                                           

完毕!

2.3.3 装完后查看一下 JDK 版本:(也是验证 java 和 javac 命令)

[root@localhost ~]# java -version
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment 19.3 (build 12.0.1+12)
OpenJDK 64-Bit Server VM 19.3 (build 12.0.1+12, mixed mode, sharing)
[root@localhost ~]# javac -version
javac 12.0.1

3. 安装 Maven

3.1 先检查本机是否已经安装了 maven

[root@localhost ~]# mvn -v
-bash: mvn: 未找到命令
上面显示未找到命令表示没有安装 maven。

3.2 去 Maven 官网下载二进制文件。

3.2.1 我们先访问 apache-maven 网站的下载界面

maven1.png
651 x 316 1878 x 913

maven.png
651 x 505 770 x 598

右键点击 apache-maven-3.6.1-bin.tar.gz 复制链接地址 http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

3.2.2 用 wget 下载 apache-maven-3.6.1-bin.tar.gz 到本地:

[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz


--2019-06-23 20:45:21--  http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz


正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9136463 (8.7M) [application/octet-stream]
正在保存至: “apache-maven-3.6.1-bin.tar.gz”

100%[===================================================================>] 9,136,463   3.32MB/s 用时 2.6s   

2019-06-23 20:45:23 (3.32 MB/s) - 已保存 “apache-maven-3.6.1-bin.tar.gz” [9136463/9136463])

3.3 解压缩 apache-maven-3.6.1-bin.tar.gz 文件:

[root@localhost ~]# tar -zxf apache-maven-3.6.1-bin.tar.gz 
[root@localhost ~]# 

3.4 设置 maven 的路径

编辑 .bash_profile 文件(vi .bash_profile),添加 maven 路径:$HOME/apache-maven-3.6.1/bin 到 PATH 环境变量。
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin:$HOME/apache-maven-3.6.1/bin

export PATH

3.5 切换一下用户,使 PATH 生效

当前用户是 root,用 su - 命令重新切换到 root 用户,可使 PATH 生效
[root@localhost ~]# su -
上一次登录:日 6月 23 21:02:56 CST 2019pts/0 上

3.6 查看 mvn 版本(顺便测试一下 mvn 是否可用)

[root@localhost ~]# mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /root/apache-maven-3.6.1
Java version: 12.0.1, vendor: N/A, runtime: /usr/lib/jvm/java-12-openjdk-12.0.1.12-1.rolling.el7.x86_64
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.21.2.el7.x86_64", arch: "amd64", family: "unix"
mvn 安装成功。

4. 安装 MySQL

假设本机之前没有安装 MySQL 或者低版本的 MySQL 已经清理了。具体操作步骤请参见第 2 章节中对 Java 低版本的清理步骤。

4.1 centos7 上安装并启动 MySQL8 的命令步骤

  • 1)wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • 2)yum -y install mysql80-community-release-el7-3.noarch.rpm
  • 3)yum -y install mysql-community-server (从 oracle 官网下载 mysql 速度较慢,耐心等)
  • 4)systemctl start mysqld.service (启动 mysql)

5. 配置 MySQL8

配置 MySQL8 包括修改 root 密码和建库。

5.1 获取 root@localhost 的初始密码

MySQL8 在安装后会创建一个 root@locahost 账户(与之前版本不同,MySQL8 为远程连接 root@% 和本地连接 root@locahost 提供了不同的密码验证方式)。MySQL8 将本地连接的初始密码放到了/var/log/mysqld.log 文件中;我们可以用 cat /var/log/mysqld.log | grep password 命令查看初始密码。
[root@VM_0_11_centos solo]# cat /var/log/mysqld.log | grep password


2019-06-23T03:35:57.941668Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: n=Ti,P4?J(uE
注:上面 n=Ti,P4?J(uE 就是初始密码。

5.2 使用初始密码登录 mysql

[root@VM_0_11_centos solo]# mysql -uroot -p


Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.16 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

5.3 修改 root 密码

MySQL8 的 root 用户的验证方式变了。从下面命令结果可以看出 root 的用户的加密方式为 caching_sha2_passoword,而 navicat 连接所用的方式为 native_password。
mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host, user, plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)

5.3.1 修改密码策略

下面开始修改密码操作,但是直接用 alter 命令改还不行,因为 123456 密太简单,不满足密码策略,查看密码策略命令如下:
mysql> SHOW VARIABLES LIKE 'validate%';

+--------------------------------------+--------+

| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
需要把 validate_password.check_user_name 改为 OFF,validate_password.length 改为 1,validate_password.policy 改为 LOW。命令如下:
mysql> set global validate_password.check_user_name=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'validate%';

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | OFF   |
| validate_password.dictionary_file    |       |
| validate_password.length             | 4     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

5.3.2 修改密码

密码策略降低要求后才可以把密码改为 123456(本地和远程的都改为 123456)
mysql> alter user'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

5.4 建库 solo

mysql> create database solo;
Query OK, 1 row affected (0.01 sec)

6. solo 项目配置

接下来才是主角:下载 solo 项目源码,编译启动 solo,完成开发环境搭建
注:没有装 git 命令请先用 yum -y install git 命令安装。

6.1 克隆 solo 项目

使用命令:git clone --recurse-submodules https://gitee.com/b3logos/solo.git(国内通过码云下载较快):
[root@VM_0_11_centos ~]# git clone --recurse-submodules https://gitee.com/b3logos/solo.git

Cloning into 'solo'...

remote: Enumerating objects: 44272, done.
remote: Counting objects: 100% (44272/44272), done.
remote: Compressing objects: 100% (13923/13923), done.
remote: Total 44272 (delta 24766), reused 44214 (delta 24708)
Receiving objects: 100% (44272/44272), 88.66 MiB | 2.85 MiB/s, done.
Resolving deltas: 100% (24766/24766), done.
Submodule 'src/main/webapp/skins' (https://github.com/b3log/solo-skins) registered for path 'src/main/webapp/skins'
Cloning into 'src/main/webapp/skins'...
remote: Enumerating objects: 1193, done.
remote: Counting objects: 100% (1193/1193), done.
remote: Compressing objects: 100% (732/732), done.
remote: Total 11743 (delta 845), reused 767 (delta 460), pack-reused 10550
Receiving objects: 100% (11743/11743), 23.59 MiB | 256.00 KiB/s, done.
Resolving deltas: 100% (8803/8803), done.
Submodule path 'src/main/webapp/skins': checked out 'ca0de62bddd9e3bb8732e46b4239001d7f238303'
[root@VM_0_11_centos ~]# 

6.2 启动 solo 博客系统

[root@VM_0_11_centos ~]# cd solo
[root@VM_0_11_centos ~]# mvn jetty:run

6.3 登录 solo 博客系统

http://【你的服务器IP】:8080/ 登录系统,初始化博客,大功告成。
from https://archive.is/qhC9n#selection-1029.0-4673.17 
-------
https://ld246.com/article/1537690756242 ,Solo 从设计到实现。
https://ld246.com/article/1546941897596 
------
b3log.org/solo

简介

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

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

欢迎到 Solo 官方讨论区了解更多。同时也欢迎关注 B3log 开源社区微信公众号 B3log开源

b3logos.jpg

🗃 案例

https://ld246.com/top/solo

✨ 功能

皮肤

目前内置的皮肤如下,可点击进行预览:

欢迎在这里推荐好看的皮肤,我们会尽量进行制作。

🛠️ 安装

Solo 支持“动静两用”:

  • 动态博客:在服务器上搭建,进程常驻内存运行,在线使用
  • 静态博客:在本地电脑运行,写作完成后生成导出静态站点

视频教程

更多视频教程陆续制作中,欢迎到 B 站关注我:报废程序员D

本地运行

本地运行主要用于试用或者生成静态站点,生成静态站点的用法请参考这里

(视频演示教程请看这里

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

  • Windows: java -cp "lib/*;." org.b3log.solo.Server
  • Unix-like: java -cp "lib/*:." org.b3log.solo.Server

如果你有 Java 开发环境,可参考这里通过源码构建运行(视频演示教程请看这里)。

Docker 部署

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;

启动容器:

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=8080 --server_scheme=http --server_host=localhost --server_port=

  • 为了简单,使用了主机网络模式来连接主机上的 MySQL。

  • 使用 H2 Database

    docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \
        --env RUNTIME_DB="H2" \
        --env JDBC_USERNAME="root" \
        --env JDBC_PASSWORD="123456" \
        --env JDBC_DRIVER="org.h2.Driver" \
        --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \
        b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
  • 启动参数说明:

    • --listen_port:进程监听端口
    • --server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
    • --server_host:最终访问域名或公网 IP,不要带端口
    • --server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可

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

    日志配置

    默认通过 log4j2 将日志打印到标准输出流,可以通过 docker logs solo 进行查看。如果需要覆盖 log4j 配置,可通过挂载文件实现:

    --volume ~/log4j2.xml:/opt/solo/log4j2.xml

    挂载第三方皮肤

    如果需要使用第三方皮肤,可以挂载目录 skins,目录结构请参考原版 skins:

    --volume ~/skins/:/opt/solo/skins/

    版本升级

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

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

    Docker Compose

    请参考这里,感谢 @liumapp 提供。

    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 $http_host;
            proxy_set_header  X-Real-IP $remote_addr;
            client_max_body_size  10m;
        }
    }

    请务必配置

    proxy_set_header  Host $http_host;
    proxy_set_header  X-Real-IP $remote_addr;

    否则访问页面可能会出现“Latke 配置错误”或者样式异常;统计在线访客功能会不正常。

    📜 文档

    🏘️ 社区

    📄 授权

    Solo 使用 木兰宽松许可证, 第2版 开源协议。

    🙏 鸣谢


    初始化后

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

    信息配置

    • 博客基本信息:标题、子标题、SEO 信息
    • HTML head:可以配置脚本,比如百度统计
    • 公告:可以使用 HTML 和脚本进行配置
    • 页脚:主要用来放备案信息,也可以使用 HTML 和脚本进行配置

    签名档

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

    参数设置

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

    • 列表显示方式:仅标题/标题 + 摘要/标题 + 正文
    • 各种分页参数
    • 文章更新提示:启用后一旦某篇文章更新过,则会在文章标题处显示“有更新”的提示,并且排序靠前
    • 允许同步 GitHub 仓库:将文章数据自动导出到 GitHub 仓库,用于展示和备份

    导入 Markdown

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

    备份

    安全第一,血泪的教训 😢

    手动备份

    • H2:备份 home 目录下的 solo_h2 文件夹
    • MySQL:使用 MySQL 相关备份工具

    社区端备份

    可在工具 - 偏好设定 - 参数设置中勾选“备份所有文章到社区”,开启后将每隔 24 小时自动备份所有文章(包括草稿和加密文章)到社区,具体细节请参考 Solo 拉取 GitHub 仓库和自动备份

    GitHub 备份

    可在工具 - 偏好设定 - 参数设置中填写 GitHub token,填写后将每隔 24 小时自动备份公开文章(不包括草稿和加密文章)到你的 GitHub 仓库 solo-blog,具体细节请参考 solo-blog 仓库同步功能回来了

    其他一些特性

    多用户

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

    RSS/Atom/Sitemap

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

    • Atom: /rss.xml
    • RSS: /atom.xml

    不要用浏览器直接打开,请通过阅读器查看。另外,Solo 也能生成全站文章的 sitemap.xml。

    前台皮肤切换

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

    使用场景举例:

    • 在不安装 Solo 的情况下可以方便预览各个皮肤(在 Demo 上)
    • 方便二次开发时集成切换皮肤
    • 博主可以让访客体验到不同的效果,比如:这个皮肤好看?还是这个好看?
    1. 只有在首页( / )会取参数 skin=xxx
    2. 如果带有就记录到 Cookie 里面,如果带有 skin=default 或皮肤不存在则清空 Cookie
    3. 如果要切换成后台默认的皮肤,在首页带参 skin=default

    站外相关文章

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

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

    FAQ

    为什么要“捆绑”登录链滴社区账号?

    Solo 和 Pipe 的定位是 B3log 分布式社区的博客端节点,并不是通常意义上的独立博客,所以账号体系需要进行统一,否则带来的问题会很多,这也是一路下来探索的,具体经历细节请看这里

    在 Solo v3 之前一直是独立账号体系,但经过长时间验证效果并不理想:

    • 不方便,用户需要在社区端和博客端配置账号关联关系
    • 不安全,账号的关联关系需要双向验证,如果不验证账号归属,会被冒名

    这两个问题是矛盾的,所以为了解决它需要将账号在 B3log 网络中进行唯一化。一开始的设计方案是通过公私钥(类似区块链的钱包原理),但这个方案在现阶段过于复杂,用户使用门槛有点高所以暂时放弃了。公私钥的方案在星火项目里进行过测试验证,技术上应该没问题,以后的鱼塘项目可能会采用这个方案。

    所以再次重申一下,Solo 和 Pipe 是 B3log 分布式社区的博客端节点。举个最容易理解的例子,这就好比某些厂商的软件,没有这个厂商的账号是用不了的。打通其他网络的方案是在博客端或者社区端接入其他网络的账号,目前已经在链滴社区上接入 GitHub 登录(可在账号设置中绑定),Solo 可通过 GitHub token 来将文章同步到自己的仓库,避免整个 B3log 网络过度封闭内卷。

    最后,希望目前加入到 B3log 的用户是认可这个设计的,如果不认可的话其实就没必要加入使用了,节省自己时间同时也能保护 B3log。当然,不排除以后设计还会有所变化,欢迎参与思考讨论,谢谢。

    服务器内存太小?

    可考虑使用 Solo 的静态站点支持,本地写作完成后导出静态站点,发布 GitHub Pages 等服务。

    如果还是想使用动态博客的话,可使用内嵌的 H2 数据库代替 MySQL。但建议还是进行内存升级,然后使用 Docker 和 MySQL 部署,这样不仅可以通过更新镜像进行平滑升级,还能使用 MySQL 相关工具更方便地进行数据库运维。

    如何打 jar 包部署?

    请在 pom.xml 中搜索 maven-assembly-plugin 的注释进行配置即可。请注意:使用 jar 运行不支持:

    • 静态站点生成
    • 可能存在其他未知问题

    建议尽量不要打 jar 部署,服务器上请通过 Docker 部署。

    获取社区文件存储服务上传凭证异常?

    请参考这里进行配置。

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

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

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

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

    为什么在线访问计数一直都是 1?

    在线访问计数是通过访问者 IP 去重的,每 10 分钟定时刷新一次。如果用了反向代理,请在代理配置部分加入客户端地址标头。比如 NGINX 需要加入如下配置:

    proxy_set_header  X-Real-IP  $remote_addr;
    

    如何插入广告展位?

    可通过签名档、公告栏中插入 HTML、JS 代码来实现。

    如何放置备案信息?

    可通过在页脚配置中插入 HTML、JS 代码来实现。

    如何使用 jsDelivr CDN 来加速?

    启动时加入命令行参数:

    --static_server_scheme=https
    --static_server_host=cdn.jsdelivr.net
    --static_server_port=
    --static_path=/gh/88250/solo/src/main/resources

    请注意:

    • 以上配置仅支持内置皮肤,如果挂载了第三方皮肤的话请按需调整
    • 中国大陆地区可能无法访问 jsDelivr CDN

    Solo 会一直维护下去么?

    Solo 的第一个版本发布于 2010 年,永不断更 😼

    Solo 从第一版开始就支持平滑升级,从 v3.0.0 开始支持跨版本升级。在程序升级、数据兼容迁移方面我们做了很多工作。另外,Solo 还支持将数据导出成多种格式,所有的这些努力为的就是让大家能够免去后顾之忧,将精力更多放在创作和分享上。

    结语

    如果你在使用 Solo 过程中碰到问题或者有需求要提,欢迎跟帖,我们会在第一时间回复;如果你对 Solo 开发方面感兴趣,请参考 Solo 从设计到实现

    from https://github.com/88250/solo 

    (https://ld246.com/article/1579053576274 ,Solo 生成导出静态站点 )