Рейтинг:0

upgrade_status — непредвиденная ошибка о версии PHP

флаг ru

Веду подготовительные работы по обновлению сайта с D8 на D9...

Сайт разработки Drupal (macOS 10.14.6, обслуживаемый Laravel Vagrant) работает под управлением PHP 7.3.28, как в командной строке, так и в php-fpm, и я вижу правильную версию с php --version и в /admin/отчеты/статус

И все же, всякий раз, когда я сканирую свои пользовательские модули через пользовательский интерфейс upgrade_status, я постоянно получаю:

Ошибка команды PHPStan:

/Users/wt/Sites/sitename/vendor/bin/phpstan analysis --error-format=json -c /tmp/upgrade_status/deprecation_testing.neon /Users/wt/Sites/sitename/web/modules/custom/snape 2> /tmp/upgrade_status/phpstan_error_output

Вывод команды:

Пустой.

Ошибка команды:

Неустранимая ошибка: Composer обнаружил проблемы на вашей платформе: для зависимостей Composer требуется версия PHP ">= 7.3.0". Вы используете 7.1.33. в /Users/wt/Sites/sitename/vendor/composer/platform_check.php в строке 24

Если я запускаю phpstan вручную с помощью первой команды, он работает (хотя, что раздражает, вывод JSON усекается).

я прошел через этот вопрос также.

  • добавление "config": { "проверка платформы": ложь} не работает
  • добавление "config": { "платформа": { "php": "7.4" } не работает

Я проверил, как работает пользователь PHP; это я, так же как и через CLI. я также сделал какой php версии на кучу других возможных пользователей, и все они переходят на /USR/локальные/бен/php, который имеет правильную версию PHP.

Я установил drupal/core-dev и phpunit, чтобы попытаться избежать проблем с модулем upgrade_status. У меня последняя версия.

Он корректно работает в рабочей среде (Debian 10).

Рейтинг:1
флаг cn

Бег композитор -vvv о. Найдите строку, которая выглядит так:

«Запуск X.X.X (XXXX) с PHP X.X.XX на XXXX».

Это скажет вам, что использует php composer. Если это не так, иногда вам нужно принудительно установить версию php, которую вы хотите использовать, либо через bashrc, либо каким-либо другим способом. Например, у меня есть сайт, размещенный на сервере cpanel с multiphp, и он находится в моем файле .bashrc:

псевдоним php="/usr/local/bin/ea-php74"
псевдоним composer="php /opt/cpanel/composer/bin/composer"

Примечание. На том же сервере cpanel мы смогли решить эту проблему глобально, установив для системного php значение php 7.4. Наряду с этим мы позаботились о том, чтобы добавить это в каждый проект композитора, поэтому, даже если системный PHP выше, мы можем указать композитору, какие компоненты устанавливать:

"конфигурация": {
  "Платформа": {
    "php": "7.4"
  }
},
флаг ru
В моем случае это также дает мне правильную версию, и жесткое кодирование платформы в composer.json не имеет значения… Я отредактирую вопрос, но пока я запускаю сканирование на производстве (Debian server) для выявления ошибок.
флаг cn
После того, как вы жестко запрограммируете php платформы в composer json, убедитесь, что вы запустили `composer update`

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.