linux — команда сценария оболочки «ldap_search» не работает с командой php exec или shell_exec

Я разрабатываю код, который использует ldap_search Shell Script Command для извлечения информации о пользователе из Active Directory с использованием идентификатора пользователя и надлежащим образом Аутентификация сервера LDAP. Я получаю точный результат от ldap_search скрипт.

Но всякий раз, когда я помещаю скрипт оболочки внутри exec или же shell_exec Команда PHP, я ничего не получаю.

Все остальные скрипты работают нормально с помощью PHP exec команда кроме ldap_search,

Осталось ли мне выполнить какое-то дополнительное задание?

Является ldap_search а также exec/shell_exec не совместимы друг с другом?

-1

Решение

Вы должны использовать echo exec('your command or script');

Убедитесь, что у вас есть разрешения на его запуск. Я имею в виду, что веб-пользователь должен иметь права на выполнение этого.

Может показаться очевидным, но я думаю, что ваша неудача в чем-то простом. Вы должны поставить эхо, чтобы показать результат команды.

РЕДАКТИРОВАТЬ После прочтения ваших новых комментариев об этом и использования этой новой информации … я увидел, что вы пытаетесь перенаправить вывод в файл … но, возможно, у вас есть 2 разные проблемы.

  1. У пользователя, который выполняет php (обычно www-data), разрешение на запись в папку, где находится php?

  2. Ваш код имеет кавычки внутри кавычек, которые должны быть экранированы с помощью. Попробуй это:

<?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.

Помни что > заменяет файл и то, что у вас есть >> добавить в конец файла.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]