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

Аватар пользователя misterpronin misterpronin 19 сентября в 15:54

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

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

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

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

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

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

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

Комментарии

Аватар пользователя marassa marassa 19 сентября в 16:22

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

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

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

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

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

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

Аватар пользователя misterpronin misterpronin 19 сентября в 16:48

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

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

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

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

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

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

Аватар пользователя VasyOK VasyOK 19 сентября в 17:01

"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'

Аватар пользователя misterpronin misterpronin 19 сентября в 17:06

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

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

Аватар пользователя VasyOK VasyOK 19 сентября в 17:21

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

Аватар пользователя ivnish ivnish 19 сентября в 17:52

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

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

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

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

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

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

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

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

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

Аватар пользователя misterpronin misterpronin 19 сентября в 18:17

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

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

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

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

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

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

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

Аватар пользователя bsyomov bsyomov 21 сентября в 22:34

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

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

Аватар пользователя ivnish ivnish 19 сентября в 18:19

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

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

Аватар пользователя kompospec kompospec 20 сентября в 13:01

У вас не Апач? Тогда - Там нужно прописывать в настройках сервера.
Было у меня такое.