赞片CMSMemcache配置
照着做完,你就能把赞片CMS的缓存从默认的文件缓存换成 Memcache,减少数据库查询、明显降低页面打开时间。
第一步:确认 PHP 扩展有没有装
这一步要确认服务器上的 PHP 支持 Memcache,装不上后面全白搭。在 SSH 里执行:
php -v
php -m | grep -i memcache
php -m 会列出所有已加载扩展。如果输出里没有 memcache 或 memcached,说明没装。用宝塔面板的话,进「软件商店 → 已安装 → 找到你的 PHP 版本(比如 PHP-7.2)→ 设置 → 安装扩展」,在列表里找到 memcached 点安装,等它跑完。
注意:
memcache和memcached是两个不同的 PHP 扩展,驱动名不能混用。ThinkPHP 5.0 系列一般用memcache,5.1 及以上用memcached。装错的话配置写完会直接报「不支持的缓存类型」。
第二步:安装并启动 Memcached 服务
PHP 扩展只是「客户端」,还需要一个真正跑着的 Memcached 服务端进程。宝塔面板:软件商店 → 搜索 memcached → 安装 → 点「设置」,把端口设为 11211,内存按需要填(小站 256M~512M 足够)。
命令行安装(CentOS):
yum install -y memcached
systemctl start memcached
systemctl enable memcached
装完验证服务是否在监听:
ps aux | grep memcached
echo stats | nc 127.0.0.1 11211
第二条命令能刷出一堆 STAT 开头的行,就说明服务正常。
注意:启动参数里一定要绑
-l 127.0.0.1,别监听0.0.0.0。Memcached 没有认证机制,暴露在公网上等于把缓存数据送给任何人。
第三步:找到赞片CMS的缓存配置文件
赞片CMS 基于 ThinkPHP 开发,缓存配置不在后台,而在代码里。用宝塔文件管理器或 SFTP 进入网站根目录(一般是 /www/wwwroot/你的域名/),按版本找文件:
- ThinkPHP 5.0 结构:
application/config.php,搜索'cache'; - ThinkPHP 5.1 及以上的结构:
config/cache.php,或application/extra/cache.php。
赞片CMS 常见做法是把缓存配置单独放在 application/extra/cache.php。找到包含 'type' => 'File' 的那个数组,就是它了。
第四步:改成 Memcache 配置
把原来的文件缓存配置整段替换成下面这样(注意驱动名要和第一步装的扩展对应):
'cache' => [
'type' => 'memcached', // 装的是 memcache 扩展就写 'memcache'
'host' => '127.0.0.1',
'port' => 11211,
'prefix' => 'zanpian_',
'expire' => 3600,
'persistent' => false,
],
几个参数的含义:prefix 是键名前缀,同一台服务器上跑多个站时用它区分,避免互相覆盖;expire 是默认过期秒数,3600 就是一小时;persistent 保持 false,长连接在部分环境下反而会出问题。
保存文件,如果服务器开了 OPcache,重启一下 PHP:宝塔「软件商店 → PHP-7.2 → 设置 → 服务 → 重启」。
第五步:清掉旧缓存并验证生效
改完配置后旧的 File 缓存还在磁盘上,不清会读到脏数据。宝塔文件管理器进 runtime/ 目录,删掉里面的 cache 文件夹(整个删掉,程序会自动重建);或者后台 → 系统 → 缓存管理 → 清除缓存。
验证是否真的用上了 Memcache:
echo stats | nc 127.0.0.1 11211
看 curr_items 这个数字。刷新几次网站首页,再执行一次,如果 curr_items 从 0 变成几十、几百,说明缓存已经写进 Memcached 了。
第六步:出问题怎么排查
- 网站 500 或白屏:九成是驱动名写错,或 PHP 扩展没装。看
runtime/log/下当天的日志,会直接写明「不支持的缓存类型」。 - 能打开但速度没变化:检查是否装了 OPcache 以外的页面缓存插件在抢活,或者模板本身没走缓存逻辑。
- 多站点串数据:每个站点的
prefix必须不一样。 - 连不上 11211:确认
systemctl status memcached是 running,以及宝塔「安全」里没屏蔽本地回环。
小结
- 先装 PHP 的
memcache/memcached扩展,再装 Memcached 服务端,两步都不能少; - 配置改在
application/extra/cache.php或config/cache.php,把type从File换成对应驱动; prefix一定要按站点区分,expire按内容更新频率设置;- 改完必须清
runtime/cache,再用curr_items验证是否真的生效; - Memcached 只监听 127.0.0.1,别开公网端口。
原文链接:https://www.gj0.com/thread-475.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。