Сайт застрял в режиме обслуживания в 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