网站在Drupal 7中处于维护模式

时间:2014-02-03 09:19:17

标签: php database drupal-7 maintenance-mode

我的网站是在Drupal 7中开发的。最近我将我的网站置于维护模式。现在我需要让这个网站恢复生机。

很遗憾,我无法以管理员身份登录并“上线”(由于用户登录表单中的某些修改)。我还尝试通过数据库查询更新'site_offline'变量。但这也行不通。令我惊讶的是,db中没有类似'site_offline'的变量。为什么会这样?

任何人都可以帮助解决这个问题吗?任何帮助或建议将不胜感激。

9 个答案:

答案 0 :(得分:3)

如果您自行登出并且无法重新登录,只需在您的网站地址后添加/?q=user,然后您就会返回用户登录页面。

答案 1 :(得分:3)

我也遇到了同样的问题,我在settings.php文件的末尾添加了以下语句。它起作用了。

        $conf['maintenance_mode'] = 0;

来源:https://www.drupal.org/node/276457#comment-9364023

答案 2 :(得分:2)

如果您可以访问该站点的crush shell,则只需运行:

# 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';

注意:如果您只能访问数据库,则可能需要手动清除所有缓存表。

答案 3 :(得分:2)

最后,我找到了解决此问题的方法。我使用以下代码以编程方式登录应用程序,

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

Reference

登录后,我从admin / config / development / maintenance更改了维护配置。

更新

请确保在网站从维护模式恢复后删除上述代码。否则,这将为访问该网站的任何用户提供管理访问权限。

答案 4 :(得分:1)

无需对数据库进行更改。

只需将 $ conf [' maintenance_mode'] = 0; 添加到 settings.php 文件即可。  这将覆盖默认设置。

答案 5 :(得分:0)

您也可以通过编辑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#comment-7784641

答案 6 :(得分:0)

我推荐Drupal文档:

它基本上说明了Alexander Farber发布的内容,但也表示一旦您登录,您将导航到管理页面,根据Drupal版本,转到以下链接:

  • Drupal 4:管理»设置(管理员/设置)
  • Drupal 5&amp; 6:管理»站点配置»站点维护(管理/设置/站点维护)。
  • Drupal 7:管理»配置»开发»维护模式:删除“将站点置于维护模式”框中的复选标记

答案 7 :(得分:0)

这听起来很疯狂,但是在某些Apache版本中,用于打开Web服务器的默认文件为 .html ,并且在Drupal 7根目录中有一个 index.html 。它的内容是:

Website is Under Construction ....

因此只需将该文件重命名为index以外的其他名称,然后您的Web服务器就会打开index.php。

答案 8 :(得分:0)

我发现解决方案是简单地导航到yoursitename / user / login

只需以站点管理员身​​份登录并关闭维护模式。

比弄乱上面的代码建议要简单得多...

恼人的是,这种“简单”的修复使我花了一个小时的时间来谷歌搜索,并浏览了其他论坛上建议的各种兔子漏洞。

也许我们(作为开发人员)应该花一些时间来学习如何使用我们要求支持的产品?