Мы пытаемся отладить некоторые ошибки cURL на сервере, и мне бы хотелось увидеть журнал STDERR. В настоящее время мы видим, что наша ошибка - "код ошибки: 7", и мы не можем подключиться к целевому серверу. Мы связались с хостом и сделали специальное правило, чтобы открыть необходимый нам порт, и мы пока игнорируем сертификат.
Тем не менее, мы не можем подключиться. Мне нужно отладить это, но я не вижу никакой соответствующей информации на моем конце.
Линии, упоминающие "VERBOSE" и "STDERR", являются самыми важными, я думаю. Ничего не написано в $curl_log. Что я делаю не так? Следуя логике руководств, это должно быть правильно...
Используемый PHP:
<?php
$curl = curl_init();
$curl_log = fopen("curl.txt", 'w');
$url = "http://www.google.com";
curl_setopt_array($curl, array(
CURLOPT_URL => $url, // Our destination URL
CURLOPT_VERBOSE => 1, // Logs verbose output to STDERR
CURLOPT_STDERR => $curl_log, // Output STDERR log to file
CURLOPT_SSL_VERIFYPEER => 0, // Do not verify certificate
CURLOPT_FAILONERROR => 0, // true to fail silently for http requests > 400
CURLOPT_RETURNTRANSFER => 1 // Return data received from server
));
$output = fread($curl_log, 2048);
echo $output; // This returns nothing!
fclose($curl_log);
$response = curl_exec($curl);
//...restofscript...
?>
Из руководства PHP: http://php.net/manual/en/function.curl-setopt.php
CURLOPT_VERBOSE ИСТИНА для вывода подробной информации. Записывает вывод в STDERR CURLOPT_STDERR Альтернативное местоположение для вывода ошибок вместо STDERR.
Это тоже не проблема разрешения. Я установил файл и script разрешения на 777 на стороне сервера, а мой локальный клиент - это окна и никогда не заботился о настройках разрешений (это только для dev в любом случае).