Context:
- magento 2.1.7 community-edition
- composer.phar 1.7.2
- installed and setup on a development server
- then deployed on a production server (dictinct from the previous)
All worked well, including frontend, products, orders, invoice... but we now required to update magento (at least 2.2.0):
~/.composer/auth.json
set up.- /home/web/www-preprod is magento root directory (and where composer.json and composer.phar resides)
- composer.phar similar to the one used on the development server
Attempt 1: wizard
Stuck at "readiness check":
Check component Dependency
We found conflicting component dependencies
Attempt 2: CLI
Stuck at any composer update
or composer require
php composer.phar update
Loading composer repositories with package information
[Composer\Downloader\TransportException]
The "https://repo.magento.com/packages.json" file could not be downloaded: failed to open stream: Connection refused
update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [--with-dependencies] [--with-all-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-i|--interactive] [--root-reqs] [--] []...
Diagnose
$ php composer.phar diagnose ; echo 'done'; grep wait
Checking composer.json: WARNING
The version field is present, it is recommended to leave it out if the package is published on Packagist.
Defining autoload.psr-0 with an empty namespace prefix is a bad idea for performance
require.magento/product-community-edition : exact version constraints (2.1.7) should be avoided if the package follows semantic versioning
require.composer/composer : unbound version constraints (@alpha) should be avoided
Checking platform settings: WARNING
PHP was compiled with --enable-sigchild which can cause issues on some platforms.
Recompile it without this flag if possible, see also:
https://bugs.php.net/bug.php?id=22999
Checking git settings: OK
Checking http connectivity to packagist: WARNING
[Composer\Downloader\TransportException] The "http://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Connection refused
Checking https connectivity to packagist: WARNING
[Composer\Downloader\TransportException] The "https://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Connection refused
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys: Tags Public Key Fingerprint: * Dev Public Key Fingerprint: * OK
Checking composer version: WARNING
You are not running the latest stable version, runcomposer self-update
to update (1.7.2 => 1.8.0)
Composer version: 1.7.2
PHP version: 7.0.32
PHP binary path: /usr/local/php7.0/bin/php
The server cannot reach repo.packagist.org/packages.json through neither http nor https
update -vvv
$ php -f composer.phar update -vvv ; echo 'done'; grep wait
Reading ./composer.json
Loading config file /home/me/.composer/config.json
Loading config file /home/me/.composer/auth.json
Loading config file ./composer.json
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Failed to initialize global composer: Composer could not find the config file: /home/me/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Reading /home/web/www-preprod/vendor/composer/installed.json
Loading plugin MagentoHackathon\Composer\Magento\Plugin
activate magento plugin
Running 1.7.2 (2018-08-16 16:57:12) with PHP 7.0.32 on Linux / 4.14.66-ovh-vps-grsec-zfs-classid
Loading composer repositories with package information
Downloading https://repo.magento.com/packages.json
Downloading https://repo.magento.com/packages.json
Downloading https://repo.magento.com/packages.json
[Composer\Downloader\TransportException]
The "https://repo.magento.com/packages.json" file could not be downloaded: failed to open stream: Connection refused
Exception trace:
() at phar:///home/web/www-preprod/composer.phar/src/Composer/Util/RemoteFilesystem.php:547
Composer\Util\RemoteFilesystem->get() at phar:///home/web/www-preprod/composer.phar/src/Composer/Util/RemoteFilesystem.php:101
Composer\Util\RemoteFilesystem->getContents() at phar:///home/web/www-preprod/composer.phar/src/Composer/Repository/ComposerRepository.php:682
[... skip some lines for readability ...]
Symfony\Component\Console\Application->run() at phar:///home/web/www-preprod/composer.phar/src/Composer/Console/Application.php:103
Composer\Console\Application->run() at phar:///home/web/www-preprod/composer.phar/bin/composer:56
require() at /home/web/www-preprod/composer.phar:24
[...]
Lacking of any credentials, proxy or configuration error: did anyone had this error too? Googling did not show that specific error.
EDIT: Clue: auth.json
Following @sebastian 's comment, to be thorough:
- I renamed my /home/me/.composer/auth.json.and
- ran
composer.phar global config http-basic.repo.magento.com <public_key> <private_key>
to be sure - that command regenerates the file in /home/me/.composer/
- retrying composer update the very same errors pops up (same stack with -vvv).
Other test: Even without any auth.json, the composer update -vvv ends up identical.
My best clue so far is a server limitation (blacklisted?), I am looking for: - a solution to run composer update on local .json (since I can wget them) - getting back the magento 2.1.7 on dev server, upgrading it from there and then re-uploading on prod server
EDIT: Follow-up on local .json
I managed to set composer.json repository to local:
"repositories": [
{
"type": "path",
"url": "/home/web/www-preprod/packages.json"
}
],
Composer update output:
Problem 1
- The requested package magento/product-community-edition 2.2.0 exists as magento/product-community-edition[2.1.7] but these are rejected by your constraint.
New attempt: set up composer.json by CLI
php composer.phar require magento/community-edition 2.2.0 --no-update
./composer.json has been updated
php composer.phar update
Loading composer repositories with package information
The "https://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Connection refused
https://repo.packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date
Updating dependencies (including require-dev)
[Composer\Downloader\TransportException]
The "http://repo.packagist.org/p/ramsey/uuid%247189d3afa8232bcec2b8a64e5043b64b57616fd03b0280bd3e9995f5c32d50f8.json" file could not be downloaded: failed to
open stream: Connection refused
[...]
So... Now, how to get and setup local .json from repo.packagist.org?