宝塔面板 Composer 怎么安装
照着这篇做完,你就能在宝塔面板的服务器上装好 Composer,并让它用你指定的 PHP 版本正常运行,不再报 command not found 或 proc_open 已被禁用 这类错误。
第一步:确认服务器上的 PHP 版本和路径
宝塔的 PHP 不是装在系统默认位置,而是每个版本一个独立目录,所以第一步要先知道该用哪个路径去调 PHP。
登录宝塔面板,点左侧菜单「软件商店」→ 上方切到「已安装」标签,找到 PHP,看版本号(比如 7.4、8.0、8.1)。它们的路径固定是 /www/server/php/版本号/bin/php。在终端里执行下面这条命令确认一下:
ls /www/server/php/
输出的目录名就是你能用的 PHP 版本号。
注意:Composer 2.x 要求 PHP 7.2.5 以上,并且需要
allow_url_fopen打开。如果你的项目是 PHP 7.1 或更早,只能装 Composer 1.x,但官方已不再维护,建议先升级 PHP。
第二步:打开宝塔自带的终端
这一步是为了拿到一个能敲命令的窗口,不用另外装 SSH 工具。
在宝塔面板首页右上角点「终端」按钮,或者点左侧菜单最下方的「终端」,会弹出一个黑色的命令行窗口,输入服务器 root 密码即可进入。你也可以用自己的 Xshell、FinalShell 连 SSH,效果一样。
进去之后先用 whoami 确认输出是 root,后面的安装都需要 root 权限。
第三步:解除 PHP 的禁用函数
这一步是最容易卡住的地方。宝塔默认把 proc_open、putenv 等函数禁用了,而 Composer 依赖它们,不解禁就会报错。
回到面板「软件商店」→「已安装」→ 找到你要用的 PHP 版本(例如 PHP-7.4)→ 点右侧「设置」→ 选「禁用函数」选项卡→ 在列表里找到并删除下面这几个:proc_open、proc_get_status、putenv、pcntl_signal、symlink。删完点「保存」,再回到「服务」选项卡点一下「重启」。
注意:只删这几个就够了,不要图省事点「清空」,
exec、shell_exec这类函数全部放开会给服务器带来安全风险。
第四步:下载并安装 Composer
这一步把 Composer 官方安装器下载下来,并用你指定的 PHP 版本执行它。
在终端里执行(把 74 换成你自己的 PHP 版本号):
cd /root
curl -sS https://getcomposer.org/installer | /www/server/php/74/bin/php
看到 Composer successfully installed to: /root/composer.phar 就说明下载成功了。
第五步:做成全局命令
这一步让 composer 在任何目录下都能直接敲,并且锁死用它对应的 PHP 版本。
mv /root/composer.phar /usr/local/bin/composer.phar
然后用一个包装脚本调用它:
cat > /usr/local/bin/composer <<'EOF'
#!/bin/sh
exec /www/server/php/74/bin/php /usr/local/bin/composer.phar "$@"
EOF
chmod +x /usr/local/bin/composer
验证一下:
composer -V
正常会输出 Composer version 2.x.x ... PHP 7.4.x,注意看后面那个 PHP 版本号是不是你要的。
注意:如果你在服务器上同时装了多个 PHP 版本,想让另一个站点用 PHP 8.0 的 Composer,请重复第四、五步,把包装脚本写到
/usr/local/bin/composer80之类的名字,别覆盖全局的composer。
第六步:换成国内镜像
官方源在国内下载依赖经常超时,换成阿里云镜像会快很多:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
第七步:在站点目录跑一次
进到你的项目根目录(宝塔默认在 /www/wwwroot/你的域名),执行:
cd /www/wwwroot/你的域名
composer install
如果项目还没装依赖,也可以用 composer require 包名 装单个包。
跑完后如果出现权限报错,执行一次:
chown -R www:www /www/wwwroot/你的域名/vendor
注意:Composer 对内存比较敏感,如果报
Allowed memory size exhausted,在前面加个环境变量:COMPOSER_MEMORY_LIMIT=-1 composer install。
小结
- 宝塔的 PHP 路径是
/www/server/php/版本号/bin/php,装 Composer 必须指定它,不能靠系统默认 PHP。 - 先在「软件商店 → PHP → 设置 → 禁用函数」里删掉
proc_open、putenv等几个函数并重启 PHP。 - 用
curl | php下载 installer,把composer.phar放到/usr/local/bin,再用包装脚本绑定 PHP 版本。 - 全局换阿里云镜像,速度差别很大。
- 执行完记得用
chown www:www处理 vendor 目录权限,避免网站报 500。
原文链接:https://www.gj0.com/thread-1071.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。