从零开始搭建个人博客

本贴最后更新于 1045 天前,其中的信息可能已经时异事殊

前言

由于我上次不小心导致我服务器数据被清空,并勒索我比特币。所以我把服务器重置了。重新整了下博客网站,这里记录下,下次换服务器的时候遇到问题就方便多了。

image-20220502174757329

配置信息

  1. 这里是基于 solo 搭建的一个个人博客
  2. 服务器是使用的阿里云的服务器,系统是 Centos 8
  3. MySQL 使用的是 8.0 版本
  4. 关于服务器购买和连接不懂的可以看 几分钟教会你从购买服务器到远程连接 这篇文章。

准备阶段

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

  1. 下载 mysql yum 仓库的 RPM 包:这里我们也可以直接去官网下载,然后拷贝到我们的服务器里。点击去官网下载

    wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
  2. 将下载好的安装包挂载到本地:(注意后面的文件,文件名按照下载的包名为准)

    yum localinstall mysql80-community-release-el8-1.noarch.rpm
  3. 禁用 centos8.0 自带的 yum mysql 模块

    yum module disable mysql
  4. 安装 mysql:

    yum install mysql-community-server
  5. mysql 的相关启动命令

    启动服务:systemctl start   mysqld 停止服务:systemctl stop     mysqld 重启服务:systemctl restart mysqld 查看服务状态:systemctl status mysqld 设置mysql开机自启: systemctl enable mysqld

MySQL 新建用户并设置远程连接

  1. 启动 mysql 之后,我们查看 mysql 安装时生成的随机密码,然后登陆 mysql

    grep 'temporary password' /var/log/mysqld.log
  2. 修改我们的密码,如果新密码因为太简单而报错,这边建议改成复杂点的密码,不然密码太简单挺危险的。如果就想用简单的密码,看第 3 条

    ALTER USER 'root' @'localhost' IDENTIFIED BY '新密码';
  3. 修改 MySQL 密码验证规则:

    • MySQL5.7 版本:
      mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1;
    • MySQL8.0 版本:
      1. 先使用一个复杂的密码进去
      2. 运行下面的命令
        mysql> set global validate_password.policy=0; mysql> set global validate_password.length=1;
      3. 重新设置密码
        ALTER USER 'root' @'localhost' IDENTIFIED BY '新密码';
  4. 创建新用户,并且修改访问权限

    # 创建用户 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
  5. 测试是否能远程连接,使用 navicat 测试,测试完毕之后 MySQL 准备工作完成!
    image-20220503170029638

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**

  1. 使用 docke 拉取 solo 的最新镜像
    docker pull b3log/solo
  2. 启动容器
    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=
  3. 启动之后配置 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; }
  4. 此时我们访问自己的域名www.test.com** 就可以跳转到 solo 的主页了。**

注意事项!!!

  1. 服务器的防火墙不用的端口记得关闭
  2. 数据库密码不要太简单,因为很容易被黑客用脚本暴力试出来
  3. 每写一篇文章记得备份,留个后手
  4. 如果使用了 redis 的话,记得设置上密码,或者修改下默认的端口,否则服务器有很大几率被黑
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1439 引用 • 10067 回帖 • 491 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖

相关帖子

欢迎来到这里!

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

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