船说 CMS 后台空白页面是什么原因

juming
juming 初级会员超兽战士
发布于 2026-10-08 07:55 ·1 浏览 ·0 回复

学完这篇你能按“看状态码→开报错→排 PHP→查权限缓存→关插件→看伪静态/数据库”的顺序,定位船说 CMS 后台空白页面的原因并把它恢复。

下面以船说 CMS v1.5.0(PHP 版)+ 宝塔 Linux 面板 8.0.5 + PHP 7.4.33 为例,其他版本菜单名可能略有差异,但排查顺序一致。

第一步:确认是前台白还是后台白,拿到 HTTP 状态码

这一步要判断白屏是 PHP 报错、跳转还是模板问题,做完你能知道该往哪查。浏览器按 F12 打开开发者工具,切到 Network(网络),勾选 Preserve log(保留日志),访问后台常见入口 /admin.php 或 /admin/。看 admin.php 请求状态码:500 多半是 PHP 致命错误;302 多半是登录跳转或伪静态循环;200 但页面空白,查 Sources(源代码)里有没有 HTML,若没有就是模板/缓存问题。也可以在命令行执行:curl -I https://你的域名/admin.php。

注意:先备份数据库和网站目录,后面改配置、停插件都可能影响线上。

第二步:打开 PHP 错误显示,让白屏变成具体报错

这一步要拿到真正的错误行,做完你能看到 Fatal error、Warning 或文件路径。宝塔面板进入“软件商店 → PHP 7.4 → 设置 → 配置修改”,找到 display_errors = Off 改成 On,error_reporting = E_ALL,保存后点“服务 → 重载配置”。如果没权限改 php.ini,临时在 /admin.php 顶部 <?php 后加两行:ini_set('display_errors',1); ini_set('error_reporting',E_ALL);,刷新后台。

注意:排完必须把 display_errors 改回 Off,否则会暴露服务器路径和数据库信息。

第三步:核对 PHP 版本和扩展

这一步排除环境不兼容,做完你能确认船说 CMS 是否跑在正确 PHP 上。宝塔进入“网站 → 你的站点 → 设置 → PHP版本”,先切到 PHP 7.4;再进“软件商店 → PHP 7.4 → 设置 → 安装扩展”,确保 fileinfo、gd、curl、mbstring、mysqli、openssl、zip 已安装。命令行用 php -v 只能看 CLI 版本,FPM 版本要看站点设置。

注意:PHP 8.1/8.2 下,老 CMS 常因 each()、未定义数组键、mysql_* 等直接白屏,不要硬升。

第四步:查目录权限和 BOM 头

这一步解决“文件读不到/输出被污染”,做完后台入口通常能恢复。Linux 下执行:
chown -R www:www /www/wwwroot/你的站
find /www/wwwroot/你的站 -type d -exec chmod 755 {} \;
find /www/wwwroot/你的站 -type f -exec chmod 644 {} \;
chmod -R 755 /www/wwwroot/你的站/runtime /www/wwwroot/你的站/data /www/wwwroot/你的站/cache
最近改过的 PHP 文件用 Notepad++ 8.5.8 打开,点“编码 → 转为 UTF-8 无 BOM”,再保存。

注意:不要全站 chmod -R 777,这是常见被挂马的原因。

第五步:清缓存、停插件、切回默认后台模板

这一步排除缓存和插件冲突,做完能判断是不是第三方代码导致。删除 /runtime/cache、/runtime/temp、/data/cache 里的缓存文件,保留 .htaccess 和 index.html。如果还能进后台,进“系统 → 插件管理”,把所有插件先禁用;进“系统 → 基本设置 → 后台模板”,切回 default。进不了后台,就把 /plugins 或 /addons 目录临时改名。

注意:改数据库或目录名前先导出 SQL 备份。

第六步:检查伪静态、SSL 和 CDN

这一步排除 URL 重写和 HTTPS 混合内容,做完能解决“前台正常、后台 302/白屏”。宝塔进“网站 → 站点 → 设置 → 伪静态”,船说 CMS 有规则就选它,没有先选 none 测试;进“SSL → 强制 HTTPS”看是否开启;CDN 后台清一次 HTML 缓存。浏览器 Console(控制台)看有没有 JS 报错。

第七步:查数据库连接和 session 目录

这一步排除配置错误,做完能确认后台是否连不上库。打开 /config/database.php 或 /application/database.php,核对 hostname=127.0.0.1、database、username、password、hostport=3306、prefix。命令行测试:mysql -h127.0.0.1 -P3306 -u用户 -p。再确认 /runtime/session 或 /tmp 可写。

注意:配置改完清一次 runtime 缓存,否则旧配置可能仍生效。

小结

  • 后台白屏先看 F12 Network 状态码,500 查 PHP 错误,200 查模板/JS。
  • 开 display_errors 拿报错,排完立刻关掉。
  • PHP 版本优先 7.4,扩展、权限、BOM 是高频坑。
  • 清缓存、停插件、切默认后台模板,能快速排除第三方冲突。
  • 最后查伪静态、SSL、CDN、数据库和 session 目录。
版权声明:本文来自 GJ站长论坛《船说 CMS 后台空白页面是什么原因》
原文链接:https://www.gj0.com/thread-825.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~