Мы пытаемся отладить некоторые ошибки 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 на стороне сервера, а мой локальный клиент - это Windows, и он никогда не заботился о настройках разрешений (в любом случае, это только для разработчиков).
curl_exec()
. И какой результат вы ожидаете (и почему)? - person Progman   schedule 15.01.2012