Solo 博客搭建总结

本贴最后更新于 309 天前,其中的信息可能已经渤澥桑田

第一次使用云服务器部署项目, 也算是一次学习, 还挺有意思, 有了博客之后自己也会积极学习 做总结吧? 希望自己不要三分钟热度

本次是参考社区一篇大佬的文章, 大家可以去看下参考资料, 我的应该是细致补充版, 这次算是对学过的知识做一次总结, 不过程序员不就是给出大概步骤, 然后自己在解决问题的过程慢慢成长吗?

服务器

  1. 购买腾讯云服务器 (学生套餐安排上)
    QQ 截图 20190728112609.png

  2. 选择系统 (跟着大佬选的, 之前没使用过其他系统)
    云服务器系统 26f0d84d.png
    我在这里直接加 8 块钱, 买了一年的 cn 域名, 喜欢其他的小伙伴也可以自行去选购

  3. 创建云服务器登录方式选择密码方式 (方便上传文件)
    22.png
    1.png
    因为我直接点了登录, 但是我发现我不知道初始密码, 我就直接重置了密码
    填写新密码后, 会提示让你重启服务器, 记得勾选强制重启

  4. 配置好安全组规则
    333.png
    444.png
    记得把设置好的规则分配给服务器

域名

  1. 实名认证 (不实名认证无法解析域名, 听说需要备案, 但是我的没有备案也可以使用)
    555.png
    我的已经过了, 正常这里有链接可点进去实名制

安装服务

1.登录云服务器 (Mac 直接打开终端, 我用的是 Windows 需要安装软件 Secure CRT)

ssh -p 22 云服务器用户名@云服务器公网IP
# 例如
ssh -p 22 ubuntu@10.22.33.49

2.安装 Docker

sudo apt-get install docker.io

3.安装 Nginx

sudo apt-get install nginx

4.安装 VIM

sudo apt-get install vim

5.使用 Docker 安装 Solo 和 MySQL

# 下载 MySQL 镜像
sudo docker pull mysql
# 启动镜像 MYSQL_ROOT_PASSWORD=mysql的root密码
docker run -d --name mysql-5.7 --network=host -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root  mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# 登录 MySQL
mysql -uroot -p
# 创建数据库
CREATE DATABASE solo DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ciutf8mb4_general_ci
# 退出 MySQL
quit

# 下载 Solo 博客镜像
# JDBC_PASSWORD (MySQL的密码) 
# listen_port (启动端口) 
# server_scheme (访问协议) 
# server_host (请求的地址) 
# server_port (请求的端口)
# server_port 如果你是云服务器配置 记得要留空 这算是个小坑
docker run --detach --name solo --network=host \
        --env RUNTIME_DB="MYSQL" \
        --env JDBC_USERNAME="root" \
        --env JDBC_PASSWORD="root" \
        --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" \
        b3log/solo --listen_port=8080 --server_scheme=https --server_host=LilNn99.cn --server_port=
# 查看启动结果 (这种方式只可看到运行状态下的服务)
sudo docker ps
# 结果如下就表示启动成功 (STATUS 都为UP表示启动成功)

QQ 截图 20190728125915.png

配置域名和代理

1.申请 SSL 证书 (腾讯云有提供免费证书一年)
1.png
2.png
申请后, 会让你去解析你的域名, 可以先按照官方文档配置, 等你的实名认证过了以后, 就会自动下发证书, 关注微信公众号是有推送提醒的

2.下载 SSL 到本地, 并解压

3.上传 SSL 到云服务器 (Windows 推荐使用图形化工具 WinScp)

scp -r 本地SSL文件目录 云服务器用户名@云服务器公网IP:/home/云服务器用户名

此命令使用时, 遇到不少坑点, 我绕开了, 比如, 这里的本地 SSL 文件夹目录 我当时是放在了桌面, 当时写的命令, C:\Users\LeeAmoreZmy\Desktop\SSL 但是提示错误信息 ssh: Could not resolve hostname c: Name or service not known 后来 Google 到的解决方式是忽略 c 盘盘符, 之后又出现找不到本地目录的错误提示 UsersLeeAmoreZmyDesktopwww.lilnn99.cnNginx: No such file or directory, 当时参考的解决方案 附上链接 大家可以去参考下, 有遇到此类问题的小伙伴, 也可以留言告诉我怎么解决的, 感谢!

4.配置 Nginx

# 登录云服务器, 执行如下
sudo vim /etc/nginx/sites-enabled/default
# 将文本里面的内容全删除,拷贝如下文本内容  
# 修改server_name为自己的域名  
# 修改ssl_certificate和ssl_certificate_key的文件路径  
# 修改proxy_pass为自己的域名和solo启动端口
server {
        listen    443 ssl;
        server_name www.LilNn99.cn,LilNn99.cn;
        ssl_certificate  /home/ubuntu/Nginx/1_www.lilnn99.cn_bundle.crt;
        ssl_certificate_key /home/ubuntu/Nginx/2_www.lilnn99.cn.key;

        location / {
                proxy_pass https://www.LilNn99:8080;
        }
}

server {
        listen     80;
        listen     [::]:80;
        server_name www.LilNn99.cn,LilNn99.cn;
        return 301 https://$host$request_uri;
}

# 保存并退出后重启nginx
nginx -s reload

调试

4.png

进行到这一步时, 遇到了 Latke 配置错误, 可看官方文档

安装如遇请留言, 一起探讨学习

  • Solo

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

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

    1162 引用 • 8915 回帖 • 634 关注
  • 安装

    你若安好,便是晴天。

    99 引用 • 1137 回帖 • 1 关注
回帖
请输入回帖内容...