在安装 drupal 7 时安装,导入数据库已经成功,但是在安装语言包的时候卡住了,没有进行最后三步,管理员帐号没能启用。此时我退出安装,访问网站,没有问题。但是管理员admin的密码没有设置,以至于不能登陆。

  1. 设置admin的密码
    我是网站的拥有着,有权限直接修改数据库。所以,可以通过phpmyadmin更改users表,直接填入密码字段。
    但是密码字段储存的是加密后的字符串。我们可以用加密函数加密密码,将加密后得到的字符串填入。
    那么,drupal使用的是那种加密方式呢?
    查资料得知,drupal5和6使用MD5加密,而7使用hash加密。
    不要烦恼这些。drupal7提供了user_hash_password函数用来加密密码。
    那么要如何操作呢?
    在drupal7的跟目录下找到index.php文件,在drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL)的下面插入三行代码:
    require_once 'includes/password.inc';
    echo user_hash_password('1234');
    die();
    有经验的读者立即就能明白它们做了什么。
    访问站点,会访问index.php文件,user_hash_password会加密密码,echo将它输出,require_once用来导入user_hash_password函数,而die用来退出。
    而drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL)前面有这么几句:
    define('DRUPAL_ROOT', getcwd());
    require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
    能猜出它大概是用来载入启动所需的php文件的。
    之所以要放在它们后面,是因为password.inc会使用其中的一些函数。如果不这么做,会得到这么一行错误信息:
    Fatal error: Call to undefined function variable_get() in /var/www/html/includes/password.inc on line 214
    这就明显了,是password.inc需要一个variable_get函数,可能就是bootstrap.inc提供的。
    不妨打开includes/bootstrap.inc文件,搜索一下variable_get,确实能看到这个函数的定义。
    好,到此位置,我们得到了密码密文,复制。这时那三行代码就没用了,删除它们。
    用phpmyadmin打开mysql数据库,找到drupal数据库,找到users表,admin记录,将密文复制入密码字段,保存。

  2. 激活用户
    再次访问,就能登陆了。但是又有错误,显示:
    用户尚未激活或被屏蔽
    这是用户尚未激活。找到users表的status字段。它给出的说明是:Whether the user is active(1) or blocked(0)。
    只要将admin记录的status值从0改为1即可激活。

  3. 角色
    再次登陆,行了。但是只能看到一般页面,看不到管理员特有的编辑网站功能的选项。这是因为没有赋予admin以管理员权限。
    drupal7设置了多种用户角色,给每个角色分配了不同的权限。它记录在role表中。可以看到有三个角色,id分别是1,2,3。管理员角色为3。
    那么在那里记录了用户的角色呢?
    在users_roles表里。新增条目,为admin设定一个角色。使用users表中的id表示user id,用role表中的id表示角色。
    完成之后在看就好了。

=====

如此这般,还是不好用,居然不能安装主题和模块,搞不清咋回事,索性推倒重来吧。

  1. 清理数据库
    删除数据库drupal里面的所有表格。至于数据库drupal和数据库用户drupaluser则保留。
  2. 删除文件
    删除drupal根目录所有文件
  3. 从头安装一遍。
    这要容易多了。所有的环境配置都在上次做过了,本次需要做的事大大减少。
    但是上次就是安装语言包出的错,这次可要长记性,别再安装语言包了。可是要用怎么办?drupal安装好以后可以再安装语言包的。

drupal 7 安装失败后的补救办法的更多相关文章

  1. SQL Server2008 R2 安装失败后的解决办法

    当你第一次安装SQL Server2005,SQL Server2008,SQL Server2012失败后,第二次重新安装一般还是容易安装失败,原因就是你没有完全卸载,还存留残留文件和注册表. 我安 ...

  2. SQL Server2008 安装失败后的解决办法

    SQL Server2008 安装不容易成功,或许用这种方法可能会安装成功.     首先,把电脑上的SQL Server2008 卸载干净 怎么卸载干净? 1.找到控制面板-->卸载程序--& ...

  3. Fedora 21 安装 Nvidia 驱动以及失败后的补救方法

    在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...

  4. Windows Service 之 安装失败后的删除

    一个windows服务在卸载之后并不会马上从服务列表中消失掉,而是在服务列表中会显示服务被禁用:这样在你需要再次安装同名服务时,就装不了了,会被提示同名的服务已经存在.如果是在本地安装,这种情况很容易 ...

  5. Windows SDK 8安装失败的绕坑办法

    安装win sdk 8,提示错误:管道正在被关闭. 查看安装log文件,有如下错误: Error 0x800700e8: Failed to write message type to pipe.Er ...

  6. hanlp在Python环境中的安装失败后的解决方法

    Hanlp是由一系列模型与算法组成的javag工具包,目标是普及自然语言处理再生环境中的应用.有很多人在安装hanlp的时候会遇到安装失败的情况,下面就是某大神的分享的在python环境中安装失败的解 ...

  7. Google浏览器Chrome安装失败,错误代码0xa0430721解决办法

    谷歌浏览器安装失败错误代码0xa0430721 的解决办法 这个是因为我们删除的时候没有删除干净.然后又重装了谷歌浏览器.所以就出现这个问题了. 1.删除旧的配置文件,比如C:\Documents a ...

  8. ADS 安装失败后在此安装在Modify Repair Remove界面循环问题解决

    估计是因为Win7和ADS不兼容的原因,第一次安装ADS后一直停在100%的位置,等了好久也没有反应.于是我点了Cancel.准备从新安装,于是就发生了下面的问题:一直在Modify Repair R ...

  9. 关于win10企业版1607累积更新(KB4013429)安装失败后,个人的解决办法

    最近连续一个多星期更新(1607-KB4013429)失败,更抓狂的是windows不厌其烦的,不断下载,不断更新,导致每天打开电脑都要等个十几分钟,看来不解决是不行了. 网上一查,有各种解决版本 1 ...

随机推荐

  1. Jackson Streaming API to read and write JSON

    Jackson supports read and write JSON via high-performance Jackson Streaming APIs, or incremental mod ...

  2. Recyclerview添加头布局和尾布局,点击效果

    简介: 本篇博客主要包括recyclerview添加多种布局以及添加头布局和尾布局,还有item点击事件 思路: 主要重写Recyclerview.Adapter中的一些方法 1.public int ...

  3. 新的云主机 python 创建虚拟环境

    1.为什么要搭建虚拟环境? 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无 ...

  4. C语言编程学习开发的俄罗斯方块小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  5. GitHub团队协作流程

    说来惭愧,这么长时间,第一次参与修改开源项目,所以整理了一份GitHub团队协作流程,作为备忘,文章大部分内容参考https://www.cnblogs.com/schaepher/p/4933873 ...

  6. SpringMVC+Hibernate 使用 session.update(obj) 未更新的问题

    1.使用spring控制事务 2.使用session.update(obj)执行更新 spring事务配置: <bean id="transactionBese" class ...

  7. 以太坊系列之十八: 百行go代码构建p2p聊天室

    百行go代码构建p2p聊天室 百行go代码构建p2p聊天室 1. 上手使用 2. whisper 原理 3. 源码解读 3.1 参数说明 3.1 连接主节点 3.2 我的标识 3.2 配置我的节点 3 ...

  8. 《javascript 高级程序设计》 笔记1 1~7章

    chapter 2 在html中使用JavaScript chapter 3 基本概念 EMCAscript 语法 变量,函数名和操作符都区分大小写. 使用var定义的变量将成为定义该变量的作用域中的 ...

  9. { "result": null, "log_id": 304592860300941982, "error_msg": "image check fail", "cached": 0, "error_code": 222203, "timestamp": 1556030094 }

    这个是人脸识别时无法检测到图片报的错,有时候我们检测一张图片是否在库里面,当一张图片明显在里面,还检测不到,如下面是我的代码 package Test1; import java.io.IOExcep ...

  10. 深度剖析MQTT协议的整个通信流程

    http://www.elecfans.com/d/587483.html MQTT,目前物联网的最主要的协议,基本所有收费的云平台都是基于MQTT协议,比如机智云,和所有的开放云平台比如中国移动的o ...