采集模块报错“无法连接数据源”或“cURL error 60”
报错现象:
搬家后,后台采集器一运行就红字报错,提示“cURL error 60: SSL certificate problem”,或者干脆显示“连接超时”,但源站在Windows环境下明明采集正常。
原因分析:
Linux系统的OpenSSL证书路径和Windows不同,Windows下PHP常使用本地CA包,而Linux默认指向系统证书目录(如/etc/ssl/certs),如果你迁移时把PHP配置里的curl.cainfo路径原样搬过来,多半是失效的,部分采集源是HTTPS协议,证书链不完整也会触发此错误。
详细解决步骤:
苹果CMS搬家从Windows到Linux,这5个坑我替你踩平了
- 在Linux服务器上执行命令,下载最新的CA证书包:
wget https://curl.se/ca/cacert.pem -O /usr/local/share/cacert.pem
- 编辑PHP配置文件(
php.ini),找到或新增:curl.cainfo = "/usr/local/share/cacert.pem" openssl.cafile = "/usr/local/share/cacert.pem" - 重启PHP-FPM或Apache,使配置生效:
systemctl restart php-fpm
- 回到后台重新测试采集,若仍报“连接超时”,检查Linux防火墙是否放行采集源IP端口(通常为80/443),用
curl -v命令在服务器终端手动测试源站连通性。
播放器无法加载,视频黑屏但能听到声音
报错现象:
前台播放页能显示视频标题,但播放器区域一片黑,只有声音,或者显示“加载出错,请刷新”,Windows下原本播放正常。
原因分析:
苹果CMS默认播放器基于H5或Flash,搬家后大概率是文件权限问题——Linux下的runtime目录和upload目录没有写入权限,导致播放器调用的临时加密文件无法生成,Nginx的client_max_body_size过小,大视频请求被拒绝也会引起播放器假死。
详细解决步骤:
- 给关键目录赋予755权限,并设置属主为Web运行用户(如
www或nginx):chown -R www:www /你的站点路径/runtime chown -R www:www /你的站点路径/upload chmod -R 755 /你的站点路径/runtime
- 检查Nginx配置,在
server块内添加或修改:client_max_body_size 20m;然后重载Nginx:
nginx -s reload
- 如果视频在本地服务器(非外链),还需要检查Linux下的PHP文件
finfo扩展是否安装,否则MIME类型识别错误,视频流无法正确输出:yum install php-finfo # CentOS apt install php-finfo # Ubuntu
后台登录异常,输入密码后跳回登录页
报错现象:
后台账号密码正确,点击登录后页面刷新回到登录框,没有任何错误提示,Windows下正常,Linux下就卡死在这。
原因分析:
这是典型的Session写入权限问题,Linux下PHP默认Session目录是/var/lib/php/session,如果该目录属主非Web运行用户,或者SELinux阻止了写入,登录状态就无法保存,导致永远“未登录”。
详细解决步骤:
- 查看当前PHP Session路径:
php -r "echo session_save_path();"
- 修改该目录属主和权限:
chown -R www:www /var/lib/php/session chmod 733 /var/lib/php/session
- 如果服务器启用了SELinux,临时关闭或放行:
setsebool -P httpd_can_network_connect 1
检查SELinux状态:
getenforce,如果是Enforcing,建议先setenforce 0测试,确认是SELinux问题后再写规则。 - 清理浏览器Cookie和缓存,重新登录。
页面部分空白或显示乱码(尤其是后台列表页)
报错现象:
前台首页能打开,但进入某个栏目页,内容全部空白,或者后台列表页显示一堆乱码,Windows下没这个问题。
原因分析:
Linux下文件编码和数据库连接编码不一致,苹果CMS默认gbk编码,但Linux的locale环境是UTF-8,加上数据库my.cnf里character_set_server设置不同,容易导致PHP输出的中文变成问号或空白。
详细解决步骤:
- 在
config/config.php里检查数据库连接编码,确保是:'charset' => 'utf8',
注意:苹果CMS老版本曾用
gbk,如果你原库是gbk,需要把表结构转换成utf8mb4,转换命令:mysql -u用户名 -p -e "ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- 调整Nginx配置,添加默认字符集:
charset utf-8; - 修改PHP配置文件里
default_charset为:default_charset = "UTF-8" - 重启Nginx和PHP-FPM,清空
runtime缓存目录。
安装环境检测不通过(提示opcache或fileinfo缺失)
报错现象:
搬家重装苹果CMS,走到环境检测页面,红叉表示“PDO MySQL未启用”或“fileinfo扩展未安装”,明明Windows下都开着。
原因分析:
Linux下PHP扩展需要单独安装,不像Windows下php.ini里直接extension=php_fileinfo.dll,很多客户用宝塔面板或者源码编译时,默认不加载fileinfo和opcache。
详细解决步骤:
- 安装
fileinfo扩展(以宝塔为例):- 在宝塔面板“软件商店”找到已安装的PHP,点击“设置” -> “安装扩展”,勾选
fileinfo和opcache,确定安装。
- 在宝塔面板“软件商店”找到已安装的PHP,点击“设置” -> “安装扩展”,勾选
- 如果命令行操作,CentOS使用:
yum install php-fileinfo
Ubuntu使用:
apt install php-fileinfo
- 重启PHP服务后,在后台重试检测,若检测提示
PDO MySQL缺失,执行:yum/apt install php-mysql
- 记得在
php.ini末尾确认:extension=fileinfo.so extension=pdo_mysql.so
搬家到Linux就像换了一台新引擎,配置习惯全变了,但核心逻辑没变——权限、编码、扩展这三板斧解决90%的问题,你按上面的步骤走,至少能保证后台跑起来、采集不漏、播放不黑屏,如果还有怪问题,大概率是目录路径大小写敏感(Linux下AAA和aaa是两个目录),检查一下入口文件和伪静态规则即可,祝搬家顺利。



发表评论