申请云服务器(这里笔者选择腾讯云,使用学生套餐便宜)
选择系统(这里笔者建议使用自己熟悉的系统,如果你不熟悉linux可以跟随笔者选择的系统)
创建云服务器登录方式选择密码方式(方便上传文件)
配置创建好的云服务器安全组,配置如下
ssh -p 22 系统用户名@公网ip
# 例如
ssh -p 22 ubuntu@10.22.33.49
sudo apt-get install docker.io
sudo apt-get install nginx
sudo apt-get install mycli
sudo apt-get install vim
# 下载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/系统用户名
#登录云服务器,执行如下
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
1.安装有什么问题请留言