根本原因是当前目录不可写,需切换到家目录或项目专用bin目录下载并设置权限,再通过path或软链接调用。

下载 composer.phar 时提示 “Permission denied” 写入失败
根本原因是当前目录不可写,不是 Composer 的问题,而是 shell 当前工作路径(CWD)的父目录或目标路径权限不足。比如你在 /usr/local 下直接运行 curl -O https://getcomposer.org/composer-stable.phar,而该目录默认不允许普通用户写入。
- 先确认你当前在哪儿:
pwd,再检查该路径是否可写:touch test.txt && rm test.txt;失败就说明不能往这写 - 别硬刚系统目录——改用家目录或项目专用 bin 目录:
mkdir -p ~/bin && cd ~/bin - 下载命令改到安全位置执行:
curl -O https://getcomposer.org/composer-stable.phar - 验证文件完整性:
php composer-stable.phar --version(若报错,说明 PHP CLI 未就绪或 phar 扩展未启用)
为什么 curl | php 安装方式也失败?
这个管道命令本质是把 installer 脚本喂给 PHP 执行,最终仍要写入当前目录下的 composer.phar。如果当前目录不可写,就会卡在“生成文件”这一步,报错类似 file_put_contents(composer.phar): failed to open stream: Permission denied。
- 它不绕过文件系统权限,只是把下载+执行合并在一行
- 解决办法仍是切换到可写目录再运行,例如:
cd ~/bin && curl -sS https://getcomposer.org/installer | php - 注意:某些终端环境(如 Windows WSL 或受限 CI 环境)的
$HOME可能未挂载或被锁定,此时可用mktemp -d创建临时可写目录再跳转
Mac / Linux 上 /usr/local/bin 不存在或无权写入怎么办
/usr/local/bin 是常见全局命令存放点,但它本身可能不存在,或其父目录 /usr/local 权限为 drwxr-xr-x root wheel,普通用户无法创建 bin 子目录。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先检查:
ls -ld /usr/local;如果属主不是你,且没有 w 权限,就别强求 - 手动建
bin需要sudo:sudo mkdir -p /usr/local/bin,但后续仍需sudo chown $USER:admin /usr/local/bin才能持续使用 - 更稳妥的做法是跳过系统路径,用别名或
PATH注入:echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc - 然后把
composer.phar放进~/bin,并加执行权限:chmod +x ~/bin/composer.phar,再建软链接:ln -sf ~/bin/composer.phar ~/bin/composer
Windows 下 PowerShell 或 CMD 下载失败的典型原因
PowerShell 默认禁止远程脚本执行,Invoke-WebRequest 可能被策略拦截;CMD 中用 curl 则依赖 Windows 10/11 自带的 curl 是否启用、是否指向正确版本。
- PowerShell 先查策略:
Get-ExecutionPolicy;若为Restricted,临时放行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 推荐改用
curl(非 PowerShell 命令):curl -O https://getcomposer.org/composer-stable.phar,确保它来自C:\Windows\System32\curl.exe而非 Git for Windows 的 curl - 下载后必须手动创建
composer.bat包装器,否则双击或直接敲composer会失败——Windows 不识别 .phar 为可执行文件类型 - 包装器内容必须是:
@php "%~dp0composer.phar" %*,保存为C:\tools\composer.bat,再把C:\tools加入系统PATH
真正麻烦的从来不是下载不到文件,而是下载后没地方放、放了又不敢执行、执行了又找不到 PHP。盯住 pwd、whoami、ls -ld 这三个命令,比反复重装 Composer 有用十倍。










