概述
弃写博客断断续续已有一年之久,只因无法找回最原先的 CSDN 账号,损失惨重,即使重新注册,也没有了当初的那种热血澎湃的感觉。
机缘巧合,在基友的推荐下,看到了这款开源博客系统:Solo 。开源,私有化部署,皮肤,插件,管理......😍
那种惊艳的感觉,让我感觉又年轻了几岁😅。
所以,拒绝花里胡哨,从头开始吧。
天长地久有时尽,此恨绵绵无绝期。
Solo 介绍
-
小而美的博客系统,为未来而构建
-
Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。
Docker 部署方式
Docker 容器管理引擎的相关使用,请前往首页查看我的 CSDN 中心,有详细介绍。
我的环境:CentOS 7,MySql 8,2 核 4G1M
一、安装 Mysql
因为系统是私有化部署,相关的数据都是本地化存储使用的,所以部署 MySql 作为数据存储工具。
- 下载安装包
-
上传至服务器
-
解压压缩包
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
如果报错请安装相关组件: yum install -y xz
- 将解压的文件重命名 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文件下,授权所有的文件)
- 再次进入到/usr/local/mysql 目录下,创建 data 文件夹
mkdir data
- 初始化数据库,它会自动生成随机密码,请记录
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- 修改/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(拷贝文件到相关目录下,并重命名)
- 配置 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
- 注册服务
chkconfig --add mysql
如果没有此命令组件,请自行百度并配置
13.查看是否成功
- 编辑配置路径
vim /etc/ld.so.conf
#添加如下内容
/usr/local/mysql/lib
保存后退出 :wq (注:不会使用 vim 命令也请自行百度)
- 配置环境变量
vim /etc/profile
source /etc/profile
#添加如下内容:
#MYSQL ENVIRONMENT
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
- 登录并使用
# 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服务
- 使用 SqlYog 工具远程连接,查看是否成功
18.创建 Solo 系统使用的数据库
手动创建-库名
solo
,字符集使用utf8mb4
,排序规则utf8mb4_general_ci
二、Docker 配置
- 下载最新镜像
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
来查看。
访问即可。
三、nginx 反向代理,静态代理配置
-
安装 Nginx(过程简单,自行百度)
-
配置
- 反代
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;
}
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端口
}
}
这样我们就可以实现相关图标的访问
感谢浏览,
祝好。❤️
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于