答案是proc_open和proc_close函数被禁用导致该错误。需检查php.ini中disable_functions是否包含这两个函数,若有则移除并重启服务,或联系主机商启用,还可检查Suhosin补丁限制,最后通过测试脚本验证修复情况。

这个提示 "The Process class is not available" 通常出现在 PHP 环境中 proc_open 或 proc_close 函数被禁用的情况下。Composer 的 Process 组件依赖这些函数来执行外部命令,如果它们被禁用,就会出现这个错误。
检查是否禁用了 proc_open 和 proc_close
打开你的 php.ini 文件,搜索以下内容:
disable_functions = proc_open, proc_close, ...如果看到 proc_open 或 proc_close 被列在 disable_functions 中,这就是问题所在。
解决方法
根据你的环境权限,可以选择以下方式之一:
- 修改 php.ini(推荐):如果你有服务器权限,编辑 php.ini,从 disable_functions 列表中移除 proc_open 和 proc_close,然后重启 Web 服务(如 Apache 或 Nginx)或 PHP-FPM。
- 联系主机商:如果你使用的是共享主机,某些函数可能被默认禁用。联系服务商,询问是否可以启用这些函数。
- 使用替代运行方式:某些 Composer 命令可以通过加参数避免使用 Process 类,但这不是根本解决办法。例如,使用 --no-scripts 或 --no-plugins 可能绕过部分调用,但功能会受限。
- 检查 Suhosin 安全补丁:老版本的 Suhosin 可能额外限制 proc 函数。查看是否有类似配置并适当调整。
验证修复
创建一个临时 PHP 文件测试:
运行该脚本,确认输出为可用后再尝试使用 Composer。
基本上就这些。只要确保 proc_open 没有被禁用,Composer 就能正常工作。这个错误不复杂,但容易忽略配置细节。










