前言
由于我上次不小心导致我服务器数据被清空,并勒索我比特币。所以我把服务器重置了。重新整了下博客网站,这里记录下,下次换服务器的时候遇到问题就方便多了。
配置信息
- 这里是基于 solo 搭建的一个个人博客
- 服务器是使用的阿里云的服务器,系统是 Centos 8
- MySQL 使用的是 8.0 版本
- 关于服务器购买和连接不懂的可以看 几分钟教会你从购买服务器到远程连接 这篇文章。
准备阶段
yum
镜像修改
- 因为 centos 官方停止维护 yum 镜像源,所以我们要修改为阿里云的镜像
//进入镜像源
cd /etc/yum.repos.d
//删除原来的镜像
rm -f *.repo
//使用阿里云的
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
//缓存安装包
yum makecache
yum 源更新
yum clean all
yum makecache
yum -y update
MySQL
yum 安装 MySQL
-
下载 mysql yum 仓库的 RPM 包:这里我们也可以直接去官网下载,然后拷贝到我们的服务器里。点击去官网下载
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
-
将下载好的安装包挂载到本地:(注意后面的文件,文件名按照下载的包名为准)
yum localinstall mysql80-community-release-el8-1.noarch.rpm
-
禁用 centos8.0 自带的 yum mysql 模块
yum module disable mysql
-
安装 mysql:
yum install mysql-community-server
-
mysql 的相关启动命令
启动服务:systemctl start mysqld 停止服务:systemctl stop mysqld 重启服务:systemctl restart mysqld 查看服务状态:systemctl status mysqld 设置mysql开机自启: systemctl enable mysqld
MySQL 新建用户并设置远程连接
-
启动 mysql 之后,我们查看 mysql 安装时生成的随机密码,然后登陆 mysql
grep 'temporary password' /var/log/mysqld.log
-
修改我们的密码,如果新密码因为太简单而报错,这边建议改成复杂点的密码,不然密码太简单挺危险的。如果就想用简单的密码,看第 3 条
ALTER USER 'root' @'localhost' IDENTIFIED BY '新密码';
-
修改 MySQL 密码验证规则:
- MySQL5.7 版本:
mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1;
- MySQL8.0 版本:
- 先使用一个复杂的密码进去
- 运行下面的命令
mysql> set global validate_password.policy=0; mysql> set global validate_password.length=1;
- 重新设置密码
ALTER USER 'root' @'localhost' IDENTIFIED BY '新密码';
- MySQL5.7 版本:
-
创建新用户,并且修改访问权限
# 创建用户 CREATE user 'solo'@'%' IDENTIFIED BY '设置solo用户的密码'; #授予solo用户,solo数据库下所有表的所有权限 GRANT ALL PRIVILEGES ON *.* TO 'solo.*' @'%' WITH GRANT OPTION; #刷新权限 FLUSH PRIVILEGES;
- GRANT:赋权命令
- ALL PRIVILEGES:当前用户的所有权限
- ON:介词
- 当前用户对所有数据库和表的相应操作权限
- TO:介词
- ‘root’@’%’:权限赋给 root 用户,所有 ip 都能连接
- IDENTIFIED BY ‘123456’:连接时输入密码,密码为 123456
-
测试是否能远程连接,使用 navicat 测试,测试完毕之后 MySQL 准备工作完成!
nginx
yum 安装 nginx
#安装
yum install nginx
systemctl enable nginx.service # 让 nginx 开机自启
systemctl disable nginx.service # 取消开机自启
systemclt start nginx.service # 立即启动 nginx
systemclt restart nginx.service # 重启 nginx
systemclt stop nginx.service # 停止 nginx
systemclt reload nginx.service # 重新加载配置文件
docker
按照官网文档安装步骤:点击进入官网
solo 搭建
假设我们的域名是www.test.com** 使用的端口号是 8848**
- 使用 docke 拉取 solo 的最新镜像
docker pull b3log/solo
- 启动容器
docker run --detach --name solo --network=host \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="solo" \ --env JDBC_PASSWORD="你的密码" \ --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \ b3log/solo --listen_port=8848 --server_scheme=https --server_host=www.test.com --server_port=
- 启动之后配置 nginx 反向代理:进入 /etc/nginx/conf.d 下的 nginx 配置文件,修改配置如下即可
upstream backend { server localhost:8848; # Solo 监听端口 } server { listen 443 ssl; # 端口号 server_name test.com; # 绑定域名 #记得换上自己的证书,这个自己去申请有免费的,下载nginx的,然后放到自己服务器中 ssl_certificate /etc/nginx/certs/www.test.com.pem; ssl_certificate_key /etc/nginx/certs/www.test.com.key; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5"; ssl_prefer_server_ciphers on; access_log off; location / { proxy_pass http://backend$request_uri; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; } } # 将 http 协议跳转到 https server { listen 80; server_name test.com; rewrite ^(.*)$ https://$host$1 permanent; }
- 此时我们访问自己的域名www.test.com** 就可以跳转到 solo 的主页了。**
注意事项!!!
- 服务器的防火墙不用的端口记得关闭
- 数据库密码不要太简单,因为很容易被黑客用脚本暴力试出来
- 每写一篇文章记得备份,留个后手
- 如果使用了 redis 的话,记得设置上密码,或者修改下默认的端口,否则服务器有很大几率被黑
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于