You may have notice that Composer can get really, reaally slow on some setups. This is the case at my office, so I tried to find a solution. Let’s run Composer in very verbose mode :
# composer -vvv require phpunit/phpunit Reading ./composer.json Loading config file ./composer.json Checking CA file /etc/ssl/certs/ca-certificates.crt Downloading https://packagist.org/packages.json Writing /root/.composer/cache/repo/https---packagist.org/packages.json into cache Downloading http://packagist.org/p/provider-2013%24fabc3be20d24d6af724445e1f9f6cf7a891f5e0d752c3ee50e5de928877bf21e.json
And it seems to get stuck here. In fact, it’s not. If you wait for a little while (let’s say, 2 or 3 minutes), Composer stores the file in cache and downloads the next provider-*.json file. Which takes 3 more minutes and Composer won’t finish its downloads soon because, it will download more than 10 files after that.
But Google is great and it (he ?) gave me the solution :
# composer config --global repo.packagist composer https://packagist.org
And now it runs fast. Just because sometimes, Packagist is slow through HTTP without SSL.
Please note : PHP must support SSL for this to work.