总结:不通过PM2后台运行halo(似乎是因为PM2会被强停)
不装pm2直接screen后台运行+定时任务
(已经装过pm2的也能直接screen命令运行+定时任务)
另外,我用serv00的孪生兄弟ct8搭建的halo 运行内存只占用400出头是serv00的一半
1.开放运行程序权限
登陆面板找到 Additional services 选项,将 Run your own applications 状态改为Enabled
2.为域名开放端口
面板左侧找到 Port reservation 选项,添加一个端口随机tcp即可
3.创建一个mysql数据库
左侧找到MySQL,创建一个数据库,记住用户名与密码
4.添加自己的域名
左侧找到 WWW websites 选项,添加域名,高级选项选择proxy, Proxy port选择开放的端口,https与dns不要勾选。完成之后点击 Manage SSL certificates 将其中一个IP解析到你的域名,完成之后点击 manage 创建证书。回到域名列表点击manage-Details 将四个开关开启。
5.登录ssh下载安装包
进入域名文件夹
cd domains/你的域名/public_html
下载jar包
release_info=$(curl -s https://api.github.com/repos/halo-dev/halo/releases/latest)
jar_url=$(echo "$release_info" | jq -r '.assets[] | select(.name | endswith(".jar")) | .browser_download_url')
curl -L "$jar_url" -o halo.jar
(下载出错的可以在面板里找到文件管理在域名文件夹上传halo的jar包)
新建文件夹并配置内容
mkdir -p .halo2
cat > .halo2/application.yaml << EOF
server:
port: 你在面板中放行的端口
# Response data gzip.
compression:
enabled: false
spring:
#sql:
# init.platform: mysql
r2dbc:
url: r2dbc:pool:mysql://数据库地址:3306/数据库名
username: 数据库用户名
password: 数据库密码
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: level
EOF
新建运行脚本
cat > run.sh << EOF
#!/bin/bash
export HALO_WORK_DIR="$PWD/.halo2"
export HALO_EXTERNAL_URL="https://你的域名"
exec java17 -server -Xms128m -Xmx256m -jar -Duser.timezone=Asia/Shanghai $PWD/halo.jar --spring.config.additional-location=$PWD/.halo2/application.yaml
EOF
测试运行
chmod +x run.sh && ./run.sh
没问题后终止运行按Ctrl + c
6.设置后台运行并添加定时任务
完成上述操作后执行以下命令
screen -S halo /home/用户名/domains/你的域名/public_html/run.sh
添加定时任务:面板中找到Cron jobs , 添加新任务,Specify time选择 after reboot , Command 中填写命令即可。