禁用函数不清理,composer直接报错退出
宝塔默认禁用 putenv、proc_open、pcntl_signal 这三个函数,而 Composer 启动时必须调用它们——哪怕只是执行 composer --version,也会卡在 Loading config 之后直接报错或静默退出。这不是网络问题,是 PHP 命令行环境本身被阉割了。
- 进宝塔【网站】→【PHP 管理】→ 选中你项目实际用的 PHP 版本(比如 80 或 82)→【禁用函数】
- 把
putenv、proc_open、pcntl_signal这三项**手动删除**(不是取消勾选,是彻底删掉文字) - 点【重载配置】或重启对应 PHP 服务,否则修改不生效
php 命令找不到?本质是 PATH 和软链接没配好
宝塔把 PHP 装在 /www/server/php/82/bin/php 这类路径下,但终端里敲 php -v 却提示 command not found,说明系统根本不知道 php 在哪。Composer 内部依赖 php 命令,它找不到就直接失败。
- 先确认你要用的 PHP 版本号(比如 82),然后执行:
ln -sf /www/server/php/82/bin/php /usr/local/bin/php - 验证:
php -v应输出 PHP 8.2.x;再跑php -m | grep openssl,确保openssl和tokenizer已启用(Composer 强依赖这两项) - 别改
/usr/bin/php的软链——那是宝塔自身管理用的,乱动可能崩面板
全局安装 composer 必须三步到位,少一步就 Permission denied
很多教程漏掉权限设置,结果 composer --version 报 Permission denied。这是因为 /usr/local/bin/composer 文件没有可执行权限,Linux 默认不运行它。