海洋 CMS 如何开启网站全站缓存

juming
juming 初级会员超兽战士
发布于 2026-10-08 09:34 ·2 浏览 ·0 回复

海洋CMS 的"全站缓存"其实是两套东西叠加:一套是把页面生成 .html 静态文件的 HTML 静态化,一套是 data/cache 目录里的数据缓存。开启顺序必须是先设参数、再批量生成、最后配好 Web 服务器规则,少任何一步都会出现"后台显示已开启、前台还是老样子"的情况。

海洋CMS 的缓存分几层?先搞清楚再动手

结论:海洋CMS 的缓存分两层——数据层(data/cache 里的配置、栏目、模板编译文件)和页面层(生成出来的 .html 静态页)。只开其中一层,加速效果都不完整。

数据层缓存的写法是文件缓存:系统把栏目结构、站点配置、部分查询结果序列化后写进 data/cache/ 目录,前台每次请求先读这里,命中就直接返回,不查数据库。这一层的作用是减少 SQL 查询,页面本身还是 PHP 动态输出。

页面层缓存就是把动态页编译成静态 .html 落到网站根目录或指定目录里,由 Nginx/Apache 直接返回,PHP 和 MySQL 完全不参与。这才是真正意义上的"全站缓存",也是流量站最该开的一层。

后台哪些参数必须改?

结论:进入后台「系统 → 系统参数设置」,把静态化相关的三项配好——静态页存放目录、URL 规则(静态后缀)、缓存有效期,这三项不设,后面生成出来的文件会散落在错误路径。

以 v10 版本为例,菜单路径大致是「系统」→「系统参数设置」,在"性能/静态"分栏里能找到类似"开启 HTML 静态""静态文件目录""缓存时间(秒)"的选项。常见配置是:静态目录保持默认(一般是网站根目录),后缀选 .html,缓存时间填 3600(1 小时)或更大。v9 版本菜单文案会略有不同,按同义项找即可。

改完记得保存,然后去「系统 → 更新缓存」清一次旧缓存,否则你看到的还是改之前的配置。

怎么批量生成整站 HTML?

结论:用后台的「生成」功能分类型批量生成,单次条数控制在 50~200 条之间,避免 PHP 执行超时中断。

具体步骤:

  1. 进「生成」菜单,先点「生成首页」——这一步最快,用来验证配置是否生效;
  2. 再生成「栏目页」,通常几十到几百个,一次跑完没问题;
  3. 最后生成「内容页」,这是数据量最大的一块。如果站点有 1 万条内容,一次生成 100 条,分 100 轮跑;
  4. 有专题的再补一轮专题页。

如果你的环境 max_execution_time 是默认的 30 秒,而生成一页要 0.2 秒,那单轮最多跑到 150 页左右就会断,所以宁可设小一点、多跑几轮。生成完到网站根目录看,应该出现一堆 .html 文件。

内容更新后必须重新生成对应页面,否则前台展示的还是旧静态页——这是静态化最大的代价。

数据缓存(data/cache)怎么开和清?

结论:data/cache/ 目录必须可写,权限给 755、属主设为 Web 运行用户;只有虚拟主机环境才退而求其次用 777,不要对整站递归 777。

开启后你会看到 data/cache/ 里出现按栏目 ID 或模块名命名的缓存文件,修改时间会随访问更新。清理方式有三种:后台「更新缓存」按钮、直接删除 data/cache/ 下的文件(目录本身别删)、或者改配置后系统自动失效重建。

一个常踩的坑:搬家或换服务器后忘记改权限,缓存文件写不进去,前台每次都查库,站点反而更慢。检查办法是看 data/cache/ 里有没有新文件生成。

怎么确认缓存真的生效了?

结论:看三处——响应头、目录文件、服务器日志。

用 curl -I https://你的域名/ 看返回头,如果带有 Content-Type: text/html 且响应体是静态文件内容,说明 Nginx 直接返回了 .html;再看 Nginx access log,静态命中时不会有 PHP 相关记录。最直观的是首页生成后,ls -l 看根目录下 index.html 的时间戳是否是你刚生成的时间。

如果前台仍是动态的,优先检查两点:一是 Web 服务器有没有配置 index.html 优先于 index.php(Nginx 的 index 指令顺序反了就会走 PHP),二是 .htaccess 或 rewrite 规则把 .html 请求又重写回 index.php 了。

几个必须知道的注意点

结论:静态化不是开完就完事,它是"用生成成本换访问速度",要配定时任务维护。

内容量大的站建议配 crontab,每天凌晨跑一次生成脚本或调用后台生成接口,把新增内容补齐;搜索页、会员中心、评论页这类个性化页面不要静态化,否则会串数据。伪静态规则直接复制后台「系统 → 伪静态」里给的那段文本最稳,别手写,版本间的参数名对不上很容易 404。

总结一句:海洋CMS 全站缓存 = 参数配置 + 批量生成 .html + data/cache 可写 + Web 服务器优先返回静态文件,四步齐了才是真全站缓存;只开数据缓存只能减轻数据库压力,页面速度提升有限。

版权声明:本文来自 GJ站长论坛《海洋 CMS 如何开启网站全站缓存》
原文链接:https://www.gj0.com/thread-873.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~