Composer 是 PHP 的依赖管理工具,用于自动化安装和管理项目所需的第三方库。以下是针对不同操作系统的详细安装步骤及常见问题解决方案。
系统要求
PHP 7.2.5+(推荐 PHP 8.1+ 以兼容 Magento 2.4.6+)。
需启用以下 PHP 扩展:openssl
、pcntl
、mbstring
、json
、curl
、zip
。
确保 php.ini
中 disable_functions
未禁用 proc_open
、proc_get_status
。
检查 PHP 环境
运行以下命令确认 PHP 版本及扩展是否就绪:
bash
php -v php -m | grep -E "openssl|pcntl|mbstring|json|curl|zip"
1. Linux(Ubuntu/CentOS)
方法一:命令行安装(推荐)
bash
# 下载 Composer 安装脚本 curl -sS https://getcomposer.org/installer | php
# 将 Composer 移动到全局路径 sudo mv composer.phar /usr/local/bin/composer
# 验证安装 composer --version
方法二:通过包管理器安装(Ubuntu)
bash
sudo apt update sudo apt install composer
2. macOS
使用 Homebrew 安装
bash
brew install composer
手动安装
bash
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
3. Windows
通过安装程序安装
运行安装程序,确保勾选“Add Composer to PATH”。
打开命令提示符,运行 composer --version
验证。
手动安装(无管理员权限)
cmd
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');"
将生成的 composer.phar
移动到项目目录,并通过 php composer.phar
运行。
全局配置(可选)
设置镜像源(加速国内下载):
bash
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
查看当前配置:
bash
composer config -l
项目级配置
在项目根目录创建 composer.json
文件,定义依赖库:
json
{ "require": { "monolog/monolog": "^2.0" } }
运行 composer install
安装依赖。
1. 安装时提示“无法验证签名”
原因:网络问题导致下载的安装脚本不完整。
解决:手动下载安装脚本并验证:
bash
php -r "copy('https://composer.github.io/installer.sig', 'installer.sig');" php -r "if (hash_file('SHA384', 'composer-setup.php') === trim(file_get_contents('installer.sig'))) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php
2. 内存不足错误
现象:安装大型依赖时提示 Allowed memory size exhausted
。
解决:临时增加内存限制:
bash
php -d memory_limit=1G /usr/local/bin/composer install
或永久修改 php.ini
:
ini
memory_limit = 1G
3. 权限问题
现象:Cannot create cache directory
或 Permission denied
。
解决:
Linux/macOS:修改缓存目录权限:
bash
sudo chown -R $USER ~/.composer
Windows:以管理员身份运行命令提示符。
4. 依赖冲突
现象:Your requirements could not be resolved to an installable set of packages
。
解决:
运行 composer update
尝试自动解决冲突。
手动指定版本号(如 "monolog/monolog": "1.25.5"
)。
使用 composer why-not <package>
分析冲突原因。
升级 Composer
bash
composer self-update
卸载 Composer
Linux/macOS:删除 /usr/local/bin/composer
。
Windows:从控制面板卸载或删除 composer.phar
。
项目初始化
bash
composer init
按提示输入项目信息,生成 composer.json
。
依赖管理
安装新依赖:
bash
composer require <package>:<version>
移除依赖:
bash
composer remove <package>
性能优化
使用 --no-dev
跳过开发依赖安装(生产环境):
bash
composer install --no-dev
启用并行下载(需 Composer 2.0+):
bash
composer install --prefer-dist