composer下载失败报“非法操作”通常是windows杀软拦截php.exe或解压进程所致,需为php.exe和composer缓存路径添加白名单,禁用管理员权限运行,并确保zip扩展已启用。

Composer 下载失败报 “非法操作” 是杀软在拦截进程
绝大多数情况下,composer install 或 composer update 卡住、报错“非法操作”“访问被拒绝”“无法创建进程”,不是 Composer 本身出问题,而是 Windows 杀毒软件(尤其是 360、腾讯电脑管家、火绒、Windows Defender 实时防护)把 php.exe 或临时解压的 zip 进程当成可疑行为直接终止了。
- 典型错误现象包括:
proc_open(): fork failed - Cannot allocate memory、Failed to extract ...: unable to create directory ... Permission denied、控制台突然中断且无堆栈,只留一行“非法操作”提示 - 不是 PHP 配置或内存不足——哪怕你把
memory_limit设成 -1,照样失败 - 临时关闭杀软后重试,90% 能立刻成功;但别长期关,得加白名单
给杀软添加 php.exe 和 Composer 目录白名单
以火绒为例(其他杀软逻辑类似):打开「防护中心 → 漏洞防护 → 自定义规则 → 添加路径白名单」,加入以下两项:
-
C:\path\to\php\php.exe(你的 PHP 可执行文件完整路径) -
C:\Users\{username}\AppData\Roaming\Composer(Composer 全局缓存和 bin 目录所在路径)
Windows Defender 则需进入「病毒和威胁防护 → 管理设置 → 添加或删除排除项」,添加上述两个路径。注意:只加目录不够,必须包含 php.exe 本身——因为 Composer 启动子进程时,是用 php.exe 执行 unzip、git clone 等操作,杀软盯的是这个进程。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
检查是否因 zip 扩展缺失触发降级到 proc_open 解压
Composer 默认优先用 PHP 的 zip 扩展解压包;若扩展未启用,会 fallback 到调用系统 unzip 或 7z 命令,再 fallback 到用 proc_open + php 自己流式解压——这步极易被杀软识别为“异常进程创建”而拦截。
- 运行
php -m | findstr zip,确认输出含zip - 若无,编辑
php.ini,取消注释extension=zip(Windows 下可能是extension=php_zip.dll) - 重启终端,再跑
composer diagnose,看是否还提示The zip extension is missing
避免使用管理员权限运行 Composer
很多人误以为“权限不够”所以右键用管理员身份运行 CMD/PowerShell,结果更糟:杀软对提权进程监控更严,且 Composer 在 admin 模式下写缓存可能跨用户权限混乱,导致后续普通用户执行时因缓存损坏继续报错。
- 一律用普通用户权限终端执行
composer命令 - 确保
COMPOSER_HOME(默认%APPDATA%\Roaming\Composer)对该用户有完全控制权 - 如果已用管理员跑过,建议手动删掉
%APPDATA%\Roaming\Composer\cache再重试
真正麻烦的不是加白名单,而是有些企业环境杀软策略由域控下发,个人没权限改——这时候只能换思路:用 composer create-project --no-install 跳过下载,再手动把 vendor 包拷进来,或者改用 GitHub Actions 构建后拉成品包。










