简介
Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
安装
// 下载 composer-setup.php
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
// 校验签名(可选)
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
// 运行 composer-setup.php
php composer-setup.php
// 删除 composer-setup.php
php -r "unlink('composer-setup.php');"
使用
以安装klein.php为例:
php composer.phar require klein/klein
#或者
./composer.phar require klein/klein
修改国内镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
或者修改composer.json
文件
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
composer常用命令
- php composer.phar init
- php composer.phar install
- php composer.phar update
- more
常见错误
异常消息:Unzip with unzip command failed, falling back to ZipArchive class
大致解释:php-zip 扩展依赖 unzip 命令,无法解压归档的压缩文件,导致回滚到归档。
解决办法:安装 zip、unzip 命令和 php-zip 扩展
#centos (我用 php7.1,以它为例)
yum install zip unzip php7.1-zip
#ubuntu
apt-get install zip unzip php7.1-zip
The Process class relies on proc_open, which is not available on your PHP installation
大致解释:在已安装的 php 中,没有找到可用的 proc_open 进程操作函数。
解决办法:修改 php.ini 配置。把 disable_functions(禁用函数列表)这行里的 proc_open
和 proc_get_status
两个函数删除,然后重启 PHP 服务。