URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5362
[ Назад ]

Исходное сообщение
"error(name lookup timed out) при выполнении curl"

Отправлено Gular , 10-Ноя-07 21:20 
Приветствую вас.

Такая проблема.

На хостинговом сервере один клиентский проект использует curl. И при выполнении скриптов валятся такие ошибки:

23:24:14 #0 of 8948 - error(Connection time-out after 90006 ms)
23:24:14 #1 of 8948 - error(name lookup timed out)
23:24:14 #2 of 8948 - error(name lookup timed out)
23:24:14 #3 of 8948 - error(name lookup timed out)
23:24:14 #4 of 8948 - error(name lookup timed out)
23:24:14 #5 of 8948 - error(name lookup timed out)
23:24:14 #6 of 8948 - error(name lookup timed out)
23:24:14 #7 of 8948 - error(name lookup timed out)
23:24:14 #8 of 8948 - error(name lookup timed out)
23:24:14 #9 of 8948 - error(name lookup timed out)

Как изменить? Такое ощущение, что есть лимиты на запросы curl'a.

РНР собран с поддержкой curl:

php -i | grep curl

Configure Command => './configure' '--with-apxs2' '--with-curl=/usr/local/lib' '--with-gd' '--enable-gd-native-ttf' '--with-ttf' '--with-gettext' '--with-jpeg-dir=/usr/local/lib' '--with-freetype-dir=/usr/local/lib' '--with-kerberos' '--with-openssl' '--with-mcrypt' '--with-mhash' '--with-mysql=/usr' '--with-mysqli=/usr/bin/mysql_config' '--with-pear' '--with-png-dir=/usr/local/lib' '--with-zlib' '--with-zlib-dir=/usr/local/lib' '--enable-zip' '--with-iconv=/usr/local' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-mbstring' curl cURL Information => libcurl/7.17.1 OpenSSL/0.9.7a zlib/1.2.3 libidn/0.5.6

В /etc/php.ini строки extension=libcurl.so нету. Но и не нужна наверно она, потому как после ее дописания, перезапуска и ввода вышенаписанной коанды он ругается, что не может загрузить ./libcurl.so.

Подскажите, где смотреть? Спасибо.

curl через скрипты РНР.


Содержание

Сообщения в этом обсуждении
"error(name lookup timed out) при выполнении curl"
Отправлено angra , 10-Ноя-07 21:36 
И что такие ошибки происходят при обращении через curl к _любому_ сайту(например к google) или все-таки только к определенному? что если из консоли на сервере запустить curl с тем же адресом? Локализуйте проблему.

"error(name lookup timed out) при выполнении curl"
Отправлено Gular , 10-Ноя-07 22:04 
>И что такие ошибки происходят при обращении через curl к _любому_ сайту(например
>к google) или все-таки только к определенному? что если из консоли
>на сервере запустить curl с тем же адресом? Локализуйте проблему.

Курл оттуда в Гугл работает:

curl www.google.ru
<html><head><meta http-equiv="content-type" content="text/html; charset=windows-1251"><title>Google</title><style>body,td,a,p,.h{font-family:""}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}</style><script>window.google={kEI:"EAA2R9CDPIS0sAKDm8CuCw",kEXPI:"0",kHL:"ru"};function sf(){document.f.q.focus()}
</script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="sf();if(document.images){new Image().src='/images/nav_logo3.png'}"

Ошибки при работе со скриптами, которые хранятся там же.


"error(name lookup timed out) при выполнении curl"
Отправлено angra , 11-Ноя-07 09:20 
Не совсем тогда понимаю в чем у вас затруднение. Вы проверили что сам curl работает. Значит проблема в url, которые ему скармливают пыховые скрипты. Ну так посмотрите что именно они запрашивают. Может у вас что-то в сети не корректно настроенно, а может на целевых хостах проблемы. Всегда старайтесь сначала максимально локализовать проблему, а уже потом ее решать. А то может получится что вы будете думать об обновлении curl или php, а проблема будет в DNS сервере или роутинге.

"error(name lookup timed out) при выполнении curl"
Отправлено Gular , 11-Ноя-07 10:34 
>Не совсем тогда понимаю в чем у вас затруднение. Вы проверили что
>сам curl работает. Значит проблема в url, которые ему скармливают пыховые
>скрипты. Ну так посмотрите что именно они запрашивают. Может у вас
>что-то в сети не корректно настроенно, а может на целевых хостах
>проблемы. Всегда старайтесь сначала максимально локализовать проблему, а уже потом ее
>решать. А то может получится что вы будете думать об обновлении
>curl или php, а проблема будет в DNS сервере или роутинге.
>

То есть, возможна проблема в DNS?

nslookup'ом показывает норму.

nslookup agetofu.info
Server:         58.65.238.10
Address:        58.65.238.10#53

Non-authoritative answer:
Name:   agetofu.info
Address: 219.94.129.21

----

libcurl.so есть, который, собственно, и находится в заявленной директории /usr/local/lib :

ls -l /usr/local/lib/libcu*
-rw-r--r--  1 root root 2502862 Nov  9 01:27 /usr/local/lib/libcurl.a
-rwxr-xr-x  1 root root     929 Nov  9 01:27 /usr/local/lib/libcurl.la
lrwxrwxrwx  1 root root      16 Nov  9 01:27 /usr/local/lib/libcurl.so -> libcurl.so.4.0.1
lrwxrwxrwx  1 root root      16 Nov  9 01:27 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.0.1
-rwxr-xr-x  1 root root 1418153 Sep 20 17:44 /usr/local/lib/libcurl.so.4.0.0
-rwxr-xr-x  1 root root 1436716 Nov  9 01:27 /usr/local/lib/libcurl.so.4.0.1

Если в etc/php.ini добавить строку extension=libcurl.so и перезагрузить Apache, то он запустится, записав в лог ошибку:

PHP Warning:  PHP Startup: Unable to load dynamic library './libcurl.so' - ./libcurl.so: cannot open shared object file: No such file or directory in Unknown on line 0

curl к, например, Гуглу непосредственно с сервера работает:

curl -L www.google.ru
<html><head><meta http-equiv="content-type" content="text/html; charset=windows-1251"><title>Google</title><style>body,td,a,p,.h{font-family:""
}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}</style><script>window.google={kEI:"O
as2R6DtIJ2OsALc1rikCw",kEXPI:"0",kHL:"ru"};function sf(){document.f.q.focus()}
...и далее...

----

Версия curl:

curl --version
curl 7.17.1 (i686-pc-linux-gnu) libcurl/7.17.1 OpenSSL/0.9.7a zlib/1.2.3 libidn/0.5.6
Protocols: tftp ftp telnet dict ldap http https ftps
Features: IDN IPv6 Largefile NTLM SSL libz

PHP:

php --version
PHP 5.2.4 (cli) (built: Nov  9 2007 01:37:44)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

php-cgi --version
PHP 5.1.6 (cgi-fcgi) (built: Jun 17 2007 11:40:59)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies


"error(name lookup timed out) при выполнении curl"
Отправлено Gular , 11-Ноя-07 12:08 
>Не совсем тогда понимаю в чем у вас затруднение. Вы проверили что
>сам curl работает. Значит проблема в url, которые ему скармливают пыховые
>скрипты. Ну так посмотрите что именно они запрашивают. Может у вас
>что-то в сети не корректно настроенно, а может на целевых хостах
>проблемы. Всегда старайтесь сначала максимально локализовать проблему, а уже потом ее
>решать. А то может получится что вы будете думать об обновлении
>curl или php, а проблема будет в DNS сервере или роутинге.
>

Добавка.
--------

На данном хостинге есть некий скрипт на РНР, который, как я понимаю, запрашивает некоторые адреса. В частности, например, вот кусок вывода этого скрипта (команду php /path/to/my_script.php):

http://cgi38.plala.or.jp/yukkyday/bbs/wf_regi.cgi
http://cgi39.plala.or.jp/REXER/keiji/light.cgi
15:39:29 #10 of 8948 - error(name lookup timed out)
15:39:29 #11 of 8948 - error(name lookup timed out)
15:39:29 #12 of 8948 - error(name lookup timed out)
15:39:29 #13 of 8948 - error(name lookup timed out)
15:39:29 #14 of 8948 - error(name lookup timed out)
15:39:29 #15 of 8948 - error(name lookup timed out)
15:39:29 #16 of 8948 - error(name lookup timed out)
15:39:29 #17 of 8948 - error(name lookup timed out)
15:39:29 #18 of 8948 - error(name lookup timed out)
15:39:29 #19 of 8948 - error(name lookup timed out)
http://cgi39.plala.or.jp/~alkaloid/fileup/joyful.cgi
http://cgi39.plala.or.jp/~hot-bob/001/joyful.cgi
http://cgi39.plala.or.jp/~tricker/cbbs/srch.cgi

То есть, похоже, что он не может заполучить страницу с cgi.

Это связано с временем curl TIMEOUT, или дело DNS? Извините, может я плохо вопрос понимаю. Надо разобраться. Я уже документацию по curl почитал. :)


"error(name lookup timed out) при выполнении curl"
Отправлено Gular , 11-Ноя-07 13:59 
В общем, curl с сервера на, например, ту же light.cgi работает, а в скрипте, похоже, нет. Наверно дело в коде, да? :)

"error(name lookup timed out) при выполнении curl"
Отправлено Gular , 11-Ноя-07 19:47 
Решить удалось при помощи изменения кода в скрипте.В одной из строк был код
$timeout=10;

Изменил на бОльшее значение
$timeout=120;

Скрипт вроде работает. Но, может есть другое решение?


"error(name lookup timed out) при выполнении curl"
Отправлено angra , 13-Ноя-07 15:40 
>Скрипт вроде работает. Но, может есть другое решение?

Настроить DNS так, чтобы ответ гарантировано возвращался быстрее чем за 10 секунд(если в $timeout конечно не милисекунды). Однако как это делать и какие плюсы и минусы для разных вариантов это уже слишком обширная тема :)


"error(name lookup timed out) при выполнении curl"
Отправлено Gular , 13-Ноя-07 21:01 
>>Скрипт вроде работает. Но, может есть другое решение?
>
>Настроить DNS так, чтобы ответ гарантировано возвращался быстрее чем за 10 секунд(если
>в $timeout конечно не милисекунды). Однако как это делать и какие
>плюсы и минусы для разных вариантов это уже слишком обширная тема
>:)

Угу, DNS, видимо, слишком долго разрешает имя. Потому что на другом сервере такого не возникает.


"error(name lookup timed out) при выполнении curl"
Отправлено qradmin , 06-Фев-12 13:39 
>>>Скрипт вроде работает. Но, может есть другое решение?
>>
>>Настроить DNS так, чтобы ответ гарантировано возвращался быстрее чем за 10 секунд(если
>>в $timeout конечно не милисекунды). Однако как это делать и какие
>>плюсы и минусы для разных вариантов это уже слишком обширная тема
>>:)
> Угу, DNS, видимо, слишком долго разрешает имя. Потому что на другом сервере
> такого не возникает.

да ослу понятно, что нет ответа за 10секунд. у меня та же проблема с фидбьорнер