Я жвыполнение этого пошагового руководства по OpenLDAP: http://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1 Важно: я работаю над CentOS 7
Но когда в первой части я пытаюсь начать slapd
с участием: systemctl start slapd
, это бросает мне ошибка что я не могу решить.
Я искал в Интернете, StackOverflow и Server Fault, но у кого-то такая же проблема.
Это ошибка:
# systemctl start slapd
Job for slapd.service failed. See 'systemctl status slapd.service' and 'journalctl -xn' for details.
И вот трассировки стека или ошибка, когда я проверяю systemctl status
.
[root@localhost openldap]# systemctl status slapd -l
slapd.service - OpenLDAP Server Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled)
Active: failed (Result: exit-code) since dv 2015-01-09 12:03:41 CET; 3min 9s ago
Process: 5507 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=1/FAILURE)
Process: 5492 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
gen 09 12:03:41 localhost.localdomain runuser[5495]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
gen 09 12:03:41 localhost.localdomain check-config.sh[5492]: Checking configuration file failed:
gen 09 12:03:41 localhost.localdomain check-config.sh[5492]: 54afb58d ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif"
gen 09 12:03:41 localhost.localdomain check-config.sh[5492]: 54afb58d unable to open file "/openldap/slapd.pid": 2 (No such file or directory)
gen 09 12:03:41 localhost.localdomain slapcat[5500]: DIGEST-MD5 common mech free
gen 09 12:03:41 localhost.localdomain slapd[5507]: @(#) $OpenLDAP: slapd 2.4.39 (Jun 9 2014 23:23:12) $
mockbuild@worker1.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.39/openldap-2.4.39/servers/slapd
gen 09 12:03:41 localhost.localdomain slapd[5509]: DIGEST-MD5 common mech free
gen 09 12:03:41 localhost.localdomain systemd[1]: slapd.service: control process exited, code=exited status=1
gen 09 12:03:41 localhost.localdomain systemd[1]: Failed to start OpenLDAP Server Daemon.
gen 09 12:03:41 localhost.localdomain systemd[1]: Unit slapd.service entered failed state.
Мой вопрос: как мне это сделать? Есть ли решение? Или каковы рекомендации по устранению проблемы?
Как я могу начать это решать?
Использовать Страница справки CentOS OpenLDAP. Он очень лаконичный и без лишнего шума. Перед этим верните все файлы конфигурации в исходное состояние. Можно подтвердить через:
# rpm -V openldap-server
Если приведенная выше команда показывает какие-либо измененные файлы - либо удалите и переустановите openldap-server, либо извлеките файлы из резервной копии.
Я также использовал это руководство для настройки OpenLDAP на CentOS 7. После того, как я установил только openldap-servers
без клиента и полностью провалился; возникли проблемы с разрешениями, не удалось запустить slapd и т. д. Я согласен с другими, чтобы начать все сначала и точно следовать указаниям.
Но даже в этом случае в руководстве есть некоторые проблемы, которые полезно задокументировать:
chdomain.ldif
в частности).basedomain.ldif
, o: Server World
и dc: Server
следует изменить на правильный домен, иначе вы получите эту ошибку: ldap_add: нарушение именования (64) дополнительная информация: значение однозначного атрибута именования 'dc' конфликтует со значением, присутствующим в записи
ldapadd
также следует изменить на правильный домен, иначе вы получите ошибки неверных учетных данных.Эти ошибки действительно не были интуитивно понятными, но я смог выполнить руководство и настроить OpenLDAP.
У вас какая-то ошибка в ваших файлах конфигурации. По крайней мере, вы допустили ошибку при создании исходного файла конфигурации и, вероятно, изменили то, что указано в руководстве:
В руководстве говорится:
pidfile /run/openldap/slapd.pid
но OpenLDAP пытается создать /openldap/slapd.pid
, который не может работать как /openldap
не будет существовать как каталог.
Начни с нуля.