Сайт застрял в режиме обслуживания в Drupal 7

Мой сайт разработан в Drupal 7. Недавно я перевел свой сайт в режим обслуживания. И теперь мне нужно вернуть этот сайт к жизни.

К сожалению, я не могу войти в систему как администратор и "Перейти в Интернет" (из-за некоторых изменений в форме входа пользователя). Я также попытался обновить переменную site_offline по запросу базы данных. Но это тоже не сработало. К моему удивлению, в db не было такой переменной, как site_offline. Почему это так?

Кто-нибудь может помочь решить эту проблему? Любая помощь или предложения будут с благодарностью.

8 ответов

Решение

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

global $user;
$user = user_load(1);
drupal_session_regenerate();
drupal_goto('user');

Ссылка

После входа в систему я изменил конфигурацию обслуживания с admin/config/development/maintenance.

ОБНОВИТЬ

Обязательно удалите приведенный выше код, как только сайт вернется из режима обслуживания. В противном случае это даст администратору доступ любому пользователю, посещающему веб-сайт.

Нет необходимости вносить изменения в базу данных.

Просто добавьте $conf['maintenance_mode'] = 0; в ваш файл settings.php. Это заменит настройки по умолчанию.

Я также столкнулся с той же проблемой, и я добавляю следующее заявление в конец файла settings.php. И это сработало.

        $conf['maintenance_mode'] = 0;

Источник: https://www.drupal.org/node/276457

Если вы вышли из системы и не можете вернуться, просто добавьте /?q=user после адреса вашего сайта, и вы вернетесь на страницу входа пользователя.

Если у вас есть доступ к оболочке crush для сайта, вы можете просто запустить:

# from drupal root (/path/to/index.php)
drush vset maintenance_mode 0;
drush c all;

Если нет, или если это не работает, измените свойство "maintenance_mode" в таблице переменных на "i:0;" (не 0, потому что drupal хранит и анализирует эти настройки как длинный BLOB-объект).

#sql statement
UPDATE `variable` SET `value` = 'i:0;' WHERE `name` = 'maintenance_mode';

Примечание: если у вас есть доступ только к базе данных, вам, вероятно, потребуется очистить все таблицы кеша вручную.

Я обнаружил, что решением было просто перейти к yoursitename/user/login

просто войдите в систему как администратор сайта и выключите режим обслуживания.

Это намного проще, чем возиться с предложениями кода выше...

Раздражает то, что это "простое" исправление заняло у меня час поиска в Google и изучения различных кроличьих нор, предложенных на других форумах.

Возможно, нам (как разработчикам) следует потратить некоторое время, чтобы научиться использовать продукты, которые нас просят поддерживать?

Я рекомендую документацию по Drupal:

В основном в нем говорится о том, что опубликовал Александр Фарбер, но также указывается, что после входа в систему вы переходите на страницу администрирования в соответствии с версией Drupal и переходите по следующим ссылкам:

  • Drupal 4: администрировать "настройки (admin / settings)
  • Drupal 5 & 6: Администрирование "Конфигурация сайта" Обслуживание сайта (admin / settings / site-maintenance).
  • Drupal 7: Администрирование "Конфигурация" Разработка "Режим обслуживания: снимите флажок" Перевести сайт в режим обслуживания "

Это может показаться странным, но в некоторых версиях Apache для открытия веб-сервера используется файл по умолчанию .html, а в корневом каталоге Drupal 7 есть файл index.html, содержимое которого:

Website is Under Construction ....

поэтому просто переименуйте этот файл во что-то отличное от index, и ваш веб-сервер откроет index.php .

Вы также можете вывести его из режима обслуживания вручную, отредактировав index.php и установив переменную "maintenance_mode"

<?php
/**
* @file
* The PHP page that serves all page requests on a Drupal installation.
*
* The routines here dispatch control to the appropriate handler, which then
* prints the appropriate page.
*
* All Drupal code is released under the GNU General Public License.
* See COPYRIGHT.txt and LICENSE.txt.
*/


/**
* Root directory of Drupal installation.
*/
define('DRUPAL_ROOT', getcwd());


require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
variable_set('maintenance_mode', 0);
menu_execute_active_handler();

источник: https://www.drupal.org/node/2072055

Другие вопросы по тегам