采集器突然全部失效——接口报错“403”或“数据格式错误”
报错现象:
搬家到新域名后,后台采集插件(如豆瓣、资源站API)全部拉取失败,日志提示“403 Forbidden”或“Data format error”,部分采集器能连通但解析出的列表为空。
原因分析:
多数资源站API做了域名白名单校验,旧域名授权失效;新服务器的PHP版本或curl扩展配置差异,导致请求头(Referer/User-Agent)被对方服务器拦截,或JSON解码因字符集转换失败。
解决步骤:
- 临时绕过白名单:登录资源站后台,将新域名加入API白名单(若支持),否则联系站长手动添加。
- 修改采集请求头:在
/application/extra/collect.php配置中,找到curl参数段,强制加入Referer: http://你的旧域名(前提是旧域名还活着),并用base64伪装User-Agent,逐步测试。 - 适配PHP环境:在宝塔面板中将PHP版本切换为7.3或7.4(多数资源站兼容性最好),并开启
curl的CURLOPT_ENCODING为空字符串,让服务器自动解压gzip。 - 终极暴力测试:用浏览器手动访问采集接口URL,若返回JSON正常,则是程序内
file_get_contents被禁用,改用curl强制重试机制(在采集配置中勾选“使用CURL”)。
播放器加载失败——VOD地址能解析但页面白屏或显示“视频加载出错”
报错现象:
前台点击播放,播放器区域一片空白,控制台报错Uncaught SyntaxError: Unexpected token < 或Mixed Content,部分浏览器提示“Flash已停止”。
苹果CMS搬家换域名后翻车自救指南,从采集报错到播放器黑屏的五个致命坑与填坑实录
原因分析:
新域名未配置HTTPS,而播放器引用的js/css资源走的是旧域名的HTTPS链接,导致资源被浏览器拦截;更常见的是player.js和vod.js路径硬编码在模板中,搬家后相对路径失效。
解决步骤:
- 全站替换残留旧域名:在数据库中执行SQL——
UPDATE mac_vod SET vod_play_url=REPLACE(vod_play_url,'旧域名','新域名');
同时替换mac_config表中site_url和模板文件里的绝对链接。 - 修复混合内容:若已开启HTTPS,在
/application/extra/player.php中将默认播放器地址改为//cdn.example.com/player.js(省去协议头),并在模板头部加<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">。 - 强制走本地播放器:后台“视频播放器”设置中,将解析接口改为
/api.php/provide/player/?url=,并清空/runtime缓存目录下所有*.php文件(需保留index.html)。
后台登录无限跳转或提示“验证码错误”
报错现象:
输入正确账号密码后,登录按钮灰转跳,回到登录页;或验证码刷新后依旧报错,但数据库里mac_admin表状态正常。
原因分析:
搬家后runtime目录权限未继承,导致session文件无法写入;同时如果config.php里的auth_key被重置,旧密码哈希失效;更隐蔽的是——新的PHP版本(8.0+)对crypt()函数加密强度要求变化,导致密码校验失败。
解决步骤:
- 重建会话目录:
chmod -R 755 /www/wwwroot/你的网站/runtime chown -R www:www /www/wwwroot/你的网站
然后删除
runtime/session下所有*.sess文件,重开浏览器。 - 重置管理员密码(若确认数据库密码没错):用PHPMyAdmin执行——
UPDATE mac_admin SET password=MD5('新密码') WHERE admin_name='admin';
同时将config.php中的auth_key改回搬家前的旧值(如果迁移了原配置)。 - 无视验证码:临时在
/application/admin/controller/Login.php中注释掉verify()函数校验前两行,确保能进入后台再排查验证码字体库问题(多半是GD库未安装)。
全站页面空白或显示“乱码中文+HTML标签”
报错现象:
打开首页直接空白,点击F12看到HTTP 500;或者页面顶部出现一段乱码(类似锟斤拷),紧接着是<br>标签溢出。
原因分析:
数据库字符集不一致(原库是utf8mb4,新库是utf8),或者PHP代码里header('Content-Type: text/html; charset=utf-8')被插件覆盖;另外模板文件本身编码为GBK也被误转UTF-8。
解决步骤:
- 强判字符集:在
/public/index.php顶部加入——
header("Content-Type: text/html; charset=utf-8");
并在phpMyAdmin中执行:ALTER DATABASE 数据库名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
然后导出-再导入,确保所有表也转为utf8mb4。 - 禁用缓存插件:删除
/application/extra/cache.php中type=>'file'改成type=>'sqlite'并清空缓存。 - 检查空白白屏藏错:根目录
/logs下查看最近日志,若显示Class 'curl_init' not found,说明PHP-CLI与FPM版本不一致,宝塔里重选PHP版本并重启。
安装环境检测不通过——提示“PHP版本不支持”或“openssl扩展未安装”
报错现象:
用新域名打开install/index.php,环境检测红叉,无法继续安装;宝塔面板明明装的是PHP 7.4,但系统检测为1。
原因分析:
部分环境(如Apache)下PHP的config文件残留旧配置,或php -v与Web请求走的PHP模块不同(如FPM vs CLI),再就是缺少fileinfo、redis扩展而未在安装程序中勾选。
解决步骤:
- 宝塔强制对齐版本:在“软件商店→PHP项目设置→配置文件”中,确认
php_version=7.4,然后停止Apache(若有),只保留Nginx,并在“网站”设置里将“运行目录”指向public/(苹果CMS伪静态必须)。 - 补齐扩展:宝塔安装PHP时勾选
fileinfo、exif、intl,若已装则用命令行:yum install -y php74-php-fileinfo php74-php-intl systemctl restart php-fpm-74
- 修改安装需求门槛:如果实在无法升级,打开
/application/install/common.php把PHP版本判断的PHP_VERSION改为大于等于6,但注意后期运行可能崩溃,建议还是重编PHP。 - 绕开安装器:直接把旧服务器打包的整个
application、public、runtime复制到新环境,再修改/conf/下的数据库连接配置,跳过install步骤(记得删除install/lock文件以解锁)。
最后补一刀:搬家换域名后,务必核对/public/router.php和Nginx伪静态规则(官方为location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; } }),否则所有内页都404,以上五坑全填完,你的小站就能在新域名下如鱼得水——前提是,别急着注销旧域名的备案。



发表评论