Мы пытаемся отладить некоторые ошибки 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 TRUE для вывода подробной информации.Записывает вывод в STDERR CURLOPT_STDERR Альтернативное расположение для вывода ошибок вместо STDERR.
Это также не проблема с разрешениями, я установил разрешения для файлов и сценариев для 777 на сервереside и мой локальный клиент - windows, и он никогда не заботился о настройках разрешений (в любом случае это только для dev).