感谢 Solo,开源万岁。从无到有全记录。

本贴最后更新于 1851 天前,其中的信息可能已经沧海桑田

概述

弃写博客断断续续已有一年之久,只因无法找回最原先的 CSDN 账号,损失惨重,即使重新注册,也没有了当初的那种热血澎湃的感觉。
机缘巧合,在基友的推荐下,看到了这款开源博客系统:Solo 。开源,私有化部署,皮肤,插件,管理......😍
那种惊艳的感觉,让我感觉又年轻了几岁😅。
所以,拒绝花里胡哨,从头开始吧。

天长地久有时尽,此恨绵绵无绝期。

Solo 介绍

  1. 小而美的博客系统,为未来而构建

  2. Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

具体内容详见 https://hacpai.com/article/1492881378588

Docker 部署方式

Docker 容器管理引擎的相关使用,请前往首页查看我的 CSDN 中心,有详细介绍。
我的环境:CentOS 7,MySql 8,2 核 4G1M

一、安装 Mysql

因为系统是私有化部署,相关的数据都是本地化存储使用的,所以部署 MySql 作为数据存储工具。

  1. 下载安装包

image.png

  1. 上传至服务器

  2. 解压压缩包

tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

如果报错请安装相关组件: yum install -y xz

  1. 将解压的文件重命名 mysql,并移动到/usr/local 目录下
mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql  (重命名)
mv mysql /usr/local/ (将mysql移动到相关目录下)

5.进入到/usr/local 目录下,创建用户和用户组并授权

groupadd mysql  (创建用户组)
useradd -r -g mysql mysql  (创建用户)
chown -R mysql:mysql ./  (授权:进入到mysql文件下,授权所有的文件)
  1. 再次进入到/usr/local/mysql 目录下,创建 data 文件夹
mkdir data

image.png

  1. 初始化数据库,它会自动生成随机密码,请记录
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

image.png

  1. 修改/usr/local/mysql 当前目录登录用户
chown -R root:root ./
chown -R mysql:mysql data

9.创建配置文件

cd support-files/  (进入目录)
touch my-default.cnf    (创建文件:如果有此文件则不必创建)
chmod 777 ./my-default.cnf   (文件授权)    
cd ../   
cp support-files/my-default.cnf /etc/my.cnf(拷贝文件到相关目录下,并重命名)
  1. 配置 my.cnf
vim /etc/my.cnf
[mysqld]
 
character_set_server=utf8  #编码 默认无配置,可不加
#Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
 
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

 
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
log-error = /usr/local/mysql/data/error.log #错误日志存储目录
pid-file = /usr/local/mysql/data/mysql.pid
tmpdir = /tmp
port = 5186  #访问端口 默认配置3306 可自行修改
#lower_case_table_names = 1
# server_id = .....
# socket = .....
#lower_case_table_names = 1
max_allowed_packet=32M  #查询数据包大小,默认1kb,根据查询数据量自行修改
default-authentication-plugin = mysql_native_password
#lower_case_file_system = on
#lower_case_table_names = 1
log_bin_trust_function_creators = ON
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

查看日志代码:cat /usr/local/mysql/data/error.log

11.设置开机自启

cd support-files/  (进入相关目录)
cp mysql.server /etc/init.d/mysql  (复制文件)
chmod +x /etc/init.d/mysql 
  1. 注册服务
chkconfig --add mysql

如果没有此命令组件,请自行百度并配置

13.查看是否成功
image.png

  1. 编辑配置路径
vim /etc/ld.so.conf
#添加如下内容
/usr/local/mysql/lib

image.png
保存后退出 :wq (注:不会使用 vim 命令也请自行百度)

  1. 配置环境变量
vim /etc/profile    
source /etc/profile  
#添加如下内容:    
#MYSQL ENVIRONMENT
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

image.png

  1. 登录并使用

image.png


# mysql -uroot -p #进入数据库
> use mysql;#进入数据库
> select host, user, authentication_string, plugin from user;#查看用户信息
> GRANT ALL ON *.* TO 'root'@'%';#授权root用户可以远程登陆
> flush privileges;#立即生效
> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Kuaigui2019!';#修改root用户密码
> FLUSH PRIVILEGES;#立即生效
> exit;#退出
# service mysql restart#重启mysql服务

image.png

  1. 使用 SqlYog 工具远程连接,查看是否成功

image.png

18.创建 Solo 系统使用的数据库

手动创建-库名 solo,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci

二、Docker 配置

  1. 下载最新镜像
docker pull b3log/solo

2.启动容器

docker run --detach --name solo --network=host \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="用户名" \ --env JDBC_PASSWORD="密码" \ --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ --env JDBC_URL="jdbc:mysql://localhost:端口/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \ 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 来查看。
访问即可。
image.png

三、nginx 反向代理,静态代理配置

  1. 安装 Nginx(过程简单,自行百度)

  2. 配置

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

    server {
    listen       80;
    server_name  localhost; # 博客域名

    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;
    }

image.png
Nginx 默认 80 端口反向代理到 8080 访问端口

  • 静态代理

系统中有些地方需要放一些图片,以私有化为目的,所以图片我们也要放到服务器上,但是如何统一访问路径呢?Nginx 静态代理慢慢告诉你。

首先:上传图片到指定目录下(我是/usr/images/)
然后:配置 Nginx 访问路径
最后进行访问。

#静态代理配置
location /sdkImages {   #解析含有字段请求
      expires 24h;  
        alias /usr/images/;#指定图片存放路径  
        #access_log /usr/local/websrv/nginx-1.9.4/logs/images.log;#日志存放路径  
        proxy_store on;  
        proxy_store_access user:rw group:rw all:rw;  
        proxy_temp_path     /usr/images/;#图片访问路径  
        proxy_redirect     off;  
        proxy_set_header    Host 127.0.0.1;  
        client_max_body_size  10m;  
        client_body_buffer_size 1280k;  
        proxy_connect_timeout  900;  
        proxy_send_timeout   900;  
        proxy_read_timeout   900;  
        proxy_buffer_size    40k;  
        proxy_buffers      40 320k;  
        proxy_busy_buffers_size 640k;  
        proxy_temp_file_write_size 640k;  
        if ( !-e $request_filename)  
        {  
           proxy_pass http://127.0.0.1;#默认80端口  
        }   
    } 

image.png
这样我们就可以实现相关图标的访问
image.png
image.png

感谢浏览,
祝好。❤️

欢迎来到这里!

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

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