Сбой 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)
Что еще я могу сделать, чтобы узнать, почему первый файл не может быть прочитан? Если это версия, как я могу преобразовать файл в более новую версию?
1 ответ
Мое решение на данный момент заключается в использовании
db_dump
на старом сервере и
db_load
на новом сервере.
Я предполагаю, что смогу сделать все это на новом сервере, если я получу старую версию библиотек BDB и скомпилирую их с использованием
---with-dbm
флаг.
Однако в настоящее время, поскольку у меня есть рабочие версии в обоих местах, это самое быстрое решение для меня сейчас.