Site down after composer update
Permalink
I am running PHP 7.4.9 (default) and PHP 7.3.21 installed using Remi's RPM repository, and use php fpm pools to allow C5 to use php73.
I have an existing C5 site installed using composer, just executed "composer update". Some of the relevant output at the bottom of this post.
First error occurred at Dotenv\Exception\InvalidPathException\Loader::ensureFileIsReadable() complaining that .env didn't exist so I created on with my applicable concrete5 database credentials.
Tried again, but this time /concrete5/vendor/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php compained that function normalizer_is_normalized() is already defined in symfony/polyfill-intl-normalizer/bootstrap.php
So, gave PHP 7.4.9 a try, but received a host of other errors.
Went back to PHP 7.3.21, and went to https://github.com/concrete5/composer... and saw that their composer.json file had "files": ["src/helpers.php"]. On a whim, added it but no good.
Did a yum update and am now on PHP 7.3.22. Error persists.
Added platform to composer.json, executed composer update using "/usr/bin/php73 /usr/local/bin/composer update". No change.
Copied vendor to vendor_old, and did a new composer update using php73 so I get all new files. No change.
Looking at the earlier composer updates as well as the latest from scratch version, always get the following warning.
Thinking maybe composer should have used the other class, added the following to composer.json. No change.
Desperate, I went to /concrete5/vendor/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php and commented out normalizer_is_normalized(), but the next function caused a similar error so commented out every line in the file. Now I get a little further, but C5 errors:
I am at my wits end, and would really appreciate a little help. Thanks!!!
PS. I've always been concerned about all of composer's abandoned warnings, and wondered whether I need to do anything about it.
I have an existing C5 site installed using composer, just executed "composer update". Some of the relevant output at the bottom of this post.
First error occurred at Dotenv\Exception\InvalidPathException\Loader::ensureFileIsReadable() complaining that .env didn't exist so I created on with my applicable concrete5 database credentials.
Tried again, but this time /concrete5/vendor/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php compained that function normalizer_is_normalized() is already defined in symfony/polyfill-intl-normalizer/bootstrap.php
So, gave PHP 7.4.9 a try, but received a host of other errors.
Went back to PHP 7.3.21, and went to https://github.com/concrete5/composer... and saw that their composer.json file had "files": ["src/helpers.php"]. On a whim, added it but no good.
Did a yum update and am now on PHP 7.3.22. Error persists.
Added platform to composer.json, executed composer update using "/usr/bin/php73 /usr/local/bin/composer update". No change.
"config": { "preferred-install": "dist", "platform": { "php": "7.3.22" } },
Copied vendor to vendor_old, and did a new composer update using php73 so I get all new files. No change.
Looking at the earlier composer updates as well as the latest from scratch version, always get the following warning.
Warning: Ambiguous class resolution, "Normalizer" was found in both "/var/www/concrete5/vendor/patchwork/utf8/src/Normalizer.php" and "/var/www/concrete5/vendor/voku/portable-utf8/src/Normalizer.php", the first will be used.
Thinking maybe composer should have used the other class, added the following to composer.json. No change.
"autoload-dev": { "psr-4": { "ConcreteComposer\\" : "./tests" }, "exclude-from-classmap": [ "vendor/patchwork/utf8/src/Normalizer.php" ] },
Desperate, I went to /concrete5/vendor/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php and commented out normalizer_is_normalized(), but the next function caused a similar error so commented out every line in the file. Now I get a little further, but C5 errors:
Whoops \ Exception \ ErrorException (E_COMPILE_ERROR) Declaration of Concrete\Core\Database\Driver\PDOStatement::free() must be compatible with Doctrine\DBAL\Driver\PDOStatement::free(): void.
I am at my wits end, and would really appreciate a little help. Thanks!!!
$ composer update Gathering patches from concrete5/dependency-patches (extra.patches). Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 11 installs, 53 updates, 0 removals ... - Updating mlocati/concrete5-translation-library (1.5.13 => 1.6.0): Loading from cache ... - Updating concrete5/core (8.5.2 => 8.5.4): Loading from cache ... Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead. Package league/url is abandoned, you should avoid using it. Use league/uri instead. Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested. Package zendframework/zend-cache is abandoned, you should avoid using it. Use laminas/laminas-cache instead. Package zendframework/zend-code is abandoned, you should avoid using it. Use laminas/laminas-code instead.
Viewing 15 lines of 42 lines. View entire code block.
PS. I've always been concerned about all of composer's abandoned warnings, and wondered whether I need to do anything about it.