Composer.phar权限不足需chmod+x;Windows下php可能指向php-win.exe导致静默失败;“Could not open input file”因文件缺失、路径错误或杀软删除;PHP CLI缺json/mbstring/openssl扩展也会报错。

composer.phar 权限不足导致“Permission denied”
Linux/macOS 下直接运行 php composer.phar 报错 “Permission denied”,不是文件损坏,而是当前用户没执行权限。Composer 官方安装脚本下载的 composer.phar 默认不带可执行位,必须手动加。
- 运行
ls -l composer.phar,如果第一列没有x(比如显示-rw-r--r--),就说明没权限 - 执行
chmod +x composer.phar补上执行权限 - 再试
./composer.phar --version—— 注意必须加./,否则系统不会查当前目录
Windows 下 php.exe 被替换成 php-win.exe 导致静默失败
在 Windows 上用 php composer.phar 没反应、不报错、卡住不动,大概率是 php 命令实际指向了 php-win.exe。这个二进制不输出任何内容到终端,Composer 就彻底“失声”。
- 运行
where php,看返回路径是否含php-win.exe - 去 PHP 安装目录(如
C:\php)确认是否存在php.exe;若存在,把该目录加进系统Path,并确保它排在含php-win.exe的路径前面 - 验证:在新 CMD 中运行
php -v,能正常输出版本号才算成功
“Could not open input file: composer.phar” 错误的三种真实原因
这个报错表面是文件找不到,但背后有三个常见且互斥的情况,得逐个排除:
-
文件真不在当前目录:运行
ls composer.phar(macOS/Linux)或dir composer.phar(Windows),无输出就说明根本没放对位置 -
路径写错了:比如你在
/project目录下,却执行php ../composer.phar install,而实际composer.phar在/tmp—— 用绝对路径最稳:php /full/path/to/composer.phar install - 文件被防病毒软件删了:某些国产安全软件会把 .phar 当可疑文件静默清除,检查回收站或临时隔离区;重下时建议关掉实时防护
PHP CLI 配置与 phar 运行强相关但常被忽略
即使 composer.phar 有权限、路径对、php.exe 正常,仍可能报错“json extension is missing”或“mbstring required”。这不是 Composer 本身的问题,而是你运行它的 PHP CLI 环境缺扩展。
- 运行
php -m | grep -E "json|mbstring|openssl",确认这些模块在输出里 - 运行
php --ini,看 CLI 加载的是哪个php.ini;别改 Apache 或 FPM 的配置,那对命令行无效 - Windows 用户特别注意:
php.ini里扩展行不能是;extension=php_openssl.dll(分号注释状态),得是extension=php_openssl.dll,且 DLL 文件真实存在于ext/目录下


















