









是我给的下载链接版本号不对,wget 没下到文件(可能下了个 404 页面或直接失败),所以解压找不到。换可靠的方式拿安装包。
先确认目录现在是空的:
ls -lh /www/wwwroot/file-viewer
然后从下面挑任意一种方式获取 kodbox:
宝塔 → 网站 → 添加站点 → 顶部有个 「一键部署」 标签(你前面截图里就有)→ 搜索 可道云 或 kodbox。如果列表里有,直接一键安装,数据库、目录它都帮你配好,跳过所有手动下载/解压。
https://kodcloud.com/download//www/wwwroot/file-viewer → 点 上传,把 zip 传上去这种方式不依赖服务器能不能下到、版本号对不对,最稳。
如果想继续用命令行,别再猜版本号。先到官网下载页右键「复制下载链接」拿到真实地址,再:
cd /www/wwwroot/file-viewer
wget -O kodbox.zip "把复制到的真实链接粘到这里"
unzip kodbox.zip
rm -f kodbox.zip
或用 GitHub release(也要看真实文件名):https://github.com/kalcaddle/kodbox/releases
我推荐先试方式 A(一键部署),没有的话用方式 B(PC 下载上传),最省心。
解压完成后,目录里应该能看到 index.php、app/、config/ 等文件,然后浏览器访问站点跑安装向导。到哪一步卡了再发我。
找到了!问题在最后那张图的「用户/用户组」那一列 —— 全是 root/root。
宝塔的 Nginx/PHP 是用 www 这个用户在跑的。你的 kodbox 文件全归 root 所有,权限又是 755/644(别人只能读不能写)。而环境检测第一条就写着「程序目录及所有子目录需要可读写」。
kodbox 的样式是运行时动态合并/压缩 CSS 后写到缓存目录(data 等)里的。www 用户没有写权限 → 生成不出合并后的 CSS → 页面就裸奔成纯文本了。main.js 能跑(所以你看到一堆 200 的 ajax),但 CSS 缓存生成失败。
SSH 执行:
chown -R www:www /www/wwwroot/file-viewer
chmod -R 755 /www/wwwroot/file-viewer
顺手删掉那个没用的安装包(37MB):
rm -f /www/wwwroot/file-viewer/kodbox.1.67.zip
浏览器 Ctrl+F5 强刷 http://172.16.1.5:7777/。
这次安装页应该就有正常样式了(顶部 logo 正常、排版整齐)。再按向导往下点:确定 → 数据库配置 → 账号设置(设管理员) → 完成。
如果强刷后还是没样式,执行
ls -l /www/wwwroot/file-viewer把那一列确认一下是不是已经变成www www;另外 F12 → Network 里专门点 CSS 标签页过滤,看有没有红色 404 的 css,把它的 URL 发我。
但我判断 99% 就是属主问题,改完 chown www:www 刷新即可。改完告诉我结果。
默认使用80端口即可
太关键了,一下就定位了!
根本原因:kodbox 在拼接静态资源地址时,用的是 SERVER_NAME(也就是 Nginx 里的 server_name 172.16.1.5;),只拿到了 IP、丢了端口号,于是生成的 URL 是 http://172.16.1.5/...(默认 80 端口)。但你的站点跑在 7777,80 端口上没有它的文件 → 全部 404 → 没样式。你手动补上 :7777 就正常,完美印证了这一点。
这是 kodbox(以及不少 PHP 应用)在非标准端口(非 80/443)下的通病。
最干净彻底的解决办法:让 kodbox 跑在 80 端口,这样 URL 不带端口也正好对。
1. 先看谁占了 80 端口 宝塔 → 网站,列表里找域名是 172.16.1.5(后面没有端口号)的那个站 —— 它就在 80 端口上。
2. 把 kodbox 站点改到 80 宝塔 → kodbox 这个站(172.16.1.5_7777)→ 域名管理:
172.16.1.5:7777172.16.1.5(不写端口 = 80)3. 重载并访问
http://172.16.1.5/(不带端口),Ctrl+F5这次 kodbox 生成的 http://172.16.1.5/app/.../logo.png 正好命中,样式就回来了。
那就得让 PHP 拿到带端口的 SERVER_NAME,需要改 全局 PHP 配置(enable-php-74.conf 里的 php location 加 fastcgi_param SERVER_NAME $http_host;)。但这会影响服务器上所有站点,较麻烦也容易被面板覆盖,不推荐。
所以强烈建议走上面的 80 端口方案。
你先看一下第 1 步——80 端口上那个 172.16.1.5 站是干嘛的?如果不确定能不能动,把网站列表截图发我,我帮你判断哪个能腾、怎么腾。腾好后按 2、3 步把 kodbox 挪到 80 就行。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。