采集模块报错“Fatal error: Allowed memory size exhausted”
苹果CMS搬家从服务器到虚拟主机,这5个坑我替你踩过了
报错现象:后台点采集,跑了几百条数据直接白屏,或者弹出一串红色英文,提示内存耗尽。
原因分析:虚拟主机的memory_limit通常只有128M,而苹果CMS采集时会把整页列表和详情缓存进内存,旧服务器可能是256M或512M,搬家后没同步调整。
详细解决步骤:
- 进入虚拟主机控制面板,找到
PHP.ini或php配置入口(如果是cPanel,用“MultiPHP INI Editor”)。 - 把
memory_limit改成256M,甚至512M,如果主机商限制最高256M,那就先改到上限。 - 同时调整
max_execution_time为120,max_input_time为120,防止采集超时中断。 - 保存后,重启PHP进程(一般在面板里点“重启”或“应用”)。
- 再进后台“系统-采集参数配置”,把“每次采集条数”从默认的1000降为100,分批采集,避免一次打爆内存。
播放器无法加载,一直转圈或报错“视频地址解析失败”
报错现象:前台能打开电影详情页,但播放器区域空白,或提示“当前视频源不可用”“解析接口异常”。
原因分析:服务器搬虚拟主机后,伪静态规则或跨域头丢失,导致播放器请求的接口(比如/api.php/provide/vod/)返回404或跨域拒绝。
详细解决步骤:
- 确认虚拟主机支持
.htaccess(Apache)或web.config(IIS),如果不支持,先联系主机商开启。 - 在网站根目录放一份直连版本的
.htaccess参考:SetEnvIf Origin "^(.*\.example\.com)$" ORIGIN_SUB_DOMAIN=$1 Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET,POST,OPTIONS"把
example.com换成你的域名。 - 进后台“系统-URL优化”,把“伪静态”关掉再打开,强制刷新生成新规则。
- 如果播放器用的是自定义解析接口(比如
https://jx.xxx.com/?url=),确认该接口是否拒绝虚拟主机IP段,有些解析商封了共享IP,这时换一个公共解析接口即可。 - 清除浏览器缓存和CDN缓存(如果开了CDN),强制Ctrl+F5测试。
后台登录异常,输入正确账号密码却提示“密码错误”或直接无限跳转登录页
报错现象:搬家后第一次登录后台,输了正确密码,提示错误;或者登录成功后跳回登录页,登录态丢失。
原因分析:虚拟主机的session.save_path可能被设为临时目录,搬家后目录权限不对,导致session写不进去,如果数据库里user表的密码字段是加密的,但搬家时用了不同PHP版本(如从7.0搬到7.4),加密算法兼容性也有影响。
详细解决步骤:
- 打开
/application/extra/下的config.php,检查session配置,确认没有硬编码临时路径。 - 在网站根目录新建一个
phpinfo.php<?php echo ini_get('session.save_path'); ?>,访问看输出路径,如果是/tmp,就在虚拟主机面板的“PHP配置”里改为session.save_path = "/var/tmp",并确保该目录可写(权限755)。 - 如果还不行,直接用主机商提供的
phpMyAdmin,进数据库执行:UPDATE mac_user SET password = MD5('你的新密码') WHERE admin_name = 'admin';注意苹果CMS旧版本用的可能是
md5(md5(密码)+盐),如果直接MD5不行,就改用原生SQL插入一个已知可用的密码哈希(从原服务器导出旧admin表记录对比)。 - 登录成功后,立即进“系统-系统工具-清理缓存”,删除
runtime/目录下的所有文件(保留目录本身)。
页面空白或乱码,前台全屏白屏,或显示菱形乱码
报错现象:搬家后前台首页、列表页、详情页全部白屏,无任何报错;或者页面出现一堆�``—这类乱码。
原因分析:大概率是数据库字符集不统一,原服务器是utf8mb4,虚拟主机导入时被降级成utf8,或者application/database.php里配置的字符集是utf8,但数据库表是utf8mb4,导致中文写入读出错。
详细解决步骤:
- 用
phpMyAdmin打开数据库,依次点击每个表,操作页查“排序规则”,如果看到utf8_unicode_ci,统一改成utf8mb4_unicode_ci。 - 修改
application/database.php里的charset为'utf8mb4',collation为utf8mb4_unicode_ci(如果TP5支持)。 - 如果还是白屏,开启调试模式:编辑
application/config.php,把'app_debug' => false改为true,刷新页面看具体报错信息,通常是缺少某个PHP扩展(如curl、fileinfo),虚拟主机后台“PHP扩展管理”里勾选开启。 - 乱码问题解决:在数据库导入前,用
Notepad++打开SQL文件,编码转为“UTF-8无BOM格式”,再导入。
安装环境检测不通过,提示“PDO_MYSQL不支持”或“curl扩展未开启”
报错现象:搬家后重新安装苹果CMS,到“环境检测”步骤,一堆红色叉号,特别是PDO_MYSQL、curl、openssl。
原因分析:虚拟主机默认PHP版本可能较旧(如5.6),或没启用常用扩展,而且苹果CMS新版要求PHP 7.2以上。
详细解决步骤:
- 在虚拟主机面板选择PHP版本,切换到
PHP 7.4(或8.0,但8.0需确认CMS版本兼容)。 - 在“PHP扩展”管理里,全部勾选:
curl、pdo_mysql、mysqli、gd、fileinfo、openssl、mbstring、zip。 - 如果主机商不提供切换,让客服手动改
.htaccess,加上:AddHandler application/x-httpd-php74 .php先在根目录放一个
phpinfo.php,确认生效的版本和扩展。 - 安装目录如果提示“目录不可写”,用FTP工具把
runtime/和application/data/的权限改为755(部分主机需777,但安全起见试755优先)。 - 重跑安装器,这次应该全绿。
最后建议:搬家后不要急着立刻上线,先在虚拟主机上把采集、播放、登录、搜索全流程跑一遍,特别留意日志文件(runtime/log/)的报错,虚拟主机虽然省心,但很多坑都是“设置”问题,不是“性能”问题,照着上面几步调完,基本能稳定运行。



发表评论