“采集资源站返回数据为空”
报错现象
搬家后,使用系统自带采集器抓取视频数据时,提示“采集资源站返回数据为空”或“无法获取资源列表”,但资源站本身可以正常访问。
原因分析
苹果CMS在采集功能中,资源站接口地址默认写在 /application/database.php 或 /application/extra/resource.php 中,搬家后如果直接复制旧数据库,资源站URL仍指向旧域名,导致采集请求被跳转或拦截。
解决步骤
-
定位配置文件
登录服务器SSH,进入网站根目录,执行:find . -name "*.php" | xargs grep -l "旧域名.com"
常见保存位置为:
/application/database.php、/application/extra/resource.php、/application/common.php。苹果CMS搬家后域名批量替换全攻略,5类高频报错一键修复
-
批量替换域名
将旧域名统一替换为新域名:sed -i 's|http://旧域名.com|http://新域名.com|g' /application/database.php sed -i 's|http://旧域名.com|http://新域名.com|g' /application/extra/resource.php
-
清理缓存
删除runtime目录下的缓存文件(保留runtime文件夹本身):rm -rf runtime/cache/* rm -rf runtime/temp/*
-
重置防盗链
如果资源站启用了防盗链,需在新服务器IP下重新配置白名单,或临时关闭防盗链测试。
播放器无法加载:“视频加载失败,请检查播放器配置”
报错现象
点击播放按钮后,播放器界面显示“视频加载失败”或“播放器对象未定义”,控制台报403或跨域错误。
原因分析
苹果CMS默认将播放器核心文件(如 ckplayer、dplayer)的路径硬编码在模板中,搬家后若域名变更,播放器JS/CSS请求路径变为旧域名,导致跨域读取失败,播放器配置文件 player/config.php 中也可能包含旧域名。
解决步骤
-
修改播放器配置文件
进入/template/你的模板名称/player/目录,编辑config.php:$player_url = 'http://新域名.com/template/你的模板名称/player/';
-
批量替换模板中的硬编码路径
搜索所有包含旧域名的模板文件:grep -r "旧域名.com" ./template/ --include="*.html" --include="*.php"
执行替换:
sed -i 's|旧域名.com|新域名.com|g' `grep -rl "旧域名.com" ./template/`
-
更新播放器跨域配置
在网站根目录的.htaccess(Nginx下为nginx.conf)中增加跨域头:<IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule>
-
测试播放器本地文件
直接访问http://新域名.com/template/你的模板名称/player/ckplayer.js,确保能正常下载。
后台登录异常:登录后跳转回首页或提示“token错误”
报错现象
输入管理员账号密码后,页面短暂跳转,但最终停留在首页,或弹窗提示“登录失败,token验证无效”。
原因分析
后台登录验证依赖于 cookie 和 session,搬家后,旧域名下的 cookie 在新域名下被视为非法,而 session 路径配置若未更新,会导致 token 生成与校验的域名不匹配。
解决步骤
-
重置管理员登录状态
登录phpMyAdmin,执行SQL清除损坏的session表:TRUNCATE TABLE `mac_session`;
-
修改后台域名配置
编辑/application/extra/config.php,找到:'site_url' => 'http://旧域名.com',
更新为新域名:
'site_url' => 'http://新域名.com',
-
清理浏览器缓存与cookie
打开浏览器开发者工具(F12),选择“Application” -> “Storage”,清除该域名下的所有cookie和缓存。 -
检查服务器时区
苹果CMS的token生成依赖服务器时间,SSH执行date检查时间,若偏差超过5分钟,则:sudo timedatectl set-timezone Asia/Shanghai sudo ntpdate ntp.aliyun.com
页面空白或乱码:用户访问首页显示纯空白或满屏符号
报错现象
网站首页或分类页打开后,浏览器一片空白(无任何输出),或出现类似 的乱码字符。
原因分析
空白通常由PHP报错被抑制引起,乱码多源于 Mysqli 连接结果集的编码未设置,搬家后,数据库连接字符集可能丢失,或PHP版本差异导致某个插件函数废弃。
解决步骤
-
开启PHP错误显示
临时修改/index.php第一行后添加:ini_set('display_errors', 1); error_reporting(E_ALL);刷新页面,根据具体错误提示定位问题(“Call to undefined function…”表示某个扩展未安装)。
-
检查数据库连接字符集
打开/application/database.php,确保:'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci',
然后执行SQL修改表的字符集(将
数据库名替换为实际名称):ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE mac_vod CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
对所有表重复上述
ALTER TABLE操作。 -
关闭PHP压缩冲突
在.htaccess中禁用输出压缩:SetEnv no-gzip 1
-
重新生成模板缓存
删除runtime目录下的所有模板编译文件:rm -rf runtime/compile/*
安装环境检测不通过:显示“php版本过低”或“缺少fileinfo扩展”
报错现象
搬家后重新安装苹果CMS,进入环境检测页面,提示“PHP版本需≥7.3”、“未安装fileinfo扩展”或“openssl扩展未开启”。
原因分析
新服务器环境配置与旧服务器不一致,苹果CMS 10+版本强制要求PHP 7.3以上,且依赖 fileinfo、openssl、curl、mbstring 等扩展。
解决步骤
-
切换PHP版本
使用宝塔面板或Oneinstack:
宝塔:软件管理 -> PHP -> 切换版本至7.4或8.0。
手动编译:下载PHP 7.4源码包,重新编译时增加--with-fileinfo --with-openssl。 -
安装缺失扩展
以CentOS为例:yum install epel-release -y yum install php74-php-mbstring php74-php-fileinfo php74-php-openssl
重启PHP服务:
systemctl restart php-fpm
-
修改PHP配置文件
编辑/etc/php.ini,取消以下行的注释(去掉前面的分号):extension=fileinfo extension=mbstring extension=curl若未找到,手动添加:
extension=/usr/lib64/php/modules/fileinfo.so -
临时绕过检查(仅用于测试)
打开/install/index.php,找到以下代码并注释:// if (version_compare(PHP_VERSION, '7.3.0', '<')) { // error('PHP版本过低,需要7.3以上'); // }注意:正式环境请保持严格检查。
终极防坑清单:搬家后3步必做
-
全站域名替换三连击
- 数据库:
UPDATE mac_config SET value=REPLACE(value,'旧域名','新域名'); - 文件:
find . -type f -name "*.php" -o -name "*.html" | xargs sed -i 's|旧域名|新域名|g' - 缓存:
rm -rf runtime/*
- 数据库:
-
强制重置伪静态
若使用Nginx,检查nginx.conf中的try_files路径是否包含/index.php?s=,并重启Nginx:systemctl restart nginx
-
开启PHP错误日志
在/etc/php.ini中设置:log_errors = On error_log = /www/logs/php_error.log此后所有报错都会记录,排查效率提升80%。
对以上任何一个步骤仍有疑虑,请直接在搜索引擎搜索“苹果CMS + 对应报错关键词”,或查阅官方论坛appcms.cc的历史问答。



发表评论