| |
![]() |
Наложения могут быть либо динамическими, либо статическими. Если наложение динамическое, для него требуется загрузить подгружаемый модуль с помощью директивы moduleload (атрибута olcModuleLoad в cn=config). Если наложение статическое, оно встраивается в slapd, и потому определение директивы moduleload для него не требуется, и действительно, при попытке загрузки такого модуля произойдёт ошибка, поскольку самого файла подгружаемого модуля просто не существует.
Хорошо. А как же узнать какое это наложение: статическое или динамическое?
Вам необходимо выяснить, каким образом был собран slapd — в частности, какие директивы скрипта configure использовались. Чтобы получить возможность собрать какое-либо наложение, при запуске скрипта configure должна быть указана директива --enable-modules, что для большинства сборок, по крайней мере известных нам, является значением по умолчанию. Для каждого наложения есть отдельная директива скрипта configure, которую можно задать так:
# для иллюстрации в этом примере используется наложение accesslog, # всё то же самое верно и для syncprov и остальных наложений. --enable-accesslog # собирается статически - не требуется moduleload --enable-accesslog=mod # собирается динамически - требуется moduleload
Чтобы определить, как был собран Ваш slapd:
# для FreeBSD подразумевается сборка из портов: cd /usr/ports/net/openldap2X-server/work/openldap-X.X.X vi config.log # в начале этого файла перечислены все условия, # задаваемые при запуске скрипта configure # если Вы использовали 'make install clean', данный файл будет удалён # чтобы создать его заново, используйте 'make configure' # а для повторного удаления - 'make clean' # для дистрибутивов, основанных на RPM # найдите файл .spec, использовавшийся для построения slapd # откройте файл и найдите вызов скрипта configure, # за которым следуют соответствующие директивы
Возможно, самый простой путь определения того, является ли наложение динамическим — просто поискать файлы подгружаемых модулей для наложения. Если такие файлы существуют, нужно использовать директиву moduleload, в противном случае — нет. Файлы подгружаемых модулей обычно располагаются в [bsd] /usr/local/libexec/openldap и [fc] /usr/libexec/openldap or /usr/sbin/openldap.
Наконец, на большинстве платформ наложения собираются в виде файлов с суффиксами .la (библиотека), либо .la и .so (библиотека разделяемых объектов). Попробуйте сначала использовать .la, если загрузка завершится неудачей, используйте .so.
Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.
Нашли ошибку в переводе? Сообщите переводчикам!
Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 21 октября 2015 г.
Переведено участниками проекта Pro-LDAP.ru в 2012 г.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |