====== phpLDAPAdmin ======
{{:phpldapadmin:phpldapadmin_logo.jpg|}}
phpLDAPAdmin (PLA) — веб интерфейс для управления каталогом [[ldap:ldap|LDAP]], написан на [[php:php|PHP]], работает на сервере [[apache:apache|Apache]].
http://www.phpldapadmin.org
http://phpldapadmin.sourceforge.net
[[github>leenooks/phpLDAPadmin|phpLDAPadmin]]
[[phpldapadmin:debian_packages|Работа с phpLDAPAdmin из пакетной базы Debian]]
====== Установка ======
* Папка для установки: ''/opt/phpldapadmin/''
* HTTP сервер: [[apache:apache|Apache]]
Нужно скачать актуальный архив с нужной версией c https://github.com/leenooks/phpLDAPadmin
Последнюю версию можно скачать так:
wget https://github.com/leenooks/phpLDAPadmin/archive/master.zip
===== Установка необходимых пакетов =====
apt-get install apache2 php php-cgi libapache2-mod-php php-ldap php-xml
===== Распаковка дистрибутива =====
# Распаковка дистрибутива в нужную папку
unzip phpLDAPadmin-master.zip -d /opt
# Переносим файлы и папки в папку для установки
mv /opt/phpLDAPadmin-master /opt/phpldapadmin
===== Настройка HTTP сервера =====
- Нужно создать файл: {{:phpldapadmin:apache.conf|/opt/phpldapadmin/config/apache.conf}}
- Выполнить следующие действия:
#!/bin/bash
# Создаем символическую ссылку
ln -s /opt/phpldapadmin/config/apache.conf /etc/apache2/sites-available/phpldapadmin.conf
# Разрешаем сайт
a2ensite phpldapadmin.conf
# Перезапуск
service apache2 reload
====== Настройка ======
===== config.php =====
custom->appearance['language'] = 'ru_RU';
$config->custom->appearance['custom_templates_only'] = true;
$config->custom->appearance['disable_default_template'] = false;
$config->custom->appearance['hide_template_warning'] = true;
$config->custom->appearance['minimalMode'] = false;
$config->custom->appearance['friendly_attrs'] = array(
'sambaSID' => 'Уникальный идентификатор Samba',
'sambaDomainName' => 'Имя домена',
'sambaMaxPwdAge' => 'Максимальное время жизни пароля, в секундах (-1=Выкл. 0=Вкл.)',
'sambaMinPwdAge' => 'Минимальное время жизни пароля, в секундах',
'sambaMinPwdLength' => 'Минимальная длина пароля',
'sambaPwdHistoryLength' => 'Записывать историю паролей (0=Нет истории)',
'sambaLogonToChgPwd' => 'Force user to log on to change password (0=Нет, 2=Да)',
'sambaRefuseMachinePwdChange' => 'Запретить рабочим станциям менять пароль (0=Запретить)',
'sambaForceLogOff' => 'Отключать пользователей после допустимых часов работы (-1=Нет, 0=Да)',
'sambaLockoutThreshold' => 'Число неудачных попыток перед блокировкой',
'sambaLockoutDuration' => 'Длительность блокировки, в минутах',
'sambaLockoutObservationWindow' => 'Сброс блокировки после интервала, в минутах',
'sambaAlgorithmicRidBase' => 'Число с которого должен начать работу алгоритм samba RID (1000)',
'sambaNextUserRid' => 'Следующий номер относительного идентификатора RID для пользователя',
'sambaNextGroupRid' => 'Следующий номер относительного идентификатора RID для группы',
'sambaNextRid' => 'Следующий номер относительного идентификатора RID для других ?',
'sambaAcctFlags' => 'Samba: флаги ',
'sambaKickoffTime' => 'Samba: Рабочее время',
'sambaLogonScript' => 'Samba: Сценарий входа',
'sambaNTPassword' => 'Samba: Пароль NT',
'sambaLMPassword' => 'Samba: Пароль LM',
'sambaPrimaryGroupSID' => 'Samba: Основная группа',
'sambaPwdLastSet' => 'Samba: Дата изменения пароля (секунд с 1970-01-01)',
'sambaGroupType' => 'Samba: тип группы',
'sambaUserWorkstations' => 'Samba: список доступных компьютеров',
'sambaPwdCanChange' => 'Срок действия пароля (2147483647=не ограничен)',
'dhcpHWAddress' => 'DHCP: MAC адрес',
'dhcpStatements' => 'DHCP: Объявления',
'dhcpPrimaryDN' => 'DHCP: Основной сервер',
'dhcpRange' => 'DHCP: Диапазон',
'dhcpNetMask' => 'DHCP: Маска сети',
'dhcpComments' => 'DHCP: Коментарии',
'dhcpOption' => 'DHCP: Параметры',
'uidNumber' => 'Уникальный идентификатор пользователя',
'gidNumber' => 'Уникальный идентификатор группы',
'gecos' => 'Вспомогательная информация',
'mailQuotaSize' => 'Размер почтовой квоты (Мббайт)',
'maildrop' => 'Уникальный адрес внутри сервера',
'mailRoutingAddress' =>'Адрес доставки почты',
'displayName' => 'Отображаемое имя',
'description' => 'Описание',
'givenName' => 'Имя',
'sn' => 'Фамилия',
'cn' => 'Общее имя',
'homeDirectory' => 'Домашняя папка',
'loginShell' => 'Командная оболочка',
'member' => 'Член группы',
'o' => 'Организация (o)',
'ou' => 'Отдел (ou)',
'memberUid' => 'Члены группы',
'objectClass' => 'Классы объекта (objectClass)',
'initials' => 'Отчество',
'facsimileTelephoneNumber' => 'Fax',
'gid' => 'Group',
'mail' => 'Email',
'telephoneNumber' => 'Телефон (telephoneNumber)',
'uid' => 'Уникальное имя пользователя (uid)',
'userPassword' => 'Password'
);
$config->custom->appearance['attr_display_order'] = array(
'sambaDomainName',
'sambaMaxPwdAge',
'sambaMinPwdAge',
'sambaMinPwdLength',
'sambaPwdHistoryLength',
'sambaLogonToChgPwd',
'sambaRefuseMachinePwdChange',
'sambaForceLogOff',
'sambaLockoutThreshold',
'sambaLockoutDuration',
'sambaLockoutObservationWindow',
'sambaAlgorithmicRidBase',
'sambaNextUserRid',
'sambaNextGroupRid',
'sambaNextRid',
'o',
'ou',
'dc',
'givenName',
'sn',
'initials',
'cn',
'displayName',
'uid',
'homeDirectory',
'description',
'gecos',
'loginShell',
'userPassword',
'mail',
'maildrop',
'mailQuotaSize',
'uidNumber',
'gidNumber',
'sambaSID',
'sambaPrimaryGroupSID',
'sambaAcctFlags',
'sambaKickoffTime',
'sambaLogonScript',
'sambaNTPassword',
'sambaLMPassword',
'sambaPwdLastSet',
'sambaUserWorkstations',
'memberUid',
'member',
'sambaGroupType',
'objectClass'
);
$servers = new Datastore();
// Server 1
$servers->newServer('ldap_pla');
$servers->setValue('server','name','ldap0');
$servers->setValue('server','host','ldap0');
$servers->setValue('login','bind_id','cn=admin,dc=domain');
// Server 2
$servers->newServer('ldap_pla');
$servers->setValue('server','name','ldap');
$servers->setValue('server','host','ldap');
$servers->setValue('login','bind_id','cn=admin,dc=domain');
$servers->setValue('appearance','pla_password_hash','md5');
$servers->setValue('auto_number','enable',true);
$servers->setValue('auto_number','mechanism','search');
?>
Отключение анонимного входа:
$servers->setValue('login','anon_bind',false);
Лимит поиска (умолчание):
$this->default->search['size_limit'] = array(
'desc'=>'Limit the size of searchs on the search page',
'default'=>50);
меняем 50 на 0.
====== Шаблоны ======
===== Для создания объектов =====
[[phpldapadmin:templates:creation:creation|Для создания объектов]]
===== Для изменения объектов =====
Папка ''templates/modification''
:!: В текущей версии 1.2.3 их неудобно использовать.
====== Предопределенные запросы ======
[[phpldapadmin:queries:queries|Предопределенные запросы]]
====== Перевод ======
FIXME
{{:phpldapadmin:messages.po|messages.po}}
Путь к файлу: ''/opt/phpldapadmin/locale/ru_RU/LC_MESSAGES/''
С 2016-03-22 этот вариант перевода доступен в [[https://translations.launchpad.net/phpldapadmin/1.2.x/+pots/phpldapadmin/ru|официальной базе переводов]].
====== Отображение русских символов в именах объектов ======
В дереве объектов и их заголовке русские символы не отображаются.
Пример: ''ou=тест'' отображается как:
ou=''.chr(hexdec('D1')).''''.chr(hexdec('82')).''''.chr(hexdec('D0')).''''.chr(hexdec('B5')).''''.chr(hexdec('D1')).''''.chr(hexdec('81')).''''.chr(hexdec('D1')).''''.chr(hexdec('82')).''
Для исправления ошибки нужно исправить ''function dn_unescape($dn)'' в файле ''lib/functions.php''
Заплатка для версии 1.2.3: {{:phpldapadmin:functions.php.diff|functions.php.diff}}
Применение:
patch functions.php
С 2016-10-30 эти исправления внесены в код в [[https://github.com/leenooks/phpLDAPadmin|официльном репозатарии]].
====== Ссылки ======
https://wiki.debian.org/PhpLdapAdmin
[[http://phpldapadmin.sourceforge.net/wiki/index.php/Templates|Templates]]
[[http://phpldapadmin.sourceforge.net/wiki/index.php/Category:TemplateValueFunctions|Template Value Functions]]
[[http://phpldapadmin.sourceforge.net/wiki/index.php/LDAP_server_definitions|LDAP server definitions]]
[[http://phpldapadmin.sourceforge.net/wiki/images/d/d4/Logo.jpg|Логотип]]
{{tag>Admin LDAP HTTP phpLDAPAdmin on_github}}