Я разрабатываю код, который использует ldap_search
Shell Script Command для извлечения информации о пользователе из Active Directory с использованием идентификатора пользователя и надлежащим образом Аутентификация сервера LDAP. Я получаю точный результат от ldap_search
скрипт.
Но всякий раз, когда я помещаю скрипт оболочки внутри exec
или же shell_exec
Команда PHP, я ничего не получаю.
Все остальные скрипты работают нормально с помощью PHP exec
команда кроме ldap_search
,
Осталось ли мне выполнить какое-то дополнительное задание?
Является ldap_search
а также exec/shell_exec
не совместимы друг с другом?
Вы должны использовать echo exec('your command or script');
Убедитесь, что у вас есть разрешения на его запуск. Я имею в виду, что веб-пользователь должен иметь права на выполнение этого.
Может показаться очевидным, но я думаю, что ваша неудача в чем-то простом. Вы должны поставить эхо, чтобы показать результат команды.
РЕДАКТИРОВАТЬ После прочтения ваших новых комментариев об этом и использования этой новой информации … я увидел, что вы пытаетесь перенаправить вывод в файл … но, возможно, у вас есть 2 разные проблемы.
У пользователя, который выполняет php (обычно www-data), разрешение на запись в папку, где находится php?
Ваш код имеет кавычки внутри кавычек, которые должны быть экранированы с помощью. Попробуй это:
<?php exec("ldapsearch -x -v -h 'LDAP://server' -p '389' -D 'uid=\"domain_user_id\",ou=users,ou=internal,o=\"organization\"' -w 'domain_password' -b 'ou=users,ou=internal,o=organization' 'uid=person's_user_id' >> result.txt"); ?>
Таким образом, вам не нужно эхо, если вы хотите вывод в файл. И перенаправление >>
может быть внутри выполненной команды, а не в php.
Помни что >
заменяет файл и то, что у вас есть >>
добавить в конец файла.
Других решений пока нет …