Magento 2: Почему происходит перестройка config.php из-за сбоя CLI с "Недопустимым базовым URL"?
Для настройки фона я использую Magento 2.3.0 и импортировал (пока успешно) данные с существующего сайта с несколькими магазинами. Теперь я не могу получить доступ ни к интерфейсу, ни к административной области сайта, так как конфигурация теперь изменилась, и Magento выдает исключение с просьбой перестроить config.php
. Проблема началась, когда я изменил ключ конфигурации из командной строки (URL-адрес интерфейса администратора).
Теперь, когда я пытаюсь восстановить/etc/config.php использование
php bin/magento app:config:import
Я получаю сообщение об ошибке
Import failed: Invalid Base URL. The value must be a URL or one of the placeholders: {{base_url}}
...что, кстати, является довольно слабым сообщением об ошибке, поскольку в нем даже не указано, какой ключ вызывает проблему.
После прохождения кода я вижу один из ключей-нарушителей web/unsecure/base_web_url
для области default
, что вызывает проблему, поскольку при обработке чтения после конфигурации ядра Magento 2 он возвращает http:///
, который явно является недопустимым URL-адресом. Это несмотря на то, что в моей базе данных (в core_config_data) для этого пути и области действия есть запись с допустимым URL-адресом (который не заканчивается конечным /).
Углубляясь в код, я вижу, что проблема в том, что module-store/Model/Config/Placeholder
вызывает /App/Request/Http->getDistroBaseUrl()
, который использует переменную сервера PHP ['HTTP_HOST']
для определения хоста, который пуст при вызове из командной строки и, следовательно, возвращает http:///
.
Если кто-нибудь сможет пролить какой-либо свет на то, как это можно решить, я был бы очень признателен.
1 answers
Аналогичная проблема в прошлом заключалась в том, чтобы кэшировать в вашем интерфейсе командной строки, выполните следующее
rm -rf var/cache/ generation/
После того, как вы выполнили вышеуказанное, запустите
php bin/magento setup:upgrade && php bin/magento setup:static-content:deplpoy
Возможно, вам потребуется ускорить процесс развертывания. Вы можете сделать это, добавив -f в конец второй команды
После чего все сработало нормально, убедитесь, что параметр установлен и действителен в базе данных, прежде чем конфигурация будет кэширована в magento 2