Solo 开发环境搭建详细说明(用 MySQL8 数据库,对 Solo 开发指南的环境搭建的补充)

本贴最后更新于 2007 天前,其中的信息可能已经事过境迁

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
maven.png
右键点击 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/ 登录系统,初始化博客,大功告成。

  1. 初始化.png

  1. github 认证.png

  1. 我的博客.png

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • ghx862287905

    大佬,请问下 solo 项目访问成功 ,但是 到了 Started Jetty Server 之后,没办法退出去做别的事情吗,还有我的 xshell 自动断联的话,项目为啥访问不到了呢

    1 回复
  • 其他回帖
  • 最新版已经没有用 Jetty 了,请参考开发指南进行搭建。

  • yanxingangsun
    作者

    给你看看我启动 solo 的最后打印信息,跟你的差不多嘛。

    [WARN ]-[2019-06-26 21:53:45]-[org.b3log.latke.Latkes:609]: !!!!Runtime mode is [DEVELOPMENT], please make sure configured it with [PRODUCTION] in latke.properties if deployed on production environment!!!!
    [INFO ]-[2019-06-26 21:53:47]-[org.b3log.solo.util.Markdowns:135]: [markdown-http] is not available, uses built-in [flexmark] for markdown processing. Please read FAQ section in user guide (https://hacpai.com/article/1492881378588) for more details.
    [INFO ]-[2019-06-26 21:53:47]-[org.b3log.solo.SoloServletListener:99]: Solo is booting [ver=3.6.2, servletContainer=jetty/9.4.12.v20180830, os=Windows 10, isDocker=false, markdownHttpAvailable=false, pid=8436, runtimeDatabase=H2, runtimeMode=DEVELOPMENT, jdbc.username=root, jdbc.URL=jdbc:h2:~/solo_h2/db;MODE=MYSQL]
    [INFO ]-[2019-06-26 21:53:47]-[com.zaxxer.hikari.HikariDataSource:110]: HikariPool-1 - Starting...
    [INFO ]-[2019-06-26 21:53:48]-[com.zaxxer.hikari.HikariDataSource:123]: HikariPool-1 - Start completed.
    pluginDirPaths:  [/plugins/kanbanniang/, /plugins/list/, /plugins/symphony-interest/]
    defaultClassesFileDirURL : /plugins/kanbanniang/classes 目录不存在,插件加载失败!
    defaultClassesFileDirURL : /plugins/list/classes 目录不存在,插件加载失败!
    defaultClassesFileDirURL : /plugins/symphony-interest/classes 目录不存在,插件加载失败!
    [INFO ]-[2019-06-26 21:53:48]-[org.b3log.solo.SoloServletListener:138]: Solo is running
    Started o.e.j.m.p.JettyWebAppContext@60aa431{/,file:///D:/%E4%B8%AA%E4%BA%BA%E7%9B%B8%E5%85%B3/%E7%A0%81%E4%BA%91%E9%A1%B9%E7%9B%AE/%E5%85%B6%E5%AE%83%E9%A1%B9%E7%9B%AE/solo/src/main/webapp/,AVAILABLE}{file:///D:/%E4%B8%AA%E4%BA%BA%E7%9B%B8%E5%85%B3/%E7%A0%81%E4%BA%91%E9%A1%B9%E7%9B%AE/%E5%85%B6%E5%AE%83%E9%A1%B9%E7%9B%AE/solo/src/main/webapp/}
    Started ServerConnector@627c6e26{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
    Started @41364ms
    Started Jetty Server
    

    你打开网页试试,我的如下:
    a.png

  • yanxingangsun
    作者

    不用,只要运行一次 nohup mvn jetty:run & 命令,后台就处于运行状态,那么随时都可以通过浏览器访问博客了。

  • 查看全部回帖