pfzim / ldap-phonebook

Phonebook with office map (Active Directory, LDAP -> MySQL, PHP)
GNU General Public License v3.0
54 stars 27 forks source link

Не синхронизирует LDAP #47

Closed serdgserdg closed 2 years ago

serdgserdg commented 2 years ago

При нажатии "Синхронизировать" выдает ошибку Exception: File: C:\pb\routes\contacts_sync.php[44]: ldap_parse_result return error: Success Trace:

0 C:\pb\modules\Router.php(103): contacts_sync(Object(Core), Array, Array)

1 C:\pb\pb.php(316): Router->process('contacts_sync', Array)

2 {main}

Но в тоже время зайти как администратор с доменной учетной записью удается.

pfzim commented 2 years ago

Расширил вывод при ошибке. Обновите справочник и попробуйте синхронизировать ещё раз. Текст ошибки должен получится более подробным.

serdgserdg commented 2 years ago

2022-03-29T12:16:44+03:00 Exception: File: C:\pb\routes\contacts_sync.php[49]: ldap_parse_result return error code: , message: , ldap_error: Success Trace:

0 C:\pb\modules\Router.php(103): contacts_sync(Object(Core), Array, Array)

1 C:\pb\pb.php(316): Router->process('contacts_sync', Array)

2 {main}

pfzim commented 2 years ago

Очень странно. А при инсталляция проверка подключения к LDAP успешно завершалась? Случаем не LDAPS используете для подключения?

serdgserdg commented 2 years ago
  1. Check loaded PHP modules ldap - OK SimpleXML - OK memcached - missing json - OK curl - OK pcre - OK gd - OK mysqli - OK
  2. Check DB connection OK
  3. Create database OK
  4. Create tables OK
  5. Create DB user OK
  6. Grant access to database OK
  7. Check LDAP connection OK (Entries founded: 279)
  8. Create admin account OK при инсталляция проверка подключения к LDAP успешна и группу админов добавил без проблем, и заходит под доменной проверил доступность LDAP - все работает "LDAP bind successful..." $ldapuser = domain\user"; $ldappass = "passwd"; $ldapserver = "LDAP.domain.local:389";

$ad = ldap_connect("ldap://".$ldapserver) or die("Cant connect to LDAP Server"); ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3); $adbind = ldap_bind($ad, $ldapuser, $ldappass); if ($adbind) { echo "LDAP bind successful..."; } else { echo "LDAP bind failed..."; }

?>

pfzim commented 2 years ago

Не знаю в чём может быть проблема.

У вас ldap_parse_result почему-то возвращает FALSE, но следом ldap_error говорит Success.

        if(!ldap_parse_result($core->LDAP->get_link(), $result, $errcode , $matcheddn , $errmsg , $referrals, $controls))
        {
            throw new Exception('ldap_parse_result return error code: '.$errcode.', message: '.$errmsg.', ldap_error: '.ldap_error($core->LDAP->get_link()));
        }

Мне встречалось похожее поведение криптографических функций используемых PHPMailer'ом. Проблема решилась настройкой OpenSSL. Но у вас шифрование не используется и подключение успешно проходит.

Напишите, если получится выяснить в чем проблема.

serdgserdg commented 2 years ago

Сначала использовал iss, подумал что проблема в нем. Установил ubuntu 20,04 + nginx + php 7.4. В итоге install.php отображает пустую страницу

pfzim commented 2 years ago

А что в логах?

serdgserdg commented 2 years ago

thrown in /var/www/pb/pb.php on line 54" while reading response header from upstream, client: 192.168.10.101, server: _, request: "GET /pb.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.0-fpm.sock:", host: "192.168.141.62" 2022/03/30 11:19:39 [error] 20410#20410: *84 FastCGI sent in stderr: "PHP message: PHP Warning: require_once(/var/www/pb/modules/Core.php): Failed to open stream: Permission denied in /var/www/pb/pb.php on line 54PHP message: PHP Fatal error: Uncaught Error: Failed opening required '/var/www/pb/modules/Core.php' (include_path='.:/usr/share/php') in /var/www/pb/pb.php:54 Stack trace:

0 {main}

pfzim commented 2 years ago

Похоже, что не хватает прав на чтение файла /var/www/pb/modules/Core.php

serdgserdg commented 2 years ago

выполнил команды sudo chmod -R 0755 /var/www/pb/modules/Core.php sudo chmod -R 0755 /var/www/pb/modules теперь нет ошибок в /var/log/nginx/error.log но страница так и не открывается

serdgserdg commented 2 years ago

image

pfzim commented 2 years ago

Проверьте на остальные файлы и папки права. Возможно к файлам шаблона тоже нет доступа

serdgserdg commented 2 years ago

заработало и контакты синхронизировались