Composer安装PHP AI包失败主因是本地环境不满足依赖约束:PHP版本不符、缺少ext-curl等扩展、allow_url_fopen禁用或CA证书配置错误,需逐项核查并修正。

Composer 安装 PHP AI 包失败,大概率不是包本身的问题,而是本地环境没对上依赖约束——特别是 php 版本、ext-curl 扩展、或 allow_url_fopen 被禁用。
Composer 报错 “Your requirements could not be resolved”
这是最典型的依赖冲突提示,尤其在安装 llamap-php、php-ai/brain 或封装了 Python 服务的 SDK 时高频出现。Composer 不会直接告诉你哪条规则卡住了,得手动拆解:
- 运行
composer show php确认当前 CLI 使用的 PHP 版本(注意:不是 Web Server 的版本) - 查目标包的
composer.json,重点看"require": { "php": "^8.1" }这类约束——你本地是 PHP 8.0?那就必然失败 - 有些 AI 包依赖
ext-json、ext-mbstring、ext-curl,缺一个就进不了依赖解析阶段,用php -m | grep -E "curl|json|mbstring"快速核对 - 别直接
composer require xxx,先加--dry-run:例如composer require php-ai/brain --dry-run,它会打印出完整冲突链
“cURL error 60: SSL certificate problem”
国内环境常见,尤其是公司内网或 macOS M1/M2 上用 Homebrew 装的 PHP。这不是证书过期,而是 Composer 默认信任系统 CA,但某些 PHP 构建没带完整证书包:
- 临时解决(仅开发):
export COMPOSER_CAFILE=/usr/local/etc/openssl@3/cert.pem(macOS Homebrew openssl@3 路径) - Windows 用户常卡在这里:PHP 的
curl.cainfo没配,打开php.ini,取消注释并修正路径:curl.cainfo = "C:phpextrassslcacert.pem" - 更稳妥的做法是让 Composer 自己管理:运行
composer config -g cafile /path/to/cacert.pem,然后从 curl 官方下载最新 pem 存到该路径 - 严禁设置
verify_peer = false或composer config -g secure-http false——这等于关掉 HTTPS 校验,后续可能拉到被篡改的包
require llm-xxx 类包后 vendor/autoload.php 加载失败
很多 AI 包(比如 php-llm/transformer)依赖 PSR-4 自动加载,但它们的 autoload 配置写法不统一,容易和你的项目结构打架:
立即学习“PHP免费学习笔记(深入)”;
- 检查包的
composer.json中"autoload": { "psr-4": { "PhpLlm\": "src/" } }—— 如果你项目也用了PhpLlm命名空间,就会冲突,报Class not found - 别手写
require 'vendor/autoload.php'后再 new 类;确保入口脚本在项目根目录下执行,且没有覆盖getcwd() - 某些包(如
infiny/ai)把核心类放在lib/下却没声明 autoload,这时必须手动加映射:composer config autoloader-suffix YourProject+ 修改autoload字段 - 运行
composer dump-autoload -o强制重生成优化后的加载器,比默认的快,也能暴露路径映射错误
真正卡住人的,往往不是某一行代码写错,而是 PHP CLI 版本、扩展开关、CA 证书路径、命名空间前缀这四样东西里有两样没对齐——建议每次 composer require 前,先跑一遍 php -v && php -m | grep -E "(curl|json|mbstring)" && php -r "echo ini_get('allow_url_fopen');"。



















