我的网站是在Drupal 7中开发的。最近我将我的网站置于维护模式。现在我需要让这个网站恢复生机。
很遗憾,我无法以管理员身份登录并“上线”(由于用户登录表单中的某些修改)。我还尝试通过数据库查询更新'site_offline'变量。但这也行不通。令我惊讶的是,db中没有类似'site_offline'的变量。为什么会这样?
任何人都可以帮助解决这个问题吗?任何帮助或建议将不胜感激。
答案 0 :(得分:3)
如果您自行登出并且无法重新登录,只需在您的网站地址后添加/?q=user
,然后您就会返回用户登录页面。
答案 1 :(得分:3)
我也遇到了同样的问题,我在settings.php文件的末尾添加了以下语句。它起作用了。
$conf['maintenance_mode'] = 0;
答案 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');
登录后,我从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();
答案 6 :(得分:0)
我推荐Drupal文档:
它基本上说明了Alexander Farber发布的内容,但也表示一旦您登录,您将导航到管理页面,根据Drupal版本,转到以下链接:
答案 7 :(得分:0)
这听起来很疯狂,但是在某些Apache版本中,用于打开Web服务器的默认文件为 .html ,并且在Drupal 7根目录中有一个 index.html 。它的内容是:
Website is Under Construction ....
因此只需将该文件重命名为index以外的其他名称,然后您的Web服务器就会打开index.php。
答案 8 :(得分:0)
我发现解决方案是简单地导航到yoursitename / user / login
只需以站点管理员身份登录并关闭维护模式。
比弄乱上面的代码建议要简单得多...
恼人的是,这种“简单”的修复使我花了一个小时的时间来谷歌搜索,并浏览了其他论坛上建议的各种兔子漏洞。
也许我们(作为开发人员)应该花一些时间来学习如何使用我们要求支持的产品?