“网站搬完家,后台能进,数据都在,可采集一开就报错,连之前定时任务都全挂了。”——这是上周一个做影视资源站的老哥在群里发的原话,我看了眼他的截图,苹果CMS V10,服务器从景安换到了腾讯云,域名也换了,采集接口全红,其实这种情况太常见了:搬家不只是搬文件,采集路径、入库规则、定时脚本都得跟着动,下面我以问答形式,把踩过的坑和解决方案拆开说,你照着改,基本能恢复九成以上。
苹果CMS搬家后采集全瘫?老站长手把手教你改路径、换源、稳定时
问:搬家后采集源配置第一步该动哪里?
先别急着点采集,打开application/admin/controller/Collect.php,找到get_url方法,搬家后如果域名变了,采集目标站返回的资源地址可能还是旧域名,或者你本地api.php的路径变了,正确操作:进后台“采集”->“自定义采集”,把每个采集节点的“接口地址”前缀改成新域名下的/api.php/provide/vod/,如果是采集别人资源站,检查对方是否允许你新IP访问——很多资源站有IP白名单,搬家后IP变了必须去对方后台加白,否则一律403,改完先点“测试采集”,看返回的XML里<dd>标签下<pic>和<player>的域名是否正常,不正常就手动替换。
问:采集规则里路径匹配总出错,怎么改才精准?
苹果CMS的采集规则核心在“字段过滤”和“替换规则”,搬家后常见问题:原来用str_replace替换的图片域名失效了,进“采集”->“采集规则”->编辑对应规则,找到“图片处理”一栏,如果原来写的是||oldcdn.com||newcdn.com||,现在要把newcdn.com改成你新服务器绑定的CDN或本地域名,更稳妥的做法:用正则,例如图片路径/upload/vod/前面加https://你的新域名,规则写成preg_replace('/src="\/upload/','src="https://新域名/upload/',$pic),另外注意“播放器组”的路径,如果搬家后播放器JS文件位置变了,去static/player/下确认文件名,规则里from和to要对应改。
问:对接资源站时有哪些坑必须提前避开?
三点,第一,对方资源站如果用了https,你的苹果CMS必须开启curl的CURLOPT_SSL_VERIFYPEER为false,否则采集空,第二,对接“量子资源”或“非凡资源”这类大站,他们返回的<dt>里带分隔符,搬家后如果你的数据库编码从utf8变成了utf8mb4,记得在采集参数里把“数据编码”选对,否则标题乱码,第三,最要命的:搬家后如果换了PHP版本(比如从7.2升到8.0),苹果CMS自带的file_get_contents采集可能超时,去php.ini把allow_url_fopen打开,或者统一改用curl采集,对接前先手动访问一次对方接口,看能否返回XML,返回不了就别折腾规则。
问:定时采集搬家后不执行了,怎么重新设置?
苹果CMS的定时采集靠服务器计划任务,搬家后cron路径变了,登录SSH,crontab -e,原来可能是/www/wwwroot/old.com/index.php,现在要改成新路径/www/wwwroot/new.com/index.php,命令示例:*/10 * * * * /usr/bin/php /www/wwwroot/new.com/index.php /admin/collect/run -m 1,注意两点:一是PHP CLI路径可能不同,用which php查;二是苹果CMS的定时采集需要传参-m指定采集节点ID,去后台“采集”->“采集节点”看ID,如果还不行,检查runtime目录权限,搬家后经常变成root所有,导致www用户写不了日志,chown -R www:www runtime即可。
问:备用采集源怎么选才能保证稳定?
别只依赖一个源,我的做法:主源用“量子资源”(更新快),备用源配“卧龙资源”和“最大资源”,在苹果CMS后台“采集”->“资源库”里,把这三个都加上,但定时任务错开时间:量子每20分钟,卧龙每40分钟,最大每2小时,关键技巧:在采集规则里开启“入库重复判断”,用vod_name+vod_play_from联合去重,一旦主源挂了,手动切换备用源时,直接改定时任务的节点ID即可,不用重写规则,每周末用mysqldump备份一次mac_vod表,万一采集污染数据能快速回滚。
搬家不是终点,采集路径和规则跟着环境走才是常态,按上面五步走一遍,你的资源站基本能半小时内恢复采集,改完任何配置,先清空runtime/cache,再测试,别省这一步。



发表评论