Как обойти ошибку несовместимости версии php в composer?
Добрый день! лёг сайт, выдаёт такую ошибку:
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.5".
нашёл информацию, что можно зависимость от версии проигнорировать командой composer install --ignore-platform-req php. Но совсем не понимаю, куда эту команду прописать. Сайт на wordpress.
Дополнительно
А вы правда хотите поменять понятную ошибку на непонятные?
Композер вам довольно человеческим языком говорит, что библиотеки, которые вы хотите подтянуть, ориентированы на более современный язык, чем у вас на сервере.
Замечу также, что даже этот "более современный" давно официально устарел.
На какой же копролит вы пытаетесь натянуть сайт?..
Ответы:
composer install --ignore-platform-req=*
Дмитрий Кузнецов @dima9595 Junior PHP Разве на вордпресе теперь композер?) Давно уже не "щупал" его.
По сути, при работе с композером, вы должны открыть консоль сервера и перейти в папку с сайтом (корневая директория). И там ввести эту команду. Linung @Linung Автор вопроса Спасибо! кое как получилось разобраться откуда растут ноги: есть плагин который обновился и у него есть вот такой код:
<?php // platform_check.php @generated by Composer $issues = array(); if (!(PHP_VERSION_ID >= 70205)) { $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.'; } if ($issues) { if (!headers_sent()) { header('HTTP/1.1 500 Internal Server Error'); } if (!ini_get('display_errors')) { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); } elseif (!headers_sent()) { echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; } } trigger_error( 'Composer detected issues in your platform: ' . implode(' ', $issues), E_USER_ERROR ); } |
<?php // platform_check.php @generated by Composer $issues = array(); if (!(PHP_VERSION_ID >= 70205)) { $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.'; } if ($issues) { if (!headers_sent()) { header('HTTP/1.1 500 Internal Server Error'); } if (!ini_get('display_errors')) { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); } elseif (!headers_sent()) { echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; } } trigger_error( 'Composer detected issues in your platform: ' . implode(' ', $issues), E_USER_ERROR ); }
Подскажите пожалуйста, как мне его можно поправить, что бы не было ошибки платформы. Если можно максимально простым языком, т.к. делая сайты на WP 5 лет назад в такие дебри не лез))
P.S. Если просто меняю PHP на хостинге под на 7.4. - выдаёт ошибку 500.
- Как вариант - удалить его)
- @generated by Composer
Не нужно трогать этот файл.
Требования к версии php взяты из требований (composer.json) одного из устанавливаемых через Composer плагинов. - humoured, перед падением сайта обновлялся только плагин Юаст Сео. Как я могу судить - ошибку генерирует как раз platform_check.php, код которого я привёл выше.
Но у этого плагина нет в каталогах файла composer.json (проверил поиском). Вот куда дальше рыть и смотреть совсем не понимаю. Буду благодарен любым советам.
- Алексей Фирсаев, попробовал, не помогло.. При открытии сайта выдал сообщение о критической ошибки..)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Ошибку несовместимости версии PHP в Composer лучше не «обходить», а сначала понять, кто требует другую версию: сам проект, пакет или сервер. Composer смотрит не только на текущий PHP в консоли, но и на ограничения в
composer.json,composer.lockи параметрconfig.platform.php.Проверьте текущую версию:
php -v composer -V composer check-platform-reqs
Если пакет требует PHP выше, чем установлен на сервере, правильный путь — переключить PHP на нужную версию. Например, если проекту нужен PHP 8.1+, а в консоли PHP 7.4, Composer будет падать даже если сайт в панели хостинга работает на другой версии.
Если проблема только в том, что Composer проверяет старую платформу, откройте
composer.jsonи проверьте блок:{ "config": { "platform": { "php": "7.4.0" } } }{ "config": { "platform": { "php": "7.4.0" } } }
Если там указана старая версия, обновите её под реальный сервер или временно уберите этот блок, затем выполните:
composer update --lock composer install
Ключ
--ignore-platform-reqsиспользовать можно только временно, например чтобы посмотреть зависимости:composer install --ignore-platform-reqs
Но на боевом сайте так делать опасно: пакет может установиться, а потом упасть с fatal error, потому что реально использует функции новой версии PHP.
Итог: для разработки можно временно игнорировать platform requirements, но для продакшена нужно привести PHP CLI, PHP-FPM/Apache и требования
composer.jsonк одной версии.