Intereting Posts
Оптимальный подход для замены 8 изображений заголовков в дочерней теме? как json_encode (); содержимое Loop, чтобы закодированный массив был Удалить постоянную ссылку Meta Box не работает? Борьба за поиск ресурсов, связанных с пользовательской почтовой записью Как добавить внутренние комментарии к комментариям к обновлениям страницы Как установить переменную в коротком коде и ссылаться на нее в другом коротком коде в том же сообщении? Металлический запрос запроса запроса WP мне нужно изменить префикс базы данных по умолчанию? WordPress slug добавляет подкатегорию в URL-адрес сообщения Как сделать / Что запускает автоматическое обновление WordPress? Проблемы с выпуском продуктов Woocommerce Получить все категории в архиве на основе URL? Каков наилучший способ разделить функциональность только для администратора в файле functions.php темы? Проверка WordPress & W3C CSS Большой размер загрузки изображения (с использованием timthumb.php

Где я должен сообщить WordPress, где должны быть написаны сообщения об ошибках?

У меня есть два разных экземпляра одного и того же сервера (один для разработки, один для развертывания), построенный независимо, но в основном тот же (одна и та же ОС, одна версия WordPress, одно и то же содержимое и т. Д.).

Тем не менее, я смущен конфигурацией: мне кажется, что они настроены одинаково (за исключением того, что серверу развертывания говорят не писать ошибки / предупреждения в браузер).

Обе конфигурации указывают ini_set( 'error_log', '/var/log/wp-debug.log' ); и этот файл действительно создан обоими; однако на одном сервере все, написанное с использованием error_log(...) отправляется в /var/log/wp-debug.log тогда как на другом сервере такой вывод вместо этого отправляется в /var/log/apache2/error.log (хотя PHP ошибки и предупреждения перейдите в /var/log/wp-debug.log ).

Я пробовал играть с определенными значениями WP_DEBUG , WP_DEBUG_LOG и WP_DEBUG_DISPLAY а также сменил настройки display_errors через ini_set(...) но ничего не имеет никакого значения.

Могу ли я указать где-нибудь, что я хочу, чтобы вывести вызовы error_log(...) чтобы перейти к одному или другому из этих журналов? (Я бы хотел, чтобы выход всегда отправлялся в Apache error.log потому что эта дополнительная информация я хочу использовать.)

На стороне WP единственная обработка, которую он делает, – это установить журнал в WP_CONTENT_DIR . '/debug.log' WP_CONTENT_DIR . '/debug.log' если включен WP_DEBUG_LOG (очень плохая идея в рабочей среде как общедоступная локация). Если я правильно помню, то очень ранние реализации этой константы позволяли настраивать путь, но это уже не так.

По моему опыту ini_set( 'log_errors', 1 ); ini_set( 'error_log', '/path' ) ini_set( 'log_errors', 1 ); ini_set( 'error_log', '/path' ) в wp-config.php должно быть достаточно (если вы не включите WP_DEBUG_LOG который переопределит его).

Второй случай звучит странно. Я ожидал бы, что ошибки будут отправляться в один пункт назначения, но не в два отдельных файла журнала. Возможно, что-то меняет конфигурацию во время выполнения. Невозможно сказать без проблем по устранению неполадок.

Как описано в другом месте на этой странице, в моем случае решение было просто сбросить значение параметра error_log PHP. Я сделал это, добавив в конец моего /var/www/html/wp-config.php :

 ini_restore('error_log'); 

Один важный момент: в конце концов я закончил это правильно, потому что он, похоже, не вступил в силу, когда он был включен сразу после define('WP_DEBUG...', ...); линий.

Спасибо Rarst и bynicolas за их советы, которые помогли мне подойти к этому решению.