服务器
-
申请云服务器(这里笔者选择腾讯云,使用学生套餐便宜)
-
选择系统(这里笔者建议使用自己熟悉的系统,如果你不熟悉 linux 可以跟随笔者选择的系统)
-
创建云服务器登录方式选择密码方式(方便上传文件)
-
配置创建好的云服务器安全组,配置如下
申请域名
- 查询域名
- 购买域名(购买完域名,需要备案才能解析和访问)
- 备案域名(备案周期在 30 天左右)
安装服务
- 登录服务器(mac 直接打开终端,Windows 系统需要安装软件 Secure CRT)
ssh -p 22 系统用户名@公网ip # 例如 ssh -p 22 ubuntu@10.22.33.49
- 安装 docker
sudo apt-get install docker.io
- 安装 nginx
sudo apt-get install nginx
- 安装 mycli(命令行操作 mysql 的智能提示工具)
sudo apt-get install mycli
- 安装 vim
sudo apt-get install vim
- 使用 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
mycli
# 如果登录提示如下错误
# 执行如下即可 export LC_ALL=C.UTF-8 export LANG=C.UTF-8 # 创建数据库 CREATE DATABASE solo DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci # 退出mycli工具 quit # 下载solo博客镜像 sudo docker pull b3log/solo # 启动solo镜像 # JDBC_PASSWORD(mysql的密码) # listen_port(启动端口) # server_scheme(访问协议) # server_host(请求的地址) # 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=adongs.com --server_port=80 # 查看启动结果 sudo docker ps # 结果如下就表示启动成功(STATUS 都为UP表示启动成功)
配置域名和代理
-
申请 SSL(笔者在腾讯云申请的免费 SSL,第三方免费 SSL)
-
下载 SSL 到本地,并解压
-
上传 SSL 到云服务器
scp -r SSL文件目录 系统用户名@公网i:/home/系统用户名
- 配置 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.xxx.com,xxx.com; ssl_certificate /etc/nginx/ssl/xxx.crt; ssl_certificate_key /etc/nginx/ssl/xxx.key; location / { proxy_pass http://www.xxx.com:8080; } } server { listen 80; listen [::]:80; server_name www.xxx.com,xxx.com; return 301 https://$host$request_uri; } # 保存并退出后重启nginx nginx -s reload
调试
1.打开自己的域名如下
配置自动更新
1.创更新脚本
docker-restart-solo.sh
# # Solo docker Update and restart scripts # # The script is added to the crontab # # 注意要修改配置 # JDBC_PASSWORD(mysql的密码) # JDBC_URL(mysq连接地址) # listen_port(启动端口) # server_scheme(访问协议) # server_host(请求的地址) # server_port(请求的端口) # docker pull b3log/solo docker stop solo docker rm solo docker run --detach --name solo --network=host \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="root" \ --env JDBC_PASSWORD="123456" \ --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=adongs.com --server_port=80
2.修改脚本权限
#最后是你的脚本绝对路径 sudo chmod 744 /opt/docker-restart-solo.sh
3.加入 crontab
# ubuntu默认没有开启cron日志记录,需要开启 # 修改rsyslog sudo vim /etc/rsyslog.d/50-default.conf #将cron前面的注释符去掉 cron.* /var/log/cron.log #编辑crontab crontab -e #在最后一行加入如下内容(最后是你脚本的绝对路径),每天凌晨3点执行脚本 * 3 * * * /opt/docker-restart-solo.sh # control + X 退出,选择Y保存,查看定时任务 crontab -l
相关资料
感谢
B3log 开源社区
问题
安装有什么问题请留言
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于