Перешел на новую работу. Озадачили поставить систему документооборота. Решил сразу с заделом на будущее поставить eGroupWare. Для начала решил все это дело потестировать на Денвере в корпоративной Vista Business. Что было нужно для полноценной работы? Система документооборота, авторизация в Active Directory и синхронизация через Outlook.

Под катом грабли с которыми пришлось столкнуться.
Итак, eGroupWare 1.16.002, Microsoft Outlook 2007, Funambol Outlook Sync Client 8.0.5., PDC — Windows Server 2003.
Домен для определенности — home.local.
Компьютер на котором устанавливаем eGW — main и доступен по http по адресу _http://main.home.local
Пользователь имеющий право на чтение списка пользователей домена(теоретически любой пользователь) — ADUser. Пароль для него — ********
1. Устанавливаем eGW (миллионы раз это описано — даже лень писать).
2. Удовлетворяем все зависимости (проверяем это скриптом проверки установки).

3. В конфигурации заголовков прописываем домен (home.local).(Конфигурация заголовков доступна в _http://main.home.local/setup)
4. В конфигурации домена (home.local) домена настраиваем авторизацию через Active Directory. Проверьте что у Вас установлен модуль php_ldap и что он включен в php.ini. Продолжаем. Есть два пути
Исключительно для Windows
а) Копируем из директории php библиотеки libeay32.dll и ssleay32.dll в \Windows\System32. Рестартуем Аpache
б) Выставляем настройки в конфигурации домена (домена в понимании eGW)

Готово!
И пошли первые грабли.
5. Хитрости с администратором
Для того чтобы добавить первого админа
Идем в конфигурирование и прописываем логин уже залогинившегося человека. Ставим ему пароль тот же.
В интернетах написано, что можно выставить настройку в конфигурации чтобы пользователи первые залогинившееся пусть добавляются в Admins, после чего залогиниться снова и получить права администратора. ЭТО НЕ РАБОТАЕТ! Пользователь не добавиться в группу Default и не будет доступа даже к первой страничке =)
И самое вкусненькое на конец.
6. Синхронизация SyncML
Использовалась программа Funambol Outlook Sync Outlook Client (остальные либо платные, либо у меня не хватало мозгов в них разобраться)
Адрес для синхронизации _http://main.home.local/rpc.php
Переходим по нему смотрим на ошибки. У меня было так.
You need to set mbstring.func_overload to 0 for rpc.php.
You should access this URL only with a SyncML enabled device.
Что должны переходить по этому урлу только SyncML клиентом мы и так знаем, а вот про option для php это интересно.
С учетом что в корне лежит .htaccess в котором явно
Ну чтож обманываем его, прописываем в .htaccess
Теперь лезем в клиента Funambol -> Ctrl+T -> Account
Location _http://main.home.local/rpc.php
Username USER (в данном случае используется логин того человека, чьи данные мы хотим синхронизировать)
Password ********

Идем в Sync

EGroupware был настроен таким образом, чтобы при типе записи ./sX данные сервера обновляли данные клиента, а.при типе записи ./sifX происходило разрешение конфликтов.
Смотрим табличку.
Ну и ставим как удобно для себя.
Смотрим также нижнюю табличку по типам
Я, например, поставил так
Ну вроде б работает. Вопросы и главное, критика, приветствуются.
p.s. Если нужно могу написать статью уже о том, как поднимался не тестовый, а рабочий сервер на Ubuntu.

Под катом грабли с которыми пришлось столкнуться.
Итак, eGroupWare 1.16.002, Microsoft Outlook 2007, Funambol Outlook Sync Client 8.0.5., PDC — Windows Server 2003.
Домен для определенности — home.local.
Компьютер на котором устанавливаем eGW — main и доступен по http по адресу _http://main.home.local
Пользователь имеющий право на чтение списка пользователей домена(теоретически любой пользователь) — ADUser. Пароль для него — ********
1. Устанавливаем eGW (миллионы раз это описано — даже лень писать).
2. Удовлетворяем все зависимости (проверяем это скриптом проверки установки).

3. В конфигурации заголовков прописываем домен (home.local).(Конфигурация заголовков доступна в _http://main.home.local/setup)
4. В конфигурации домена (home.local) домена настраиваем авторизацию через Active Directory. Проверьте что у Вас установлен модуль php_ldap и что он включен в php.ini. Продолжаем. Есть два пути
first way (tooooooooo easy)
Исключительно для Windows
а) Копируем из директории php библиотеки libeay32.dll и ssleay32.dll в \Windows\System32. Рестартуем Аpache
б) Выставляем настройки в конфигурации домена (домена в понимании eGW)

Выберите используемый вами тип идентификации: ADS
Выберите где вы будете хранить/получать информацию об учетных записях пользователей: SQL
Автоматическое создание учетных записей для идентифицированных пользователей: ДА
....
Имя сервера/IP адрес контроллера Домена: IP AD-сервера
Имя домена: home.local
second way (через тернии к звездам)
Авторизация / Учетные записи
Выберите используемый вами тип идентификации: LDAP
Выберите где вы будете хранить/получать информацию об учетных записях пользователей: SQL
Автоматическое создание учетных записей для идентифицированных пользователей: ДА
Используя LDAP:
Имя сервера LDAP: IP AD-сервера
LDAP контекст: OU=пользователи, DC=home, DC=local (тут, разумеется, может меняться информация в зависимости как у вас прописаны пользователи в AD, возможно это будет OU=Users)
Фильтр поиска учетных записей LDAP, по умолчанию: (& (objectClass=user)(objectCategory=person) (samaccountname=%user))
Контекст групп LDAP: OU=пользователи, DC=home, DC=local (повторяемся)
Корневой dn LDAP (поиск акаунтов и смена паролей): ADUser@home.local (наш пользователь для авторизации в AD, Active Directory в отличии от обычного LDAP-сервера не предоставляет анонимный доступ к своим данным)
Пароль LDAP: ********
Готово!
И пошли первые грабли.
5. Хитрости с администратором
Для того чтобы добавить первого админа
Идем в конфигурирование и прописываем логин уже залогинившегося человека. Ставим ему пароль тот же.
В интернетах написано, что можно выставить настройку в конфигурации чтобы пользователи первые залогинившееся пусть добавляются в Admins, после чего залогиниться снова и получить права администратора. ЭТО НЕ РАБОТАЕТ! Пользователь не добавиться в группу Default и не будет доступа даже к первой страничке =)
И самое вкусненькое на конец.
6. Синхронизация SyncML
Использовалась программа Funambol Outlook Sync Outlook Client (остальные либо платные, либо у меня не хватало мозгов в них разобраться)
Адрес для синхронизации _http://main.home.local/rpc.php
Переходим по нему смотрим на ошибки. У меня было так.
You need to set mbstring.func_overload to 0 for rpc.php.
You should access this URL only with a SyncML enabled device.
Что должны переходить по этому урлу только SyncML клиентом мы и так знаем, а вот про option для php это интересно.
С учетом что в корне лежит .htaccess в котором явно
# multibyte extension: needed for utf-8
php_value mbstring.func_overload 7
Ну чтож обманываем его, прописываем в .htaccess
# just for SyncML
<Files rpc.php>
php_value mbstring.func_overload 0
Теперь лезем в клиента Funambol -> Ctrl+T -> Account
Location _http://main.home.local/rpc.php
Username USER (в данном случае используется логин того человека, чьи данные мы хотим синхронизировать)
Password ********

Идем в Sync

EGroupware был настроен таким образом, чтобы при типе записи ./sX данные сервера обновляли данные клиента, а.при типе записи ./sifX происходило разрешение конфликтов.
Смотрим табличку.
Тип приложения | Cервер перезаписывает клиента | Разрешение конфликтов |
---|---|---|
Адресная книга | ./scard | ./sifcontacts |
Календарь | ./scal | ./sifcalendar |
Задачи | ./stask | ./siftasks |
Заметки | ./snote | ./sifnotes |
Ну и ставим как удобно для себя.
Смотрим также нижнюю табличку по типам
Тип приложения | Тип записи | Тип данных |
---|---|---|
Адресная книга | ./contacts ./sifcontacts ./scard |
text/vCard text/x-s4j-sifc text/x-s4j-sifc |
Календарь | ./calendar ./events ./sifcalendar ./scal |
text/calendar text/calendar text/x-s4j-sife text/x-s4j-sife |
Задачи | ./tasks ./siftasks ./stask |
text/calendar text/x-s4j-sift text/x-s4j-sift |
Заметки | ./notes ./sifnotes ./snote |
text/x-vnote text/x-s4j-sifn text/x-s4j-sifn |
Я, например, поставил так
Тип приложения | Значение | Примечание |
---|---|---|
Contacts | ./sifcontacts | |
Calendar | ./sifcalendar | Тип SIF оставляем |
Tasks | ./siftasks | Тип SIF оставляем |
Notes | ./sifnotes |
Ну вроде б работает. Вопросы и главное, критика, приветствуются.
p.s. Если нужно могу написать статью уже о том, как поднимался не тестовый, а рабочий сервер на Ubuntu.