下面由composer命令使用教程欄目記錄一下解決這個(gè)問(wèn)題的方法,遇到有幾次了,印象中每次解決的方法都不一樣
環(huán)境說(shuō)明
CentOS Linux 7 PHP 5.6.36 Composer 1.8.6
亞馬遜香港服務(wù)器
原始輸出
清除緩存
$ composer clearcache Cache directory does not exist (cache-vcs-dir): Clearing cache (cache-repo-dir): /home/work/.cache/composer/repo Clearing cache (cache-files-dir): /home/work/.cache/composer/files Clearing cache (cache-dir): /home/work/.cache/composer All caches cleared.
校驗(yàn)
$ composer diagnose Checking composer.json: OK Checking platform settings: OK Checking git settings: OK Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Composer version: 1.8.6 PHP version: 5.6.36 PHP binary path: /home/work/apps/php/bin/php
查看配置
$ composer config -l [repositories.packagist.org.type] composer [repositories.packagist.org.url] https://mirrors.aliyun.com/composer/ [process-timeout] 300 [use-include-path] false [preferred-install] auto [notify-on-install] true [github-protocols] [https, ssh] [vendor-dir] vendor (/home/work/www/wanglong/vendor) [bin-dir] {$vendor-dir}/bin (/home/work/www/wanglong/vendor/bin) [cache-dir] /home/work/.cache/composer [data-dir] /home/work/.local/share/composer [cache-files-dir] {$cache-dir}/files (/home/work/.cache/composer/files) [cache-repo-dir] {$cache-dir}/repo (/home/work/.cache/composer/repo) [cache-vcs-dir] {$cache-dir}/vcs (/home/work/.cache/composer/vcs) [cache-ttl] 15552000 [cache-files-ttl] 15552000 [cache-files-maxsize] 300MiB (314572800) [bin-compat] auto [discard-changes] false [autoloader-suffix] [sort-packages] false [optimize-autoloader] false [classmap-authoritative] false [apcu-autoloader] false [prepend-autoloader] true [github-domains] [github.com] [bitbucket-expose-hostname] true [disable-tls] false [secure-http] true [cafile] [capath] [github-expose-hostname] true [gitlab-domains] [gitlab.com] [store-auths] prompt [archive-format] tar [archive-dir] . [htaccess-protect] true [home] /home/work/.config/composer
安裝
調(diào)試過(guò)程
Round One
一看到這個(gè)問(wèn)題,首先看了一下 composer 版本,不是最新版本,升級(jí)一下吧
$ composer self-update [SymfonyComponentConsoleExceptionCommandNotFoundException] Command "self-update" is not defined.
命令不存在,想了一下,我的用戶好像權(quán)限不足,算了吧。。。。
Round Two
Google 一下,搜索結(jié)果第一條的解決方案是換源,本來(lái)用的是阿里云的源,換一下吧
$ composer config repo.packagist composer http://packagist.phpcomposer.com
換個(gè)鏡像之后,composer.json 長(zhǎng)這樣
{ "license": "proprietary", "require": { "php": ">=5.6", "guzzlehttp/guzzle": "^6.3", "aws/aws-sdk-php": "^3.52" }, "autoload": { "psr-4": { "Rpc\": "application/library/Rpc/" } }, "repositories": { "packagist": { "type": "composer", "url": "http://packagist.phpcomposer.com" } } }
安裝
不支持 http 只支持 https,想了想還是不改這個(gè)配置吧,不止我一個(gè)人用這臺(tái)機(jī)。。。。
Round Three
我想了下,既然是國(guó)外的服務(wù)器,我干脆直接把鏡像源全去了,都用默認(rèn)的,說(shuō)干就干
composer config -g --unset repos.packagist composer config --unset repos.packagist composer clearcache composer diagnose composer install -vvv
然后安裝,直接安裝成功了???我還沒(méi)反應(yīng)過(guò)來(lái)。由于 composer install -vvv 輸出的日志太長(zhǎng)了,不太方便截圖,放一個(gè) composer install 的輸出截圖
結(jié)論
本次問(wèn)題的解決方法是去掉所有的鏡像源,直接用默認(rèn)的鏡像源安裝,應(yīng)該只適用于國(guó)外的服務(wù)器。