Я установил веб-сервер CentOS 7 vm со стеком LAMP. Последние несколько дней я пытался заставить работать LDAPS-соединение с моим контроллером домена Windows Server 2008 R2.
Мне удалось подключиться к своему DC с помощью: ldapsearch -H "ldaps://server.ad.com" -D "domain\user-name" -W
на пару дней. Я также могу использовать openssl s_client -connect server.ad.com -prexit
команда для проверки сертификата SSL (поскольку я использую самозаверяющий сертификат).
Однако всякий раз, когда я перехожу на свою веб-страницу PHP в /var/www/html/test/index.php, я всегда получаю ошибку «Не удается связаться с сервером LDAP» при попытке ldap_bind()
. Вчера я попытался запустить файл PHP из командной строки: php /var/www/html/test/index.php
и обнаружил, что мой PHP ldap_bind () работает каждый раз при использовании командной строки.
Поискав в Интернете, я обнаружил, что часто PHP-CLI и PHP Apache используют разные файлы php.ini, но запускают php --ini
команда показывает мне только один файл php.ini, расположенный в /etc/php.ini.
Я пытаюсь понять, почему PHP правильно выполняется из командной строки, но не при просмотре / запуске через Apache. Мы будем очень благодарны за любую информацию / идеи, которые помогут решить эту проблему, спасибо!
Если он работает из командной строки, но не через Apache, то это одно из немногих.
Я предполагаю, что они как бы взаимосвязаны, но я бы посоветовал попробовать страницы с отключенным SELinux и перейти оттуда.
Как сказал GregL, это SELinux
связанных, у меня была такая же проблема сегодня, и я не помнил, что SELinux
был включен.
[root@centos7 ~]# getsebool -a | grep http | grep ldap
httpd_can_connect_ldap --> off
Итак, если вы не хотите отключать SELinux глобально, авторизуйте его
setsebool -P httpd_can_connect_ldap on
Возможно, вам понадобятся другие функции (удаленный доступ к базе данных, ...), проверьте с помощью
getsebool -a | grep httpd