solo 博客搭建 2019 年版本

本贴最后更新于 1904 天前,其中的信息可能已经时移世改

序言

solo 博客系统是用 java 这类的语言开发的博客程序,在这很感谢 hacpai。而对于一个经常接触这类博客系统的技术人员,会安装这个博客系统,但对于经常自己用面板或者一键脚本安装环境的爱好者来说,可能会遇到一定的问题,所以说本教程就是给想一次性就成功安装体验这个博客系统的爱好者,能以从安装操作系统开始在什么地方遇到,怎么解决,可能会遇到的问题一一列举,一一回答出来,能按照步骤来做,有百分之 90 可以性成功安装,以少走弯路为标准,当然因为环境的苛刻要求,可能有一定的差异,也可以本文做一个标准以来参考之。

相关环境

  1. 阿里云轻量级服务器
  2. centos7
  3. solo 博客安装包
  4. java 安装包
  5. MySQL

相关下载

创建目录并下载 solo 程序,值得关注的是 solo 博客程序的发布搬到 github 上了,以前是百度网盘发布的。

mkdir /home/solo
cd /home/solo
wget https://github.com/b3log/solo/releases/download/v2.9.7/solo-2.9.7.war​

java 相关

centos7 的 java 环境搭建其实很简单在这就解压,设置环境变量就 ok 了。安装教程
还有一种方式就是通过 yum 安装的方式我也不知道这两种安装方式的优劣,不过都可行,下面命令是 yum 安装方式

yum install java-1.8.0-openjdk -y​

java 官网下载地址

MySQL 安装

mysql 的安装没有什么不一样的注意最后一个命令开机自启多了一个 d 我就是被这个坑了好久

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install -y  mysql-server
systemctl restart mysql.service
systemctl enable mysqld.service

MySQL 相关操作需要注意的 mysql 安装后 root 用户没有密码的所以 嘿嘿嘿 按照相关命令一步一步的操作就 ok 了

msyql -u root
create user 'blog'@'localhost' identified by 'LTAIIJoeRp';
CREATE DATABASE IF NOT EXISTS solo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on `solo`.* to 'blog'@'localhost' identified by 'LTAIIJoeRp';
flush privileges;

解释一下上面的操作默认你在用 root 这个系统用户操作的

  1. 登录 mysql 数据库用 root 用户来登录,注意哦这个是 MySQL 数据库 root 用户,不是系统的,默认没有密码。
  2. 创建一个 blog 这个用户并密码密码设置为 LTAIIJoeRp 并只需要本地登录
  3. 创建一个叫 solo 的数据库,这可不是随便创建的你可以看到很多属性
  4. 赋予 solo 这个数据库的所有权给 blog 这个数据库用户
  5. 刷新权限

解压 solo 博客安装包并进入目录

jar -xvf solo-2.9.7.war
cd solo

solo 程序配置篇,这是一个很重要的步骤

解释一下旧版的安装,旧版默认是 solo 自带的一个数据库 H2 这个数据库所以不需要安装 mysql 就可以起动起
但最新版本把这个的配置注释了,默认用 MySQL 来连接,这样如果按照 GitHub 上的说明文件下载下来后解压启动是不行的。

  1. 用户为 blog
  2. 密码为 LTAIIJoeRp
  3. 数据库为 solo

需要配置的有 2 个文件

WEB-INF/classes/latke.properties
WEB-INF/classes/local.properties
  1. latke.properties 文件是配置域名没有域名就 ip 地址不然的话不能正确加载静态资源
  2. local.properties 配置数据库的

修改 latke.properties 文件

vim WEB-INF/classes/latke.properties

#### Server ####
# Browser visit protocol
serverScheme=http
# Browser visit domain name
serverHost=clul.cn     #要么域名要么ip地址这个是一定要修改的
# Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT!
serverPort=8080         # 选修,启动端口


latke

修改 local.properties 文件

vim WEB-INF/classes/local.properties
#### H2 runtime ####
#runtimeDatabase=H2
#jdbc.username=root
#jdbc.password=
#jdbc.driver=org.h2.Driver
#jdbc.URL=jdbc:h2:~/solo_h2/db
#jdbc.pool=h2
 
#### MySQL runtime ####
runtimeDatabase=MYSQL
jdbc.username=blog  # 数据库用户
jdbc.password=LTAIIJoeRp # 数据库密码
jdbc.driver=com.mysql.jdbc.Driver     ↓到没这就是数据库
jdbc.URL=jdbc:mysql://localhost:3306/solo?useUnicode=yes&characterEncoding=utf8
jdbc.pool=druid

local

后续启动程序

到现在我们已经配置好程序了,就开始启动吧默认在 /hmoe/solo 这个目录执行的命令
前台启动

java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter

后台启动

	
nohup java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter &

后言

默认关闭了防火墙

  • Solo

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

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

    1424 引用 • 10041 回帖 • 469 关注
  • 安装

    你若安好,便是晴天。

    128 引用 • 1183 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 感谢分享!

    PS v2.9.7 配置中默认 MySQL 那个是发布打包时候的错误,后续版本默认还是 H2 :)

    2 回复
  • GItmoe 1
    作者

    感谢 D 大的回复,起因是我昨天搭建博客的时候按照原来的教程居然不行,昨天在社区求助的时候,还是你帮忙看日志发现初始化错误,发现数据库没链接,最后进数据库配置文件看,H2 居然没有默认被注释了。程序更新后我及时修改这个安装教程。

  • someone38063

    我想问一下 solo 的日志在哪看啊

    1 回复
  • GItmoe
    作者

    在 solo 目录下,就是你解压的目录有一个 solo.log 文件就是日志

    1 回复
  • d284476422

    学习一下

  • hugo

    D 大,不是说数据库初始化的 bug 修复了吗?2.9.7 还有这个问题
    [ERROR]-[2019-01-30 10:45:44]-[org.b3log.latke.repository.jdbc.JdbcRepository:419]: Get failed
    java.sql.SQLSyntaxErrorException: Table 'solo.b3_solo_option' doesn't exist
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:975)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1025)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
    at org.b3log.latke.repository.jdbc.util.JdbcUtil.queryJson(JdbcUtil.java:159)
    at org.b3log.latke.repository.jdbc.util.JdbcUtil.queryJsonObject(JdbcUtil.java:112)
    at org.b3log.latke.repository.jdbc.JdbcRepository.get(JdbcRepository.java:417)
    at org.b3log.latke.repository.AbstractRepository.get(AbstractRepository.java:134)
    at org.b3log.solo.repository.OptionRepository.get(OptionRepository.java:74)

    1 回复
  • 初始化之前目前还是会报这个,是正常现象 😂

    1 回复
  • hugo

    启动后表还是没建成功哦

  • Jinghaha

    表未创建成功 +1,最新版本 2.9.9 的

  • someone38063

    Initialize Solo error: java.sql.SQLException: Incorrect string value: '\xE4\xB8\x80\xE6\xAC\xBE...' for column 'optionValue' at row 1
    初始化显示这个是不是要改编码啊image.png

    1 回复
  • 字符集使用 utf8mb4,排序规则 utf8mb4_general_ci

    2 回复
  • someone38063

    是要修改 my.cnf 还是 local.prop 中的 jdbc.URL

  • someone38063

    谢谢,已经找到了

  • someone38063

    image.png
    初始化一段时间显示image.png

    1 回复
  • MySQL 数据库版本有点老么?仅支持 5.7 以上版本,建议用最新版。

    1 回复
  • someone38063

    image.png
    我重新建了一个表,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci
    jdbc.URL 默认的没有更改
    image.png
    初始化
    image.png
    image.png

    1 回复
  • 不用建表啊,手动建库就行,表会自动生成的。

    1 回复
  • someone38063

    说错了...是建的库
    jdbc.URL 还需要改吗

    1 回复
  • 参数不用改,用户名密码连接地址按需修改。

请输入回帖内容 ...