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

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

概述

弃写博客断断续续已有一年之久,只因无法找回最原先的 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

感谢浏览,
祝好。❤️

相关帖子

欢迎来到这里!

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

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