Composer install卡在Loading composer repositories,99%因执行用户为www而非root、配置命令漏-g/repo.packagist/composer三要素或PHP禁用putenv/proc_open/pcntl_signal所致。

镜像源配置不生效,99% 是执行用户错、命令写漏、PHP 函数被禁——不是镜像地址有问题。
为什么 composer install 还在卡 Loading composer repositories
宝塔里点「一键部署」或 PHP 管理器里跑的 composer install,默认是 www 用户执行的,不是 root。你用 root 执行了 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,配置只写进了 /root/.composer/config.json,www 根本读不到。
验证当前执行用户:
在宝塔终端运行 whoami;或者查部署日志里类似 UID=1001 的字段,再用 id -un 1001 查用户名。
- 确认是
www用户后,必须切过去重配:sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 别用
su - www再执行——它可能不加载用户环境,composer命令找不到 - 配置完立刻验证:
sudo -u www composer config -g repo.packagist,输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
composer config -g repo.packagist 命令三要素缺一不可
漏掉任意一项,配置静默失效,不报错也不提示,composer install 照样走官方源。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
-g:必须加,否则只改当前项目下的composer.json,换个项目就失效 -
repo.packagist:键名严格为单数repo,不是repos,也不是repositories.packagist -
composer:这是 type 值,不是可选参数;省略它,Composer 2.0+ 会 fallback 到默认源 -
https://mirrors.aliyun.com/composer/:必须 HTTPS,且末尾/不能少;少一个斜杠,请求路径变成/composerpackages.json,直接 404
PHP 禁用函数没放开,镜像再快也白搭
即使镜像 URL 正确、用户也对了,composer install 还是卡在 Loading composer repositories 或报 putenv() has been disabled,就是宝塔 PHP 管理里禁用了关键函数。
- 进「软件商店」→ 找到你站点用的 PHP 版本 → 「设置」→ 「禁用函数」
- 删掉
putenv、proc_open、pcntl_signal(如果存在) - 保存后重启 PHP 服务(不是重启面板)
- 验证是否生效:在终端运行
sudo -u www php -r "echo putenv('TEST=1');",无报错即 OK
宝塔里根本不用“安装”Composer
Composer 不是宝塔软件商店里的应用,它只是个叫 composer.phar 的 PHP 脚本文件。只要服务器有 PHP(≥7.2),就能直接运行。
- 手动下载:
curl -sS https://getcomposer.org/installer | sudo -u www php -- --install-dir=/usr/local/bin --filename=composer - 或分步:
sudo -u www wget https://getcomposer.org/download/2.7.7/composer.phar -O /usr/local/bin/composer,再sudo chmod +x /usr/local/bin/composer - 确认可用:
sudo -u www composer --version - 注意:终端里执行的 PHP 版本,和宝塔网站设置的 PHP 版本无关,得看
which php和php -v输出
最常被忽略的是:禁用函数列表改了,但没重启对应 PHP 服务;或者以为改了全局配置就一劳永逸,结果部署脚本用的是另一个用户。每次卡住,先 whoami + composer config -g repo.packagist + php -i | grep disable_functions 这三步,比重装镜像快十倍。

















