composer怎么在CentOS安装_composer在CentOS环境部署方法

2次阅读

应手动安装 composer 2.x 官方最新版,避免 yum 安装的过时 1.x 版本;需确保 php-cli、curl 及 zip/openssl 扩展已启用,非 root 用户应以项目属主身份运行 composer install。

composer怎么在CentOS安装_composer在CentOS环境部署方法

直接用 yum 安装的 composer 版本太旧,不推荐

centos 默认源里的 composer 通常是 1.x 旧版,连 PHP 8.1+ 都不兼容,跑 composer install 时大概率报 ParseErrorclass not found。官方早就不维护 1.x,现在主流是 2.x,必须手动装。

用官方安装脚本装最新稳定版 composer

这是最稳妥的方式,绕过系统包管理器,版本可控,权限干净:

  • 先确保已装 php-clicurlyum install -y php-cli curl
  • 执行官方一键安装:curl -sS https://getcomposer.org/installer | php
  • 移动到系统路径并设可执行:mv composer.phar /usr/local/bin/composer && chmod +x /usr/local/bin/composer
  • 验证:composer --version 应输出类似 Composer version 2.7.7

注意:别用 sudo php composer-setup.php 这种分步方式,容易因当前目录或 umask 导致权限异常,mv 前确认 composer.phar 在当前目录且可读。

composer 执行报 PHP extension zip not loaded 怎么办

这是 CentOS 上最常卡住的点——composer 依赖 zipopenssl 扩展,但最小化安装的 CentOS 默认不带。光装 php-zip 不够,还得确认模块真被加载:

  • 查扩展是否启用:php -m | grep -E 'zip|openssl',缺哪个就装哪个
  • 装扩展:yum install -y php-zip php-openssl
  • 关键一步:重启 PHP-FPM 或 apache(如果用 web 方式运行),否则 CLI 下虽能用,但 web 端仍报错;CLI 用户只需确认 php.ini 里有 extension=zip.so
  • 若用的是 Remi 源的 PHP(如 php81-php-zip),包名不同,得按实际 PHP 版本匹配,比如 dnf module install php:remi-8.2 后再装对应扩展

非 root 用户怎么安全使用 composer

生产环境不建议用 root 跑 composer install,尤其当项目含 post-install-cmd 脚本时,可能意外写入系统路径。正确做法是:

  • /usr/local/bin/composer 权限设为 755,所有用户都能执行
  • 项目目录归属普通用户,比如 chown -R appuser:appuser /var/www/myapp
  • 切到该用户再操作:sudo -u appuser composer install --no-dev --optimize-autoloader
  • 避免用 sudo composer install,它会以 root 身份写 vendor/,后续 web 服务器(如 nginx)可能因权限拒绝读取

真正麻烦的不是装不上,而是装完后 vendor 目录属主混乱、扩展没启、或者用了旧版 composer 解析不了新语法——这几个点漏一个,项目就卡在部署第一步。

text=ZqhQzanResources