我正在将现有网站从 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)
我还能做些什么来找出为什么无法读取第一个文件?如果是版本,如何将文件转换为较新的版本?
我此时的解决方案是使用
在旧服务器上,以及
在新服务器上。
如果我有旧版本的 BDB 库并使用
旗帜。
但是,此时由于我在这两个地方都有工作版本,所以这对我来说是目前最快的解决方案。