适用人群
本教程专为以下人群设计:
- 零基础想搭建自己的影视网站的小白用户
- 已经安装苹果CMS但不知道如何启用或优化“历史记录”功能的新手站长
- 希望让用户观看记录实时同步、提升会员留存率的运营者
无论你是刚接触服务器还是已有基础,跟着本文一步步操作,就能让历史记录功能跑得又快又稳。
完整搭建步骤
第一步:服务器环境准备
- 选择操作系统
推荐 CentOS 7.9 或 Ubuntu 20.04,这里以 CentOS 7 为例。 - 安装宝塔面板(新手友好,一键管理)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完成后记下面板地址、账号和密码。
- 一键部署LNMP环境
进入宝塔后台,点击“软件商店”,安装以下组合:- Nginx 1.20
- MySQL 5.7
- PHP 7.4(注意:必须 ≥7.3,且安装 fileinfo、opcache、redis 扩展)
- 创建站点
在宝塔“网站”菜单中点击“添加站点”,输入你的域名(或IP),数据库选择 MySQL,自动创建数据库和用户。
关键点: PHP版本务必选择7.4,否则安装过程会报错。
第二步:下载并上传苹果CMS源码
- 前往苹果CMS官网(或官方Git仓库)下载最新版 v10。
- 将下载的压缩包上传到站点根目录(
/www/wwwroot/你的域名/),并解压。 - 设置权限(宝塔文件管理中操作):
- 将
./application、./runtime、./static、./upload这四个目录权限设为755,所有者设为www。 - 如果后续写权限有问题,可直接将
runtime设为777(安装后务必改回755)。
- 将
第三步:运行安装向导
- 在浏览器中访问
http://你的域名/install,进入安装界面。 - 勾选“我已阅读并同意协议”,点击“下一步”。
- 环境检测:除了 fileinfo 和 opcache 必须绿色,其他都可以忽略,如果出现红色,请回宝塔PHP设置中安装对应扩展。
- 填写数据库信息:使用第一步创建的数据库名、用户名和密码。
- 设置管理员账号和密码(务必牢记)。
- 安装完成,删除
/install目录(宝塔文件管理直接删除)。
第四步:重点配置历史记录功能
苹果CMS的历史记录分为临时记录(Cookie)和永久记录(数据库)两种。
永久记录需要依赖会员系统,而临时记录对所有访客生效,下面教你如何让“历史记录”真正可用。
1 开启后台配置
登录后台:http://你的域名/admin
进入 系统 → 网站参数配置 → 播放器配置,找到以下选项:

苹果CMS历史记录实战指南,从环境搭建到功能优化,新手也能轻松驾驭
- 播放记录方式:选择
数据库(推荐,支持跨设备同步) - 历史记录保存天数:建议
30天(可根据服务器负载调整) - 开启会员记录同步:启用(让登录用户的历史记录云端保存)
保存后,清空缓存(右上角“清空缓存”按钮)。
2 修改前端模板文件
苹果CMS默认模板可能没有直接显示历史记录按钮,需要手动修改。
- 进入
/template/你的模板名/html/目录。 - 找到
player.html(播放器页面),在<script>标签前加入以下代码,用于调用记录函数:// 强制记录当前播放进度 function saveHistory(vid, sid, nid, time) { $.get("{:mac_url('ajax/record')}", { id: vid, sid: sid, nid: nid, time: time }); } - 找到播放器回调函数(通常是
onTimeUpdate或onplay),绑定此函数。
示例(以DPlayer为例):dp.on('timeupdate', function() { saveHistory({$obj.vod_id}, {$obj.vod_play_from}, {$obj.vod_play_note}, dp.video.currentTime); }); - 修改
head.html或footer.html,在导航栏添加“我的历史”链接:<a href="/user/history.html">观看记录</a>
注意:该页面需会员登录后才能显示。
3 优化数据库性能(进阶)
当历史记录数据量变大后,查询可能变慢,建议在宝塔面板的“数据库”中执行以下SQL:
ALTER TABLE `mac_user` ADD INDEX `idx_history` (`user_id`, `update_time`);
这能大幅提升用户历史记录查询速度。
第五步:测试与验收
- 用两个不同的浏览器(或手机+电脑)访问你的网站,播放同一部视频,然后暂停或拖动进度条。
- 一段时间后,再次打开该视频,查看是否自动从上次位置续播。
- 注册一个会员账号,登录后播放,再到另一台设备登录同一账号,检查历史记录是否同步。
- 后台查看
mac_user表中的user_history字段,确认有数据写入。
配置要点
- PHP版本必须为7.4,否则 fileinfo 插件装不上去,安装过程会直接卡死。
- Redis缓存建议开启:后台“系统 => 缓存配置”中,驱动选择
Redis,服务器地址填0.0.1:6379,这能极大提升历史记录写入和读取速度。 - 伪静态规则:给Nginx添加以下规则,否则历史记录API可能404:
location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } }宝塔中可直接在站点设置 → 伪静态里选择
thinkphp规则模板。
常见踩坑提醒
❌ 坑1:历史记录不保存,后台配置无效
原因:八成是模板文件没有绑定保存函数,或者ajax/record接口被防火墙拦截。
解决:先用浏览器开发者工具(F12)查看网络请求,是否有 record 请求返回 200,如果返回 500,查看PHP错误日志(宝塔面板 → 软件商店 → PHP7.4设置 → 错误日志),常见错误是缺少curl扩展,安装即可。
❌ 坑2:会员历史不同步,不同设备记录不一样
原因:后台“播放记录方式”选择了Cookie,Cookie存储在同一浏览器。
解决:切换到“数据库”模式,并确认用户登录后页面刷新了全局状态。
注意:如果网站开启了CDN或反向代理,需要配置 proxy_set_header X-Forwarded-For 保证IP正确,否则记录可能被当成游客。
❌ 坑3:历史记录页面打开非常慢,甚至超时
原因:未对数据库表建索引,且记录数据过多。
解决:执行前面提供的 ALTER TABLE 语句;另外在后台“系统→性能优化”中,将历史记录列表每页显示数量改为 20,避免一次性加载全部。
❌ 坑4:修复后历史记录依然不显示,后台清空缓存无效
原因:可能是模板缓存问题。
解决:手动删除 /runtime 目录下的所有文件(除了 index.html),然后重新生成静态页。
最后一点小建议
历史记录功能虽然小,但却是提升用户体验的利器,如果你打算做会员付费网站,一定要开启数据库记录,并在个人中心页面展示最近观看的10条记录,用户粘性会直线上升,建议定期(比如每周)清理30天之前的旧记录,用计划任务自动执行SQL:
DELETE FROM `mac_user` WHERE `update_time` < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
这样就既保证效率,又不丢失太旧的数据。
跟着这套步骤,你不仅能搭起一个完整的苹果CMS网站,还能让历史记录功能发挥出真正的价值,动手试一下吧,有问题可以在评论区留言,我会在下一期教程里集中解答。
发表评论