Наложения в OpenLDAP, или как заставить это работать

Наложения и загрузка модулей.

Наложения могут быть либо динамическими, либо статическими. Если наложение динамическое, для него требуется загрузить подгружаемый модуль с помощью директивы 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 г.