php cli未加入系统路径导致composer无法运行,需创建软链接并解除putenv、proc_open、pcntl_signal禁用,再手动安装composer并配置国内镜像源。

php 命令在终端里不存在,Composer 根本跑不起来
宝塔装了 PHP,但敲 php -v 就报 command not found,这不是 Composer 的问题,是 PHP CLI 二进制根本没挂进系统路径。Composer 启动第一件事就是调用 php,它都找不到,后面全白搭。
进宝塔【网站】→【PHP 管理】,确认你项目实际用的版本(比如 82、80),别凭印象猜。然后在宝塔「终端」或 SSH 里执行:
ln -sf /www/server/php/82/bin/php /usr/local/bin/php
把 82 换成你自己的版本号。验证:php -v 有输出,且 php -m | grep openssl 和 php -m | grep tokenizer 都得有结果——缺一个,Composer 启动直接失败。
composer install 卡在 “Loading composer repositories…”
这不是网络慢,是宝塔默认禁用了三个关键函数:putenv、proc_open、pcntl_signal。Composer 内部大量依赖它们做环境隔离、进程调度和信号处理。
进宝塔【PHP 管理】→ 选中对应 PHP 版本 → 【禁用函数】,找到这三行,**逐个删除文字内容**(不是取消勾选,也不是打叉)。删完必须点【重载配置】或重启该 PHP 服务,否则等于没改。
如果服务器装了多个 PHP 版本(比如站点用 82,CLI 默认调 74),要分别检查每个版本的禁用函数列表,漏一个就卡住。
全局安装 Composer 的三行命令,别信一键脚本
宝塔软件商店的“Composer 安装”插件常漏配 PATH、忽略函数限制,后续排查更麻烦。用以下三行最可控,全程在宝塔【终端】里执行:
cd /tmp curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer && chmod +x /usr/local/bin/composer
chmod +x 这一步不能省。没权限,composer --version 就会报 Permission denied。如果提示 /usr/local/bin 不可写,就换路径:mv composer.phar /root/composer.phar,再加一行 echo "alias composer='php /root/composer.phar'" >> /root/.bashrc,最后 source /root/.bashrc。
Web 端能一键装 PHP 扩展,但 Composer 不行
宝塔软件商店里点几下就能装 redis、opcache、fileinfo,但 Composer 不在其中——它不是 PHP 扩展,而是独立的 PHP 应用程序,必须手动部署。所谓“一键安装 Composer”的插件,本质只是帮你跑上面那几行命令,还经常跳过软链接和函数解禁步骤。
如果你看到某个插件声称“自动配置国内镜像源”,先别点。镜像源必须等 Composer 装好后手动设:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。否则第一次 install 仍走国外源,卡死概率极高。
真正容易被忽略的是:CLI 和 FPM 加载的 php.ini 是两份。你改了网站用的 PHP 版本的禁用函数,但终端里 php 命令可能指向另一个版本,导致 Composer 还是跑不动——得两边都查、两边都改。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











