Composer报错proc_get_status被禁用_修改php.ini解除函数限制【避坑】-composer

Composer安装失败因PHP禁用了proc_get_status和proc_open函数,需在php.ini中移除这两个函数并重启PHP服务,二者必须同时启用才有效。

Composer安装失败提示“proc_get_status() has been disabled for security reasons”

这是 PHP 配置层面的函数禁用问题,不是 Composer 本身出错。当 proc_get_status 被禁用时,Composer 在执行脚本、调用 Git、解压包或运行 post-install-cmd 等操作时会直接中止,报错信息通常包含 “proc_get_status has been disabled” 或 “proc_open is disabled” —— 这两个函数常被一起禁用,且 Composer 依赖它们做子进程管理。

常见于共享主机、部分云虚拟主机(如某些阿里云轻量应用服务器默认配置)、或安全加固过的 PHP 环境。

确认当前禁用函数列表

先别急着改配置,先查清楚到底禁了哪些函数。运行以下命令定位真实限制来源:

php -i | grep disable_functions

输出类似:disable_functions => proc_open,proc_get_status,shell_exec,passthru。注意:这个值可能来自多个地方(php.ini、.user.ini、Web 服务器模块配置),优先级取决于 PHP SAPI 类型(CLI 和 FPM 可能读不同文件)。

立即学习“PHP免费学习笔记(深入)”;

  • CLI 模式下 Composer 运行走的是 php -v 对应的 php.ini(可用 php --ini 查看路径)
  • 如果你在 Web 环境触发 Composer(比如通过网页界面安装插件),则要看 FPM 或 Apache 的 PHP 配置,和 CLI 不一定一致
  • 某些环境(如宝塔、cPanel)会额外写入 .user.ini,该文件无法被 php --ini 显示,但对 Web 请求生效

修改 php.ini 解除 proc_get_status 限制

找到对应环境的 php.ini(CLI 下务必确认是 php --ini 输出的那个),搜索 disable_functions 行:

disable_functions = proc_open,proc_get_status,shell_exec

把 proc_get_status 和它依赖的 proc_open 从列表中删掉(注意逗号分隔格式,删完别留多余逗号):

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Composer报错proc_get_status被禁用_修改php.ini解除函数限制【避坑】-composer
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996503+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3996503+
  • 本周更新: 0+
  • 最后更新: 2026-03-16