解决serv0搭建halo报错502

总结:不通过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 中填写命令即可。

@“YGKING”#p57476 好的,感谢

[[21],[2]]