PHP命令行不可用需先创建软链接至宝塔PHP二进制文件,再清理禁用函数putenv/proc_open/pcntl_signal,最后全局安装Composer并配置阿里云镜像源。

PHP 命令行不可用?先打通 php 命令链路
宝塔默认不把 PHP CLI(命令行版)加入系统 PATH,所以直接敲 php -v 很可能报 command not found——这不是 Composer 没装好,而是 PHP 本身没“露面”。
必须手动创建软链接,指向宝塔实际安装的 PHP 二进制文件:
• 查看你用的是哪个 PHP 版本(比如 PHP 8.2),对应路径是 /www/server/php/82/bin/php
• 执行:ln -sf /www/server/php/82/bin/php /usr/local/bin/php
• 再运行 php -v,有输出才算真正就位。
否则后续所有 composer 命令都会失败或静默报错。
禁用函数不清理,composer install 必卡死
宝塔 PHP 管理里默认禁用了 putenv、proc_open、pcntl_signal 这三个函数——而 Composer 安装依赖时必须调用它们,尤其是 putenv 用于设置环境变量(如临时镜像源、内存限制等)。
现象很典型:执行 composer install 后卡在 “Loading composer repositories with package information…” 不动,或者直接报错 putenv() has been disabled for security reasons。
解决方法:
• 进入宝塔面板 → 【网站】→【PHP 管理】→【禁用函数】
• 找到并**逐个删除**这三个函数名(不是勾选,是删掉)
• 修改后记得点击【重载配置】或重启 PHP 服务
全局安装 Composer 的最小可行命令集
别被各种“一键脚本”带偏,最稳的方式就是三步命令,全程在宝塔【终端】里执行(无需额外下载 installer.php):
• cd /tmp
• curl -sS https://getcomposer.org/installer | php(生成 composer.phar)
• mv composer.phar /usr/local/bin/composer && chmod +x /usr/local/bin/composer
验证:composer --version 应返回类似 Composer version 2.7.7。
注意:chmod +x 这一步不能省,否则权限不足,某些系统会提示 Permission denied。
国内网络下不换源,composer require 就是慢性等待
官方源在境内几乎不可用,首次运行 composer require laravel/framework 可能卡住 10 分钟以上甚至超时失败。
必须设国内镜像,推荐阿里云(同步及时、稳定):
• 全局生效:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
• 如果只想对当前项目生效(比如测试不同源),去掉 -g 参数,在项目目录下运行:composer config repo.packagist composer https://mirrors.aliyun.com/composer/
换源后,composer install 速度通常从分钟级降到秒级。但要注意:某些私有包或 dev 分支可能未同步到镜像,生产环境上线前建议用 --no-cache 试跑一次官方源确认兼容性。
最常被忽略的一点:Composer 本质是 PHP 脚本,它的一切行为都受当前 PHP 环境约束——不是装上就能用,而是“PHP 能跑,Composer 才能动;PHP 函数放开,Composer 才能装;PHP 版本匹配,依赖才不会爆错”。每一步断在哪,得顺着 PHP CLI → 禁用函数 → 镜像源这个链条去查,而不是反复重装 Composer。









