下载
依次执行以下三个命令:
#下载安装脚本 - composer-setup.php - 到当前目录
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
#执行安装过程
php composer-setup.php
#删除安装脚本
php -r "unlink('composer-setup.php');"
也可以只执行以下一个命令:
#管道符号 “|” 的功能是把左侧命令的执行结果作为右侧命令的输入
#第一步读取安装脚本
#将第一步的执行结果输入给第二步的 `php` 命令,执行安装
php -r "readfile('https://getcomposer.org/installer');" | php
局部安装
下载后可以将 composer.phar
复制到任意目录,并通过 php composer.phar
使用 composer
全局安装
未进行全局安装前,使用时如果不在 composer.phar
所在目录,需要指定 composer.phar
目录,如:php /home/user/composer.phar
,php C:\bin\composer.phar
全局安装就是把 composer.phar
放到系统的 PATH
目录中,之后就能在全局访问它,而且只需要运行 composer
命令就可以使用,而不需要输入 php composer.phar
。
注意,在windows上需要执行以下命令,在 composer.phar
同级目录生成文件 composer.bat
echo @php "%~dp0composer.phar" %* > composer.bat
升级 Composer
不要忘记经常执行以下命令以保持 Composer 一直是最新版本
composer selfupdate
#或
composer self-update
回退 Composer
composer selfupdate --rollback
#或
composer self-update --rollback
镜像
由于众所周知的原因,国内访问国外网站比较慢甚至连接不上,需要切换为中国区的镜像
修改 composer 的全局配置文件(推荐方式)
执行以下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在系统目录 C:\Users\Administrator\AppData\Roaming\Composer\
的 composer.json 文件的末尾自动添加镜像的配置信息(也可以自己手工添加):
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
修改当前项目的 composer.json 配置文件
执行以下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(也可以自己手工添加):
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
解除镜像
composer config -g --unset repos.packagist
http_proxy 导致的命令异常
一台旧电脑上在遥远的之前安装过 composer
,时隔多年之后,再次使用 composer
执行更新命令时,不断出现 file could not be downloaded
,删除旧版重新安装,安装时也开始出现上述错误。
初时以为是https证书的问题,捣鼓半天无果。后断点 composer-setup.php
的执行过程发现,网络请求时使用了代理,尝试将代理设为空后顺利安装。
开始回想检查代理相关设置,原来这台电脑曾用代理软件设置过环境变量 http_proxy
, 并在 composer.bat
中写入set http_proxy=http://127.0.0.1:10809
set https_proxy=http://127.0.0.1:10809
通过代理执行composer命令。
此时代理软件已经卸载,环境变量 http_proxy
也已经移除,但是 composer.bat
中设置代理的脚本未删除,且运行了,需要再次 set http_proxy=
set https_proxy=
修改代理设置