数据抓取失败或返回空
现象描述
搬家后运行采集任务,提示“采集资源库连接失败”或“采集完成但无数据入库”,部分站点甚至出现采集进度卡在0%。
原因分析
- 新服务器PHP配置中禁用了
allow_url_fopen或curl_exec函数 - 采集目标站更换了接口地址或加密规则(与搬家无关但常被误判)
- 权限问题导致采集插件无法写入缓存目录
- PHP版本差异导致采集类库兼容性错误
解决步骤
- 登录宝塔面板,找到当前站点的PHP配置文件,搜索
disable_functions,移除curl_exec、file_get_contents、fsockopen三个函数名后重载配置。 - 检查
/runtime/目录权限,设置为777递归权限。 - 打开
/application/extra/resource.php,核对采集平台的接口版本号是否与当前CMS版本匹配,苹果CMSv20建议禁用v16接口。 - 在PHP设置中将
max_execution_time改为600,memory_limit改为256M,避免大任务超时。
播放器无法加载:黑屏或提示“播放器初始化失败”
现象描述
前台点击播放按钮,播放器区域空白或显示“当前播放器无法解析此视频”,但后台播放地址存在。
苹果CMS搬家后常见问题自查与修复手册
原因分析
- 搬家后播放器配置文件中的静态资源路径错误(如CDN地址未更新)
- 跨域问题导致播放器JS被浏览器拦截
- 新服务器未安装
fileinfo扩展(影响视频格式识别) - 水印/广告插件路径固化导致阻塞
解决步骤
- 打开
/static/player/目录,检查所有播放器文件名是否实际存在,若搬家使用了压缩包迁移,小写字母与大写文件名最容易出错。 - 在网站根目录
.htaccess中添加跨域头:Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS" - 宝塔面板→PHP→安装扩展,勾选
fileinfo并安装。 - 检查
/application/extra/player.php中的cdn_url参数,若为空则留空,使用相对路径,若指向旧域名,直接替换为新域名。
后台登录异常:提示“验证码错误”或直接跳回登录页
现象描述
输入正确密码后,页面反复刷新回到登录界面,或提示验证码不正确,但明明输入正确。
原因分析
- session存储路径在新服务器上不可写
- 搬家后缓存文件未清理,旧的session数据与当前环境冲突
- 使用了反向代理但未配置正确IP透传(导致验证码校验失败)
- PHP会话机制与Redis冲突(常见于从普通环境迁到Redis实例)
解决步骤
- 登录服务器执行
rm -rf /tmp/sess_*清空临时会话文件,同时清理/runtime/session/目录。 - 在宝塔面板左侧“软件商店”中找到Redis,切换为“不启用”,因为苹果CMS原生不支持Redis session存储。
- 如果使用了Nginx反代,在站点配置中添加:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; - 进入数据库,执行
OPTIMIZE TABLE mac_user修复用户表索引,有时搬家导致表损坏。
页面空白或乱码:访问任何页面均无内容
现象描述
首页、详情页、列表页全部显示白屏,或出现一堆PHP错误提示,更严重的是浏览器直接下载PHP文件。
原因分析
- 数据库导入不完整(特别是执行了多个sql文件但顺序错误)
- PHP版本不兼容(苹果CMSv20要求PHP7.3-7.4,PHP8.0直接爆破)
- Nginx/Apache未正确解析PHP文件
- 编码问题:新服务器默认字符集与数据库不一致
解决步骤
- 检查PHP版本:安装PHP7.4并设为默认版本,删除PHP8.0的配置。
- 数据库连接配置确认:打开
/application/database.php,核对hostname不要写localhost,写0.0.1避免某些云数据库socket冲突。 - 在宝塔站点设置中,确保“PHP版本”选择正确,不要选“纯静态”。
- 数据乱码时:导出sql文件用Notepad++转为UTF-8 without BOM格式,重新导入前执行
SET NAMES utf8。 - 查看PHP错误日志:
tail -f /www/wwwroot/站点/runtime/log/日期.log,定位具体报错文件行号,常见为某个插件代码不兼容新PHP版本,直接注释该行或升级插件。
安装环境检测不通过
现象描述
重新安装苹果CMS时,环境检测列表红色叉号,包括pdo、curl、gd等扩展缺失。
原因分析
- 宝塔全新安装Linux系统时,默认只装了基础扩展
- 使用了极简版的Docker镜像或云服务器基础镜像
- 旧网站未卸载干净,新版本CMS对扩展要求更高
解决步骤
- 宝塔面板→软件商店→运行环境,找到当前PHP版本,点击“安装扩展”,分别安装:
pdo_mysqlcurlgdmbstringopensslxmlfileinforedis(可选)
- 如果仍然报错,在SSH执行:
php -m | grep pdo查看是否真实加载,有时宝塔显示安装成功但实际未生效,需重启PHP服务。 - 极特殊案例:旧服务器使用了自定义编译的PHP,搬家后新环境缺少
ioncube扩展,在宝塔“软件商店”搜索ioncube并安装,再把/ioncube/目录下的加载器文件放入PHP扩展目录。
搬家后其他怪异现象
现象2:搜索功能失效,输入关键词回车后无反应。
原因:sphinx或xunsearch全文搜索索引文件未移动。
解决:直接禁用全文搜索,回到苹果CMS后台“系统管理”→“搜索设置”,改为“MySQL全文检索”。
现象3:后台统计数据显示为0,但数据表有记录。
原因:搬家后crontab定时任务未配置。
解决:在宝塔计划任务添加:* * * * * php /www/wwwroot/站点/think timer 每分钟执行统计任务。
现象4:手机端访问跳转到旧域名。
原因:数据库中的mac_config表里site_domain字段未更新。
解决:执行SQL:UPDATE mac_config SET value='新域名' WHERE name='site_domain';
最后提醒:每次搬家后第一件事永远不是修改代码,而是清理runtime目录(/runtime/下所有文件),否则之前缓存的错误模板会持续干扰,如果以上步骤都无法解决,在数据库的mac_plugin表里暂时禁用所有第三方插件,再用二分法逐一排查。



发表评论