“采集失败,无法连接目标服务器”
报错现象
搬家后运行采集任务,进度条卡在0%或中途中断,后台提示“资源站无法访问”“SSL证书验证失败”等,部分站点仅个别采集器报错,部分全部失效。
苹果CMS搬家后域名修改全攻略,五个高频Bug的根除方案
原因分析
- 采集插件内硬编码了旧域名或旧IP地址
- 资源站回调地址未同步更新(如magnet、迅雷等专用采集源)
- PHP环境CURL证书链异常(搬家后SSL配置改变)
- 防火墙或服务器安全组未放行采集端口
解决步骤
第一步:进入后台【采集管理】-【自定义采集器】,逐个检查每个采集器的“请求头”“来源地址”字段,将含旧域名的链接替换为“{site_url}”变量或手动改为新域名。
第二步:若使用官方采集接口(如豆瓣、IMDb等),登录资源站后台,将“推送地址”“回调URL”改为新域名。
第三步:通过SSH输入命令 curl -V | grep OpenSSL 查看openssl版本,若低于1.1.1则执行 yum update openssl -y(CentOS)或 apt upgrade openssl -y(Ubuntu)。
第四步:检查服务器防火墙:iptables -L -n | grep 80 若存在DROP规则,添加 iptables -I INPUT -p tcp --dport 80 -j ACCEPT,同时确认阿里云/腾讯云安全组已放行80、443端口。
第五步:手工测试采集:在服务器执行 /usr/bin/php /www/wwwroot/你的站点/api/cron.php?ac=cj 看是否输出成功信息,如有报错则根据PHP错误日志定位。
播放器无法加载:“视频地址无法解析”或“播放器黑屏”
报错现象
点击播放按钮后,播放器界面空白或显示“加载中”,部分资源在旧站正常,搬家后全站无法播放,浏览器F12控制台提示“跨域请求被阻止”或“404 Not Found”。
原因分析
- 播放器插件中的视频源地址仍为旧域名(如vod.old.com)
- 跨域接口未配置Access-Control-Allow-Origin
- Nginx/Apache伪静态规则未适配新域名
- 部分播放器依赖的WebSocket地址未更新
解决步骤
第一步:在后台【播放器管理】-【解析接口】中,将所有“接口地址”中的旧域名替换为新域名,特别注意类似 https://old.com/player/api.php?url= 的地址。
第二步:若使用自定义解析(如jiexi.you.com),需同时修改该解析程序的配置文件,并确保新域名已绑定该子站。
第三步:编辑站点根目录.htaccess(Apache)或Nginx配置文件,添加:
# Nginx示例
location /player/ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST;
}
第四步:检查播放器文件,如/template/你的主题/player/player.js,用文本编辑器搜索旧域名并全部替换为新域名,建议使用sed -i 's/old.com/new.com/g' /路径/*.js批量处理。
第五步:强制刷新浏览器缓存(Ctrl+F5),同时清空CMS后台缓存:系统设置->缓存管理->一键清空。
后台登录异常:“登录失败,验证码错误”或登录跳回首页
报错现象
输入正确账号密码后,验证码始终提示错误,或登录成功但URL跳回http://new.com/admin/index.php并显示空白页,部分用户登录后无法操作任何功能。
原因分析
- session存储路径在新环境中权限不足
- 服务器时间与PHP时区不匹配(验证码生成与验证时间戳冲突)
- 安全密钥因搬家而失效(config.php中的auth_key与数据库不匹配)
- 开启了强制HTTPS但证书未配置成功
解决步骤
第一步:检查/tmp目录权限:chmod 777 /tmp,并修改php.ini中session.save_path = "/tmp",重启PHP。
第二步:编辑/www/wwwroot/你的站点/admin/config.php,找到$_config['authkey'],复制其值;然后连接数据库,执行:
UPDATE `cms_config` SET `v`='你复制的authkey值' WHERE `k`='authkey';
第三步:在后台【系统设置】-【基本设置】中,关闭“强制站点HTTPS登录”开关,等解决登录问题后再重新开启。
第四步:检查服务器时间:date -R若与北京时间相差超过5分钟,执行 ntpdate ntp.aliyun.com 同步。
第五步:清空浏览器Cookie和缓存,或使用无痕模式重新访问后台,若仍报错,修改admin/login.php,在session_start();前加入:session_save_path('/tmp');
页面空白或乱码:“全站只显示PHP源代码”或“XML解析错误”
报错现象
首页或内页显示纯PHP代码,或出现“XML declaration allowed only at the start of the document”等乱码提示,部分页面顶部出现“Warning: Cannot modify header information”警告。
原因分析
- PHP未被正确解析(Nginx/Apache未配置PHP处理器)
- 文件编码被损坏(搬家时使用了非UTF-8的压缩工具)
- 数据库连接字符集未设置(出现乱码)
- 扩展插件中包含了BOM头
解决步骤
第一步:访问http://新域名/phpinfo.php(需先创建此文件),若显示PHP信息则说明解析正常,若空白则检查Nginx配置:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # 确认端口正确
fastcgi_index index.php;
include fastcgi_params;
}
第二步:用Notepad++或VS Code打开任意PHP文件,查看右下角编码是否为“UTF-8无BOM”,若为“UTF-8-BOM”,使用编辑器“编码→转为UTF-8无BOM”批量处理。
第三步:修改数据库连接文件/application/database.php,在'charset' => 'utf8'前加入:'charset' => 'utf8mb4',并检查数据库实际字符集:SHOW VARIABLES LIKE 'character_set_%'; 确保统一。
第四步:禁用所有第三方插件,逐一开启测试,在/application/extra/目录下备份并清空除weixin.php外的其他文件,看是否恢复正常。
第五步:执行数据库编码修复:ALTER TABLE cms_+表名+CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;(需对全部表操作)。
安装环境检测不通过:“GD库未安装”或“curl扩展缺失”
报错现象
访问安装页面时,环境检测列表中出现红色叉号,fileinfo支持:否”“openssl扩展:未安装”,点击“下一步”按钮无效或白屏。
原因分析
- 新服务器PHP版本与苹果CMS需求不符(需≥5.6,推荐7.3-7.4)
- 编译安装时漏装了特定PHP扩展
- 安装程序未正确检测环境(config.php被错误生成)
解决步骤
第一步:在服务器执行 php -m | grep -E 'curl|gd|fileinfo|openssl|pdo_mysql',查看缺失的扩展列表。
第二步:安装缺失扩展(CentOS为例):
yum install php-gd php-curl php-fileinfo php-openssl php-pdo_mysql -y
systemctl restart php-fpm nginx
第三步:若使用宝塔面板,进入【软件商店】-【运行环境】,点击PHP版本后的“设置→安装扩展”,勾选fileinfo、redis等。
第四步:删除已生成的/www/wwwroot/你的站点/data/config.php,重新访问安装页面,注意:如果之前曾安装成功,需先清空数据库所有表(保留install.lock则不能被重装)。
第五步:修改install/index.php,在环境检测函数check_env()开头增加:@ini_set('memory_limit','256M');,解决因内存不足导致的检测失败。
运维箴言:搬家遇到这些故障别慌,80%的问题出在域名替换不彻底,记住三个关键文件:/application/database.php、admin/config.php、config/config.php,以及数据库中的cms_config表,用sed -i 's/old.com/new.com/g'命令全站搜索替换,比手工修改高效十倍。



发表评论