Composer簡介php
Composer 是 PHP 的一個依賴管理工具。它容許你申明項目所依賴的代碼庫,它會在你的項目中爲你安裝他們。Composer 不是一個包管理器。是的,它涉及 "packages" 和 "libraries",但它在每一個項目的基礎上進行管理,在你項目的某個目錄中(例如 vendor)進行安裝。默認狀況下它不會在全局安裝任何東西。所以,這僅僅是一個依賴管理。html
執行composer install遇到錯誤:Your requirements could not be resolved to an installable set of packages. 這是由於不匹配composer.json要求的版本。nginx
完整錯誤以下:laravel
1
2
3
4
5
6
7
8
9
10
11
|
vagrant@homestead:/usr/share/nginx/html/laravel-blog$ sudo composer install
Loading composer repositories with package information
Installing dependencies (including
require
-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request
for
doctrine/instantiator 1.0.3 -> satisfiable by doctrine/instantiator[1.0.3].
- doctrine/instantiator 1.0.3 requires php ~5.3 -> your PHP version (7.0.3) does not satisfy that requirement.
Problem 2
- doctrine/instantiator 1.0.3 requires php ~5.3 -> your PHP version (7.0.3) does not satisfy that requirement.
- phpunit/phpunit-mock-objects 2.3.0 requires doctrine/instantiator ~1.0,>=1.0.1 -> satisfiable by doctrine/instantiator[1.0.3].
- Installation request
for
phpunit/phpunit-mock-objects 2.3.0 -> satisfiable by phpunit/phpunit-mock-objects[2.3.0].
|
提示個人PHP 7版本過高,不符合composer.json須要的版本,可是在PHP 7下應該也是能夠運行的,composer能夠設置忽略版本匹配,命令是:json
1
|
composer install --ignore-platform-reqs
|
or緩存
1
|
composer update --ignore-platform-reqs
|
再次執行composer命令能夠正常安裝包了。composer
若是提示警告:工具
1
2
|
Cannot create cache directory /home/vagrant/.composer/cache/repo/https---packagist.org/,
or
directory is not writable. Proceeding without cache
Cannot create cache directory /home/vagrant/.composer/cache/files/,
or
directory is not writable. Proceeding without cache
|
這是在虛擬機中執行composer,提示這個目錄沒有可寫權限,composer沒法緩存下載的包,這樣就每次都得從新下載,把目錄改爲可寫可讀便可。ui
1
|
sudo
chmod
-R 777 /home/vagrant/.composer/cache/files/
|
另外,在虛擬機中也設置composer爲國內鏡像,否則下載速度慢的要死,執行:spa
1
|
composer config -g repo.packagist composer https:
//packagist.phpcomposer.com
|
OK,大功告成。