programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 19/01/09 в 17:57 |
скрипт - прокси чекер, работает через CURL
php5 подключен как модуль cgi
CURL затыкается, много чего пробовал, если без прокси в целом все работает.
подключаю через крон:
Цитата: | PHP Fatal error: Uncaught exception 'Exception' with message 'CURL ERROR: couldn't connect to host' in /home/i/..../curl.php:338
Stack trace:
#0 /home/i/..../curl.php(260): Curl->mr_after_exec(false)
#1 /home/i/..../library.php(25): Curl->exec()
#2 /home/i/..../check.php(15): page_connect(Array)
#3 {main}
thrown in /home/i/..../curl.php on line 338
Status: 500 Internal Server Error
X-Powered-By: PHP/5.2.5
Content-type: text/html |
где копать?
|
|
|
|
С нами с 23.12.08
Сообщения: 232
Рейтинг: 101
|
Добавлено: 19/01/09 в 18:14 |
1. не та версия екстеншина CURL
2. попробуй CURL для "разрешённых" портов на твоём хостинге (хотя, если исп. трассировка соединений, это ничего не покажет)
3. что говорит суппорт? ;)
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 19/01/09 в 18:16 |
1. не понял
2. дык часть отрабатывает - не отрабатывает на прокси у которых затык
3. саппорт еще не спрашивал
|
|
|
|
С нами с 23.12.08
Сообщения: 232
Рейтинг: 101
|
Добавлено: 19/01/09 в 19:31 |
ну CURL ERROR: couldn't connect to host, а вот почему он не может приконнектиться - хз, шелл на хостинг есть? если просто в шелле telnet IP PORT "проблемной" прокси, на который вылетает... и потом уже суппорт напрягать что б разрешили исходящие коннекты на нужные порты (эт если телнет НЕотработает)
а 500 ошибка, здесь исключительно из-за того, что Uncaught exception, то есть, когда CURL не может чего-то, то он бросает ексепшн, который вы в скрипте не "ловите".
имхо нужно проверять телнетом, и от результатов уже плясать
зы: отпишитесь плиз потом о решении проблемы, ок?
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 19/01/09 в 19:35 |
сейчас на денвере попробую
|
|
|
|
С нами с 23.12.08
Сообщения: 232
Рейтинг: 101
|
Добавлено: 19/01/09 в 19:53 |
в общем, если я правильно понял проблему и окружение выполнения(например, если на хостинге всё разрешено), кастомный враппер (класс Curl) CURL бросает этот эксепшн, ессно, когда он не может приконнектиться к проксе, то есть она дохлая прокся и в блек-лист её...
зы: реализация Curl ваша? посмотрите просто инфу/наследуйте от этого класса, если нет встроенных дебаговых ф-ций и var_dump($e) - то есть того ексепшина, который выбрасывает этот класс
зы: хотя, навряд ли она будет отличаться от: CURL ERROR: couldn't connect to host' in /home/i/..../curl.php:338
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 19/01/09 в 19:55 |
Код: | if(curl_errno($this->_ch))
{
throw new Exception("CURL ERROR: ".curl_error($this->_ch),curl_errno($this->_ch));
} |
экцепшен нигде в коде не обрабатывается
|
|
|
|
С нами с 23.12.08
Сообщения: 232
Рейтинг: 101
|
Добавлено: 19/01/09 в 20:36 |
int curl_errno ( resource $ch )
Возвращает код ошибки для последней операции cURL с дескриптором ch, или 0 (ноль), если ошибки не было.
то есть, этот класс просто проверяет результат выполнения последней CURL - ф-ции. Что это за последняя ф-ция однозначно сказать невозможно, так как вы юзаете враппер (согласно лога стека, ошибка может быть или в curl_exec() или в обёртке Curl->mr_after_exec() ), хотя, скорее-всего, что имплементация Curl->exec() просто не коннектится к проксе.
В общем, попробуйте telnet на эту проблемную проксю из шелла на хостинге. Если не коннектится - откажитесь от этого класса (Curl) и просто юзайте и обрабатуйте значения возвращаемые ф-циями CURL напрямую.
теги:
CURL: http://ua2.php.net/manual/ru/book.curl.php
CURL-Wrapper с "нормальной документаций" (PEAR): http://pear.php.net/package/Net_Curl
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 19/01/09 в 21:10 |
отказался от класса при проверке прокси.
как я понял - виртуал рвал соединение, закрывал - не важно, если скрипт сам этого не делал.
сейчас поставил таймаут 10 секунд, вроде чекает, процент выхода плохих больше конечно, но сцуко виртуал
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 20/01/09 в 02:33 |
Нечего само по себе разорвать не может, либо ты не разобрался с таймаутами в CURL, либо из крона запускал скрипт в стиле wget /bla/bla/myscript.php
|
|
|
|