Назад | Перейти на главную страницу

htdbm и mod_authn_dbm не работают при миграции между серверами apache 2.2

Я переношу существующий веб-сайт с Apache 2.2.4 на 32-разрядную версию Gentoo на Apache 2.2.27 на 64-разрядной версии CentOS. Этот конкретный сайт использует DBM для аутентификации с зашифрованными паролями.

В старой системе, если я наберу:

htdbm -l access.db

Я получаю список пользователей в файле.

В новой системе та же команда выводит:

Error opening database access.db
No such file or directory

Я проверил разрешения на access.db и попробовал запустить htdbm как root. Это должна быть ошибка формата.

Затем я обнаружил, что 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)

Что еще я могу сделать, чтобы узнать, почему не читается первый файл? Если это версия, как мне преобразовать файл в более новую версию?

Мое решение на данный момент - использовать

db_dump 

на старом сервере и

db_load

на новом сервере.

Полагаю, я мог бы сделать все это на новом сервере, если бы получил старую версию библиотек BDB и скомпилировал их, используя

 ---with-dbm

флаг.

Однако в настоящее время, поскольку у меня есть рабочие версии в обоих местах, это самое быстрое решение для меня прямо сейчас.