我将现有的网站从Gentoo 32位的Apache 2.2.4迁移到CentOS 64位的Apache 2.2.27。 这个特定的站点使用DBM进行encryption密码validation。
在旧的系统上,如果我键入:
htdbm -l access.db
我得到了文件中的用户列表。
在新系统上,同样的命令输出:
Error opening database access.db No such file or directory
我已经检查了access.db的权限,我尝试以根用户身份运行htdbm。 它必须是一个格式错误。
然后,我发现Apache并没有使用–with-berkeley-db编译,所以我启用了并重新编译了Apache。
但是,现在的结果是:
Dumping records from database -- access.db Username Comment Total #records : 0
我知道这个特定的文件包含68个logging。
有趣的是,这个文件被报告为:
access.db: Berkeley DB (Hash, version 7, native byte-order)
而我发现了另一个在这个系统上工作的BDB文件,它显示:
restricted.db: Berkeley DB (Hash, version 8, native byte-order)
我还能做些什么来找出为什么第一个文件不能被读取? 如果是版本,我怎样才能将文件转换为新版本?
我现在的解决scheme是使用
db_dump
在旧的服务器上,
db_load
在新的服务器上。
我认为我可以在新的服务器上完成这一切,如果我有一个老版本的BDB库,并使用它们进行编译
---with-dbm
旗。
不过,目前这两个版本都有版本,这对我来说是最快的解决scheme。