Curl и php5 на windows! php вызывает ошибку и закрывается виндой!

nuker

Новичок
Curl и php5 на windows! php вызывает ошибку и закрывается виндой!

Привет всем!
В php5 появилась возможность многопоточности curl'a, а она мне как раз была и нужна.
Я составил свой код по примеру, все работает, все супер, но после 2 минут работы - php вызывает ошибку и закрывается.

Ставил php как модуль для apache - apache завершается.
Как cgi - php завершается.

Да, кстати, при работе скрипта - 100% нагрузка на проц!

В php.ini включены только 2 модуля: curl и mysql

Ошибки:
ppName: php-cgi.exe AppVer: 5.1.1.1 ModName: msvcrt.dll
ModVer: 7.0.2600.1106 Offset: 00032e0a
При работе через apache - php5ts.dll


Вот кусок кода:
PHP:
<?
$mh = curl_multi_init();

foreach ($urls_for_get as $i => $url) {

       $conn[$i]=curl_init();
       curl_setopt($conn[$i],CURLOPT_URL,$url);
       curl_setopt($conn[$i],CURLOPT_PORT,80);

       curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);
       curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);

        curl_setopt($conn[$i],CURLOPT_SSL_VERIFYPEER,0);
        curl_setopt($conn[$i],CURLOPT_SSL_VERIFYHOST,0);

        curl_setopt($conn[$i], CURLOPT_TIMEOUT, 150);
        curl_setopt($conn[$i], CURLOPT_PROXY, "192.168.1.1:3128");


        curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");

        curl_multi_add_handle ($mh,$conn[$i]);
}

do { $n=curl_multi_exec($mh,$active); } while ($active);



foreach ($urls_for_get as $i => $url) {

	$res[$i]=curl_multi_getcontent($conn[$i]);

	curl_multi_remove_handle($mh,$conn[$i]);
	curl_close($conn[$i]);
}
curl_multi_close($mh);
?>
Кто сталкивался с такой проблеммой? Кто знает, как ее решить?
Перепробованные версии php: 5.0.6, 5.1.1
Стоит Denwer 2005-01-26, но запускал и без него, чисто через php-cgi.exe, так что проблемма не в нем.

Systeminfo:
Код:
Имя узла:                         NAME
Название ОС:                      Microsoft Windows XP Professional
Версия ОС:                        5.1.2600 Service Pack 1 сборка 2600
Изготовитель ОС:                  Microsoft Corporation
Параметры ОС:                     Изолированная рабочая станция
Сборка ОС:                        Uniprocessor Free
Зарегистрированный владелец:      NAME
Зарегистрированная организация:   NAME
Код продукта:                     55683-770-4583701-22342
Дата установки:                   19.10.2005, 22:36:47
Время работы системы:             1 дн., 0 час., 3 мин, 57 сек.
Изготовитель системы:             ASUSTEK 
Модель системы:                   A2C/S 
Тип системы:                      X86-based PC
Процессор(ы):                     Число процессоров - 1.
                                  [01]: x86 Family 15 Model 2 Stepping 9 GenuineIntel ~2800 МГц
Версия BIOS:                      ASUS   - 42302e31
Папка Windows:                    C:\WINDOWS
Системная папка:                  C:\WINDOWS\System32
Устройство загрузки:              \Device\HarddiskVolume1
Язык системы:                     ru;Русский
Язык ввода:                       en-us;Английский (США)
Часовой пояс:                     Н/Д
Полный объем физической памяти:   512 МБ
Доступная физическая память:      141 МБ
Виртуальная память: Макс. размер: 1 762 МБ
Виртуальная память: доступно:     824 МБ
Виртуальная память: используется: 938 МБ
Расположение файла подкачки:      C:\pagefile.sys
Домен:                            HOME
Сервер входа в сеть:              \\NAME
Исправление(я):                   Число установленных исправлений - 7.
                                  [01]: File 1
                                  [02]: File 1
                                  [03]: File 1
                                  [04]: Q147222
                                  [05]: KB842773 - Update
                                  [06]: KB893803v2 - Update
                                  [07]: KB898461 - Update
Неизвестные сетевые адаптеры:     Число сетевых адаптеров - 3.
                                  [01]: SiS 900 PCI Fast Ethernet Adapter
                                        Имя подключения: Подключение по локальной сети
                                        DHCP включен:    Нет
                                  [02]: Сетевой адаптер 1394
                                        Имя подключения: 1394-соединение
                                  [03]: ASUS 802.11g Network Adapter
                                        Имя подключения: Беспроводное сетевое соединение

Заранее всем спасибо за ответы!
 

nuker

Новичок
Нет, у меня вообще неро пока не стоит, но глюки с cd есть, он нормально не может писать диски
 

sakon

П..и.н..ок
К программированию твоя проблема не имеет отношения. Разбирайся с установленными у тебя на компе программами.
 

nuker

Новичок
Не думаю, так как пробовал проделать тоже самое на другом компе с только что установленной виндой
 

SiMM

Новичок
> Apache второй?
> Стоит Denwer 2005-01-26, но запускал и без него, чисто через php-cgi.exe
 

svetasmirnova

маленький монстрик
3 месяца назад как модуль второго апача падал регулярно. Как модуль первого и как cli работал как положено. Ни Denwer, ни php-cgi не пробовала.
 

nuker

Новичок
Автор оригинала: svetasmirnova
3 месяца назад как модуль второго апача падал регулярно. Как модуль первого и как cli работал как положено. Ни Denwer, ни php-cgi не пробовала.
Apache 2-ой вообще глючный какой-то, я его пробовал ставить.
Но как бы я ни делал, как модуль, или вообще без апача, одно и тоже. Единственный выход отсюда, это сделать батник, в нем написать
Код:
@:cool
@php-cgi -f /home/script.php
@goto cool
Он будет циклично выполнять скрипт и ждать его выполнения, осталось только, чтобы dwwin.exe из процессов убивался :)
Если придумать, чтобы dwwin.exe или как-то не запускался, или убивался (это отчет об ошибках), то можно считать это выходом из ситуации. Мне всеравно где он оборвется - данные сразу записываются в базу, а скрипт работает циклично.

Так скрипт будет работать пару минут, обрываться, выдавать ошибку, dwwin убивается и он заново запускаетсья и работает. При чем скрипт может работать и минут 10 потом вырубиться, а может и минуты 2. Так что... Конечно этот способ для извращенцев.... но...

Теперь осталось либо:
1. Узнать как автоматически убивать из процессов dwwin.exe
2. Придумать другой вариант
 

svetasmirnova

маленький монстрик
>2. Придумать другой вариант
Я же написала, что обычный php-cli.exe из стандартной поставки падать не будет. Также не будет падать стандартный модуль первого апача. С php.net Но если без Denwer-а никак, то я не помощник. У них форум есть, поспрошай.
 

nuker

Новичок
Я конечно могу себе поставить апач, без денвера могу обойтись, но я не думаю что проблемма в нем, потому что:
1. Я пробовал кинуть php5 как модуль апача, и запускал из броузера - падал apache.exe
2. Я пробовал перейминовать свой скрипт в cgi и вверху прописать #!/usr/local/php5/php.exe - падал php.exe
3. Я пробовал запускать в обход апача через php-cgi - он же и падал.

Всеравно спасибо за ответ!
 
Сверху