Как обойти ошибку несовместимости версии php в composer?

Ссылка скопирована
1 ответ

Добрый день! лёг сайт, выдаёт такую ошибку:

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.5".

нашёл информацию, что можно зависимость от версии проигнорировать командой composer install --ignore-platform-req php. Но совсем не понимаю, куда эту команду прописать. Сайт на wordpress.

Дополнительно

А вы правда хотите поменять понятную ошибку на непонятные?
Композер вам довольно человеческим языком говорит, что библиотеки, которые вы хотите подтянуть, ориентированы на более современный язык, чем у вас на сервере.
Замечу также, что даже этот "более современный" давно официально устарел.
На какой же копролит вы пытаетесь натянуть сайт?..

  • Как обойти ошибку несовместимости версии php в composer?

  • Ответы:

    composer install --ignore-platform-req=*

    Как обойти ошибку несовместимости версии php в composer?

    Дмитрий Кузнецов @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 (проверил поиском). Вот куда дальше рыть и смотреть совсем не понимаю. Буду благодарен любым советам.

    • Алексей Фирсаев, попробовал, не помогло.. При открытии сайта выдал сообщение о критической ошибки..)
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Ошибку несовместимости версии PHP в Composer лучше не «обходить», а сначала понять, кто требует другую версию: сам проект, пакет или сервер. Composer смотрит не только на текущий PHP в консоли, но и на ограничения в composer.json, composer.lock и параметр config.platform.php.

    Проверьте текущую версию:

    php -v
    composer -V
    composer check-platform-reqs

    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

    composer update --lock composer install

    Ключ --ignore-platform-reqs использовать можно только временно, например чтобы посмотреть зависимости:

    composer install --ignore-platform-reqs

    composer install --ignore-platform-reqs

    Но на боевом сайте так делать опасно: пакет может установиться, а потом упасть с fatal error, потому что реально использует функции новой версии PHP.

    Итог: для разработки можно временно игнорировать platform requirements, но для продакшена нужно привести PHP CLI, PHP-FPM/Apache и требования composer.json к одной версии.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно