概述
弃写博客断断续续已有一年之久,只因无法找回最原先的 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端口 } }
这样我们就可以实现相关图标的访问
感谢浏览,
祝好。❤️
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于