Как просмотреть stderr функций PHP ldap_* (с LDAP_OPT_DEBUG_LEVEL=7) из mod_php
Я могу запустить следующее из PHP 5.4.16 CLI:
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
$conn = ldap_connect($hostname);
ldap_bind($conn, $ldaprdn);
И я получу много отладочной информации в stderr, которая начинается так:
ldap_create
ldap_url_parse_ext(ldaps://ldap.example.com)
ldap_bind_s
ldap_simple_bind_s
ldap_sasl_bind_s
ldap_sasl_bind
ldap_send_initial_request
...
Это отлично подходит для отладки в CLI. Тем не менее, мне нужно отладить из Apache 2.2.15 mod_php, потому что я вижу прерывистое подключение LDAP там, что я не могу воспроизвести в командной строке.
Я думал, что смогу запустить тот же код с веб-сервера и увидеть эту отладочную информацию в журнале ошибок Apache, но сообщения там не отображаются. PHP ошибки / предупреждения определенно идут в журнал ошибок, и я попытался error_reporting(-1)
, но не могу заставить эти отладочные сообщения показывать где-либо.
Есть ли какой-то способ увидеть эти отладочные сообщения stderr при работе под Apache?
1 ответ
Ответ заключается в том, что эти сообщения регистрируются, но в другой файл журнала, чем где error_log()
сообщения идут. В моем Apache conf каждый виртуальный хост имеет свой собственный файл журнала ошибок. Существует также глобальный файл журнала ошибок, в котором отображаются сообщения запуска / завершения работы Apache.
Я выполнял эти сценарии отладки LDAP на виртуальном хосте и ожидал, что выходные данные об ошибках попадут в определенный журнал ошибок хоста... как и все другие сообщения об ошибках. Но по какой-то причине эти строки отладки ldap отправляются в глобальный журнал ошибок.