阿里云ECS 2核3G Debian12.6 + 宝塔9.x 已装Nginx1.26/PHP8.2/MySQL8.0/Redis7.4,再装Casnode论坛完整避坑教程(附Casdoor统一认证) - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

阿里云ECS 2核3G Debian12.6 + 宝塔9.x 已装Nginx1.26/PHP8.2/MySQL8.0/Redis7.4,再装Casnode论坛完整避坑教程(附Casdoor统一认证)

好不容易把阿里云ECS折腾到Debian 12.6,又花了半天装好宝塔9.x全家桶(Nginx1.26 + PHP8.2 + MySQL8.0 + Redis7.4),结果想再装个Casnode论坛,发现官方文档写得跟天书一样,Docker党嫌麻烦,手动党又容易踩坑?别慌,这篇就是给已经装好宝塔的你准备的人类看得懂的Casnode部署教程,全程吐槽式讲解,保证跟着做就能跑起来。


一、先搞清楚:Casnode到底是个啥?

Casnode是个长得跟V2EX一毛一样的Golang+React论坛,优点是:

  • 天生高并发,阿里云2核3G也能顶住
  • 自带Casdoor统一认证,支持微信/QQ/Github登录
  • Markdown原生支持,程序员最爱
  • 完全开源,GitHub仓库随便改

缺点也很明显:官方文档跳跃性太强,对宝塔用户极不友好。


二、环境检查:你已经装好的 vs 还缺的

已装好的(宝塔一键) 还缺的(必须手动)
Nginx 1.26 Golang ≥ 1.20
PHP 8.2(暂时用不上) Node.js ≥ 18
MySQL 8.0 Casdoor(登录认证)
Redis 7.4 casnode源码+编译

接下来,一条命令一条命令复制粘贴,别偷懒。


三、给宝塔装缺失的依赖

1. 安装Golang(二进制包最快)

# 登录SSH,别用宝塔终端,难用
cd /usr/local
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
tar -xzf go1.21.5.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
source /etc/profile
go version   # 看到go1.21.5就成功

2. 安装Node.js(用官方源)

curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
node -v        # 看到v20.x.x就行

四、配置MySQL给Casnode用

# 宝塔里打开MySQL终端,执行
CREATE DATABASE casnode CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'casnode'@'localhost' IDENTIFIED BY 'Casnode@2025!';
GRANT ALL ON casnode.* TO 'casnode'@'localhost';
FLUSH PRIVILEGES;

记住用户名密码,后面要填。


五、下载&编译Casnode

# 回到根目录
cd /
git clone https://github.com/casbin/casnode.git
cd casnode

# 编译后端(2核3G大概2分钟)
go mod tidy
go build -o casnode

修改后端配置

cp conf/app.conf.example conf/app.conf
nano conf/app.conf

只改这几行:

httpport = 7000
driverName = mysql
dataSourceName = casnode:Casnode@2025!@tcp(127.0.0.1:3306)/casnode?charset=utf8mb4
redisEndpoint = 127.0.0.1:6379

编译前端

cd web
npm install --registry=https://registry.npmmirror.com
npm run build

六、安装Casdoor(不装登录就崩)

cd /
git clone https://github.com/casdoor/casdoor.git
cd casdoor

编译Casdoor(需要Java17)

apt install openjdk-17-jdk -y
./build.sh

改配置

cp conf/app.conf.example conf/app.conf
nano conf/app.conf
httpport = 8000
driverName = mysql
dataSourceName = root:你的宝塔MySQL密码@tcp(127.0.0.1:3306)/casdoor?charset=utf8mb4
# 启动
nohup ./casdoor &   # 端口8000

七、Nginx反向代理(用宝塔可视化,别手敲)

宝塔→网站→添加站点→PHP纯静态→填域名→提交→设置→反向代理:

论坛(Casnode) 认证(Casdoor)
代理名称:casnode
目标URL:http://127.0.0.1:7000
代理名称:casdoor
目标URL:http://127.0.0.1:8000

顺手把SSL证书也申请了,强制HTTPS。


八、初始化Casdoor & Casnode

  1. 浏览器打开:https://你的域名:8000
    • 默认账号:admin/密码:123
    • 应用管理→添加应用→名称填casnode→回调URL填https://你的域名/callback
    • 复制Client ID & Secret
  2. 打开https://你的域名
    • 第一次会自动跳转到Casdoor登录
    • 登录成功即完成绑定

九、设置开机自启(宝塔计划任务)

# 宝塔→计划任务→Shell脚本
# 任务名称:Casnode自启
# 执行周期:开机1分钟后
# 脚本内容:
cd /casnode && nohup ./casnode &
cd /casdoor && nohup ./casdoor &

十、常见坑速查表

现象 解决
502 Bad Gateway Nginx没指向正确端口,或casnode没启动
登录后无限重定向 Casdoor的回调URL填错
前端样式404 web/dist目录没生成,重新npm run build
发邮件报错 conf/app.conf里smtp没配,用163或Gmail应用密码

十一、总结:一句话省流

装Golang+Node→下源码→编译→跑Casdoor→Nginx反代→完事。整个流程30分钟能搞定,别再对着官方文档发呆了。

觉得有用就收藏,踩了新坑欢迎留言,一起吐槽。

请登录后发表评论

    没有回复内容

万事屋新帖