Я перемещаю существующий веб-сайт от Apache 2.2.4 на хинду, 32-разрядном к Apache 2.2.27 на 64-разрядном CentOS. Этот конкретный сайт использует DBM для аутентификации с зашифрованными паролями.
В старой системе, если я ввожу:
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 записей.
Интересно, об этом файле сообщают как:
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
.
Однако, в данный момент, так как у меня есть рабочие версии в обоих местах, это самое быстрое решение для меня на данный момент.
.