Drupal 9. Запуск скрипта update.php. Запрашиваемая страница не найдена.

19 сентября 2021 в 15:54

Здравствуйте. Такое ощущение, что Drupal 9 ещё очень сырой...

В отчётах о состоянии требуется немедленное обновление базы данных.

При запуске скрипта update.php пишется "Обновление базы данных Drupal", далее справочная информация и кнопка "Продолжить". Жму на неё, попадаю по адресу update.php/selection, где написано, что "Запрашиваемая страница не найдена". Сам файл update.php на сервере есть.

В файле settings.php нашёл строчку $settings['update_free_access']. Переменная установлена как "FALSE" по соображениям безопасности. Изменил значение на "TRUE". Не помогло.

drush updatedb тоже не помог.

Сталкивался кто-нибудь с такой проблемой?

Заранее спасибо за любую помощь.

Комментарии

misterpronin wrote: Такое ощущение, что Drupal 9 ещё очень сырой...

Да вообще ужос - Drupal 6 наше всё!

misterpronin wrote: В отчётах о состоянии требуется немедленное обновление базы данных.

Немедленное обновление базы данных требуется только после обновления ядра или контрибных модулей. Если администратор обнаруживает это требование при просмотре отчёта о состоянии, значит он конкретно облажался с последним обновлением.

misterpronin wrote: При запуске скрипта update.php пишется "Обновление базы данных Drupal", далее справочная информация

Вот эта вот "справочная информация" и есть самое интересное. Сам скрипт update.php делает то и только то, о чем его просят обновления ядра и модулей. Нужно понять какой именно модуль просит обновления и, самое интересное, почему же администратор не запустил update.php сразу после обновления модуля?

19 сентября 2021 в 16:22

Администратор - это я.

После того, как увидел в админке, что нужно обновить ядро и список модулей, ввёл такие команды:

composer update
composer update drupal/core "drupal/core-*" --with-all-dependencies

Эти команды удалили модуль simplify... Чего я не ожидал. На странице "Отчёт о состоянии" такой текст

Следующий модуль указан установленным в настройках core.extension, но он отсутствует: simplify

Думаю теперь что же можно сделать, чтобы исправить ошибки прошлого... Подскажите пожалуйста существуют ли какие-нибудь варианты? Файл update.php теперь работать не будет?..

19 сентября 2021 в 16:48

"composer update"

Это значит, вы обновили все - ядро и модули и зависимости. Да - многое может слететь, понимаю...

"composer update drupal/core "drupal/core-*" --with-all-dependencies"
... а потом вы снова обновляете Композером ядро. Т.е. уже нет смысла.

Чтобы не было ошибок, нужно перед обновлениям забекапить БД и файлы composer.json, composer.lock и в случае траблов откатываться и снова делать composer install. Можно сначала ядро обновить, потом модули по одному и выявить "проблемный" Smile

simplify - не в курсе, что это.
Попробуйте его Композером установить.
https://www.drupal.org/project/simplify/releases/8.x-1.2
$ composer require 'drupal/simplify:^1.2'

19 сентября 2021 в 17:01

Спасибо за помощь. Так и сделал. Но файл update.php всё ровно не срабатывает сейчас.

Пишется, что требуется обновление базы данных, но в процессе, т.е. после нажатия на кнопку "Продолжить" (после чего должна открыться страница "Просмотреть обновления") я попадаю на страницу с текстом "Запрашиваемая страница не найдена". Не пойму почему страница может быть не найдена, если сам файл update.php на сервере присутствует, первая страница этого скрипта запустилась, настройки в settings.php нужные ввёл, т.е. позволил запуск этого скрипта. В интернете на форумах подобных случаев не нашёл.

19 сентября 2021 в 17:06

drush updb че пишет?
А без драша вы кешь ребилд не сделаете (нууу можно но не помню как), т.е. не выведете сайт из дауна после очередного обновления или переброса конфигураций.

19 сентября 2021 в 17:21

misterpronin wrote: "Запрашиваемая страница не найдена". Сам файл update.php на сервере есть.

Вангую, что админ вебсервера запретил запуск любых файлов, кроме index.php

misterpronin wrote: drush updatedb тоже не помог.

Обновления выполнились или нет?

Какие вообще обновления БД не выполнены? Они от ядра или от контриба?

misterpronin wrote: ввёл такие команды:
composer update

Обновляться на проде не очень хорошая идея. Всегда что-то может пойти не так.

misterpronin wrote: Эти команды удалили модуль simplify

Просто так ничего не удаляется. Значит до этого что-то сделали не так. Например, установили этот модуль без композера

19 сентября 2021 в 17:52

ivnish wrote: Вангую, что админ вебсервера запретил запуск любых файлов, кроме index.php

Я арендую VPS. Ничего не запрещал...

ivnish wrote: Обновления выполнились или нет?

Обновления выполнились, но сообщение что нужно обновление бд осталось

ivnish wrote: Просто так ничего не удаляется. Значит до этого что-то сделали не так. Например, установили этот модуль без композера

Без композера ничего не устанавливал и не удалял. Когда запускал composer update в терминале было сообщение, что модуль simplify удалён... Прям так и написано было. Я не думал, что композер может удалять модули...

Сейчас решил восстановить всё из бекапа, но часть работы по сайту будет утеряна...

19 сентября 2021 в 18:17

Если у вас nginx и стандартный конфиг nginx для drupal c сайта nginx, то вам надо заменить
location ~ '\.php$|^/update.php' {
на
location ~ \.php(/|$) {

Если какой-то свой, разрешить обработку адресов вида /update.php/section

21 сентября 2021 в 22:34

misterpronin wrote: Я не думал, что композер может удалять модули...

Незнание возможностей инструмента, который вы используете, не освобождает от ответственности его использования.

19 сентября 2021 в 18:19