在 apache 2.2 服务器之间迁移时,htdbm 和 mod_authn_dbm 失败

在 apache 2.2 服务器之间迁移时,htdbm 和 mod_authn_dbm 失败

我正在将现有网站从 Gentoo 32 位上的 Apache 2.2.4 迁移到 CentOS 64 位上的 Apache 2.2.27。此特定网站使用 DBM 进行身份验证,并使用加密密码。

在旧系统上如果我输入:

htdbm -l access.db

我获得了文件中的用户列表。

在新系统上,相同的命令输出:

Error opening database access.db
No such file or directory

我检查了 access.db 的权限,并尝试以 root 身份运行 htdbm。这肯定是格式错误。

然后,我发现 Apache 尚未使用 --with-berkeley-db 进行编译,因此我启用了它并重新编译了 Apache。

但现在的结果是:

Dumping records from database -- access.db
    Username                         Comment
Total #records : 0

我知道这个特定文件包含 68 条记录。

有趣的是,该文件被报告为:

access.db: Berkeley DB (Hash, version 7, native byte-order)

而我发现另一个可以在该系统上运行的 BDB 文件,它显示:

restricted.db: Berkeley DB (Hash, version 8, native byte-order)

我还能做些什么来找出第一个文件无法读取的原因?如果是版本问题,我该如何将文件转换为较新的版本?

答案1

我目前的解决方案是使用

db_dump 

在旧服务器上,

db_load

在新服务器上。

我想我可以在新服务器上完成这一切,如果我有一个旧版本的 BDB 库,并使用

 ---with-dbm

旗帜。

然而,由于目前我在两个地方都有可用的版本,所以这对我来说是目前最快的解决方案。

相关内容