船说 CMS 搜索功能失效怎么修复

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-08 02:10 ·1 浏览 ·0 回复

学完这篇,你能按顺序定位船说 CMS 搜索失效的原因,并把大部分「搜不到内容」的问题当场修好。

搜索失效通常只有三种表现:输入关键词后结果页空白、页面报 500/502 错误、或者一直转圈不返回。先分清是哪一种,能省掉一半排查时间。

第一步:确认故障属于哪一类

这一步要拿到搜索请求的真实状态码,判断后面该往哪条路走。

打开前台搜索框,输入一个你确定存在的关键词(比如某篇文章的完整标题),按 F12 打开浏览器开发者工具,切到 Network(网络)标签,再点搜索。找到 search 开头的那个请求,看 Status 状态码:

  • 200 但列表为空 → 搜索逻辑或索引问题,跳到第三步。
  • 500 / 502 → PHP 报错或进程崩溃,跳到第二步。
  • 请求一直 pending → 大概率数据库卡死或慢查询,跳到第三步。

注意:一定要用「确定存在的完整标题」做测试词。用「的」「了」这类词测试,很多 CMS 默认过滤,会让你误判成功能坏了。

第二步:把报错内容挖出来

这一步的目的是让系统把真实错误吐出来,而不是给你一个白屏。

打开网站根目录的配置文件,船说 CMS 一般是 config/config.php 或 data/config.php,找到 debug 那一项,把 false 改成 true:

'debug' => true,

保存后刷新搜索页,报错信息会直接显示。改完记得改回 false。

如果配置文件里没有 debug 项,去看 PHP 错误日志。宝塔面板用户在「网站 → 设置 → 错误日志」里看,或者在「软件商店 → PHP 7.4 → 设置 → 日志」里找。

注意:如果报 Call to undefined function mb_strlen(),说明 PHP 没装 mbstring 扩展(中文搜索必须依赖它)。宝塔用户在「软件商店 → PHP → 安装扩展」里勾上 mbstring 装上即可。

第三步:检查数据表和搜索索引

搜索本质是一条 SQL 查询,表坏了或索引丢了,自然搜不出东西。

用 phpMyAdmin(宝塔面板「数据库 → 管理」可直达)登录,选中你网站的数据库。重点看两张表:内容主表(前缀常见是 cs_ 或 sc_,后面接 article、news 之类)和搜索索引表(表名里通常带 search 或 keyword)。

如果表名旁显示「使用中」或「崩溃」,勾选该表 → 下拉选「修复表」。也可以直接在 SQL 页执行:

REPAIR TABLE `cs_search`;

再确认全文索引还在:

SHOW INDEX FROM `cs_article`;

看结果里有没有 Fulltext 类型的索引。没有,说明索引被删了或建库时就没建成功。

第四步:重建搜索索引

修好表结构后索引内容往往是空的,必须重建。

进后台,菜单路径一般是:系统 → 系统设置(或「工具」)→ 更新缓存 / 重建搜索索引,点「开始重建」,等进度走完。

后台没这个按钮的话,可以手动清空后让程序自己补:在 phpMyAdmin 执行 TRUNCATE TABLE \cs_search\;,然后随便发布或编辑一篇文章,触发程序重新写入。

注意:重建期间前台搜索结果会不准,访问量大建议放到凌晨做。

第五步:排查伪静态规则

如果直接访问 search.php?kw=测试 有结果,但访问 search.html?kw=测试 是 404 或空白,那就是伪静态规则丢了。

Nginx 用户打开站点配置文件(宝塔:网站 → 设置 → 配置文件),检查 search 相关规则有没有被误删;Apache 用户看 .htaccess 是否还在。改完必须重载:宝塔「网站」页点「重载配置」,或命令行执行 nginx -s reload。

第六步:清缓存、校权限

删掉 data/cache/ 和 data/runtime/ 下的所有缓存文件(目录本身保留),再确认这两个目录的属主是 Web 运行用户(一般叫 www),权限 755:

chown -R www:www /www/wwwroot/你的站点/data

小结

  • 先用 F12 看状态码分类:空白、500、卡死,三条路走法不同。
  • 开 debug 看真实报错;中文搜索依赖 mbstring 扩展。
  • phpMyAdmin 里 REPAIR TABLE 修表,SHOW INDEX 查全文索引。
  • 后台「重建搜索索引」是修好数据后必做的一步。
  • 直连 PHP 能搜、伪静态不能搜,就是 rewrite 规则的问题。
  • 最后清缓存、校正 data 目录属主权限。
版权声明:本文来自 GJ站长论坛《船说 CMS 搜索功能失效怎么修复》
原文链接:https://www.gj0.com/thread-684.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~