У меня есть веб-сайт, работающий с использованием Apache 2.2.22, PHP 5.3.10 и cURL 7.2.00. Соответствующие части конфигурации apache приведены ниже, и вы заметите, что ошибки отправляются на www.example.com_error.log
.
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
# *snip*
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
Однако, когда я использую cURL из PHP и включаю подробный вход, используя curl_setopt($connection, CURLOPT_VERBOSE, true);
вывод cURL попадает в Apache error.log
вместо пользовательского файла журнала, определенного выше. Почему это так и как я могу получить вывод cURL в правильный файл журнала?
За несколько ответов на это ТАК вопрос, php записывается в журнал сервера Apache по умолчанию (error.log), как вы уже заметили. Вы можете установить следующие настройки журнала php:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
# *snip*
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
php_flag log_errors on
php_flag display_errors on
php_value error_reporting 2147483647
php_value error_log ${APACHE_LOG_DIR}/php.error.log
</VirtualHost>
В качестве альтернативы в одном из ответов на этот вопрос SO упоминалось, что отключение error_log
полностью в php.ini для входа в журналы соответствующего виртуального хоста, например example.com_error.log
.
В соответствии с документация по curl, Вы можете установить местоположение файла журнала с помощью CURLOPT_STDERR.
См. Полный пример в этом ответ