Здравствуйте. Такое ощущение, что Drupal 9 ещё очень сырой...
В отчётах о состоянии требуется немедленное обновление базы данных.
При запуске скрипта update.php пишется "Обновление базы данных Drupal", далее справочная информация и кнопка "Продолжить". Жму на неё, попадаю по адресу update.php/selection, где написано, что "Запрашиваемая страница не найдена". Сам файл update.php на сервере есть.
В файле settings.php нашёл строчку $settings['update_free_access']. Переменная установлена как "FALSE" по соображениям безопасности. Изменил значение на "TRUE". Не помогло.
drush updatedb тоже не помог.
Сталкивался кто-нибудь с такой проблемой?
Заранее спасибо за любую помощь.
Комментарии
Да вообще ужос - Drupal 6 наше всё!
Немедленное обновление базы данных требуется только после обновления ядра или контрибных модулей. Если администратор обнаруживает это требование при просмотре отчёта о состоянии, значит он конкретно облажался с последним обновлением.
Вот эта вот "справочная информация" и есть самое интересное. Сам скрипт update.php делает то и только то, о чем его просят обновления ядра и модулей. Нужно понять какой именно модуль просит обновления и, самое интересное, почему же администратор не запустил update.php сразу после обновления модуля?
Администратор - это я.
После того, как увидел в админке, что нужно обновить ядро и список модулей, ввёл такие команды:
composer update drupal/core "drupal/core-*" --with-all-dependencies
Эти команды удалили модуль simplify... Чего я не ожидал. На странице "Отчёт о состоянии" такой текст
Следующий модуль указан установленным в настройках core.extension, но он отсутствует: simplify
Думаю теперь что же можно сделать, чтобы исправить ошибки прошлого... Подскажите пожалуйста существуют ли какие-нибудь варианты? Файл update.php теперь работать не будет?..
"composer update"
Это значит, вы обновили все - ядро и модули и зависимости. Да - многое может слететь, понимаю...
"composer update drupal/core "drupal/core-*" --with-all-dependencies"
... а потом вы снова обновляете Композером ядро. Т.е. уже нет смысла.
Чтобы не было ошибок, нужно перед обновлениям забекапить БД и файлы composer.json, composer.lock и в случае траблов откатываться и снова делать composer install. Можно сначала ядро обновить, потом модули по одному и выявить "проблемный"![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
simplify - не в курсе, что это.
Попробуйте его Композером установить.
https://www.drupal.org/project/simplify/releases/8.x-1.2
$ composer require 'drupal/simplify:^1.2'
Спасибо за помощь. Так и сделал. Но файл update.php всё ровно не срабатывает сейчас.
Пишется, что требуется обновление базы данных, но в процессе, т.е. после нажатия на кнопку "Продолжить" (после чего должна открыться страница "Просмотреть обновления") я попадаю на страницу с текстом "Запрашиваемая страница не найдена". Не пойму почему страница может быть не найдена, если сам файл update.php на сервере присутствует, первая страница этого скрипта запустилась, настройки в settings.php нужные ввёл, т.е. позволил запуск этого скрипта. В интернете на форумах подобных случаев не нашёл.
drush updb че пишет?
А без драша вы кешь ребилд не сделаете (нууу можно но не помню как), т.е. не выведете сайт из дауна после очередного обновления или переброса конфигураций.
Вангую, что админ вебсервера запретил запуск любых файлов, кроме index.php
Обновления выполнились или нет?
Какие вообще обновления БД не выполнены? Они от ядра или от контриба?
Обновляться на проде не очень хорошая идея. Всегда что-то может пойти не так.
Просто так ничего не удаляется. Значит до этого что-то сделали не так. Например, установили этот модуль без композера
Я арендую VPS. Ничего не запрещал...
Обновления выполнились, но сообщение что нужно обновление бд осталось
Без композера ничего не устанавливал и не удалял. Когда запускал composer update в терминале было сообщение, что модуль simplify удалён... Прям так и написано было. Я не думал, что композер может удалять модули...
Сейчас решил восстановить всё из бекапа, но часть работы по сайту будет утеряна...
Если у вас nginx и стандартный конфиг nginx для drupal c сайта nginx, то вам надо заменить
location ~ '\.php$|^/update.php' {
на
location ~ \.php(/|$) {
Если какой-то свой, разрешить обработку адресов вида
/update.php/section
Незнание возможностей инструмента, который вы используете, не освобождает от ответственности его использования.
У вас не Апач? Тогда - Там нужно прописывать в настройках сервера.
Было у меня такое.
Ага и у меня было. Посмотрите настройки сервера для друпала