Проблема с PHP\cURL\Cookies

Все о скриптах

Модераторы: Art.i, vasya

Проблема с PHP\cURL\Cookies

Сообщение icq123546 » Пн сен 30, 2013 5:58 pm

Вечер добрый, сегодня столкнулся с очень неприятной проблемой.

Следующий код, должен получить куки и записывать их в файл. Но увы на двух вдс (centos и freebsd) сейчас этот код не записывает куки.

Код: выделить все
<?php
@ini_set("display_errors","1");
@error_reporting( E_ALL );
@date_default_timezone_set('Europe/Moscow');

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://ya.ru");
curl_setopt($ch, CURLOPT_REFERER, "http://google.com");
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd()."/cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd()."/cookies.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);

$result = curl_exec($ch);
echo "\r\n\r\n" . $result . "\r\n\r\n";
echo "Curl error: " . curl_error($ch) . "\r\n\r\n";
curl_close($ch);
?>


Около двух недель назад этот код работал на ваших серверах без проблем. За это время вдс вообще не трогались... мною ни коим образом не перенастраивались.

Проверил работоспособность скрипта на других хостингах и на своём пк, код сохраняет полученные куки в файл без проблем и работает как следует.
---
Далее я решил сделать еще одну попытку проверить curl, выполнив следующий запрос в ssh, под рутом.
Код: выделить все
curl -c '/tmp/cookies.txt' 'http://ya.ru'

Файл в папке tmp не создался.

С местом всё окей:
Код: выделить все
# df -h
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     15G    9.2G    6.5G    59%    /
devfs         1.0k    1.0k      0B   100%    /dev


Что может быть не так? Спасибо.
icq123546
 
Сообщений: 7
Зарегистрирован: Пн сен 30, 2013 5:25 pm

Re: Проблема с PHP\cURL\Cookies

Сообщение ls » Пн сен 30, 2013 7:33 pm

Код вроде бы внешне правильный, однако хочу отметить, что если на FreeBSD (не KVM виртуализация) возможны обновления шаблона извне его разработчиками (подробнее о данной технологии и виртуализации от ISPsystem есть на сайте firstvds), то на CentOS никаких изменений в ПО на виртуализациях OpenVZ и KVM невозможно в принципе
* FirstVDS в twitter в facebook и в вконтакте *
ls
Support team
 
Сообщений: 6385
Зарегистрирован: Чт мар 01, 2007 10:36 am
Откуда: FirstVDS

Re: Проблема с PHP\cURL\Cookies

Сообщение icq123546 » Пн сен 30, 2013 8:12 pm

ls писал(а):Код вроде бы внешне правильный, однако хочу отметить, что если на FreeBSD (не KVM виртуализация) возможны обновления шаблона извне его разработчиками (подробнее о данной технологии и виртуализации от ISPsystem есть на сайте firstvds), то на CentOS никаких изменений в ПО на виртуализациях OpenVZ и KVM невозможно в принципе

Этот код на 100% рабочий. Вы мне скажите как так могло случиться, что curl "разучился" сохранять куки?

Ради решения этой бредовой ситуации даже купил пакет тех. поддержки и туда написал.

Код: выделить все
curl -c '/tmp/cookies.txt' 'http://ya.ru'

На CentOS сохраняет куки. На FreeBSD нет.

php скрипт и там и там не сохраняет. Хотя отображает в хеадере полученых данных что они есть.

---
Повторюсь, я проверил работоспособность на нескольких хостингах и на локальном компьютере. Да и тут он ранее работал.
icq123546
 
Сообщений: 7
Зарегистрирован: Пн сен 30, 2013 5:25 pm

Re: Проблема с PHP\cURL\Cookies

Сообщение icq123546 » Вт окт 01, 2013 12:18 am

Вопрос решили, пересборкой curl. При обновлении ПО шаблонов допустили ошибку, потому curl и вел себя так плохо :).
icq123546
 
Сообщений: 7
Зарегистрирован: Пн сен 30, 2013 5:25 pm

Re: Проблема с PHP\cURL\Cookies

Сообщение swg » Вт окт 01, 2013 2:11 am

Спасибо вам, т.к. сам начал смотреть причину проблему, проверял и через php и через curl (ключи -b ранее заставляли работать curl c cookie).
Вот теперь интересно, как расценивать: вы заплатили, но вы в этом не виноваты, причём зона ответственности, явно, ваша (ведь исправить своими силами могли). Реально неприятно. Похоже, опять, проблемы с версиями пакетов. Надоело уже видеть версии от 9 в 9.1 (сейчас уже 9.2), невозможность нормально использовать предсобранные пакеты, поэтому больше и не пользуюсь FreeBSD на этой виртуализации.
swg
флудит форум
 
Сообщений: 2383
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Проблема с PHP\cURL\Cookies

Сообщение personx » Вс окт 06, 2013 9:44 am

icq123546 писал(а):Вопрос решили, пересборкой curl. При обновлении ПО шаблонов допустили ошибку, потому curl и вел себя так плохо :).

Возникла такая же проблема, не работают модули с курлом недели две...можете подсказать как пересобрать curl?
personx
 
Сообщений: 1
Зарегистрирован: Вс окт 06, 2013 9:31 am

Re: Проблема с PHP\cURL\Cookies

Сообщение pepper » Пн окт 07, 2013 7:09 am

Для FreeBSD так:
Код: выделить все
cd /usr/ports/ftp/curl && make config
В списке выбираем опцию COOKIES во второй строке и жмём OK.
Код: выделить все
make install
После пересборки можно проверить так:
Код: выделить все
curl -c '/tmp/cookies' 'http://ya.ru' && ls -l /tmp/cookies
Если пересобрано правильно, то файл создастся.

После нужно ещё пересобрать расширение РНР:
Смотрим версию, чистим и пересобираем:
Код: выделить все
php -v
cd /usr/ports/ftp/php5-curl && make clean
make reinstall

Не забываем перезапустить apache
Код: выделить все
apachectl restart
pepper
Support team
 
Сообщений: 551
Зарегистрирован: Пн окт 07, 2013 4:06 am

Re: Проблема с PHP\cURL\Cookies

Сообщение karara » Вт окт 29, 2013 10:03 am

Я сервак взял в эту субботу (26 числа), а у меня точно такая же проблема. Выполнил все по инструкцию - хрен. Не помогло.
На локалке и на других серверах все работает отлично, но firstvds впереди планеты всей по косякам!
karara
 
Сообщений: 16
Зарегистрирован: Сб дек 05, 2009 1:58 pm

Re: Проблема с PHP\cURL\Cookies

Сообщение ls » Вт окт 29, 2013 10:57 am

После cd /usr/ports/ftp/curl && make config
Видимо надо make ; make deinstall ; make install clean

чтобы удалился старый пакет
* FirstVDS в twitter в facebook и в вконтакте *
ls
Support team
 
Сообщений: 6385
Зарегистрирован: Чт мар 01, 2007 10:36 am
Откуда: FirstVDS

Re: Проблема с PHP\cURL\Cookies

Сообщение karara » Вт окт 29, 2013 11:03 am

ls писал(а):После cd /usr/ports/ftp/curl && make config
Видимо надо make ; make deinstall ; make install clean

чтобы удалился старый пакет


Спасибо за инфу. Для знающих моя проблема была наверное смешной, но для меня администрирование и все эти команды - темный лес
karara
 
Сообщений: 16
Зарегистрирован: Сб дек 05, 2009 1:58 pm

Re: Проблема с PHP\cURL\Cookies

Сообщение ololo » Чт ноя 21, 2013 10:28 pm

Помогите мне, пожалуйста.

Я вообще без curl остался теперь, похоже!

makeroot@kpyto:/usr/ports/ftp/curl # make ; make deinstall ; make install clean
===> License MIT accepted by the user
===> Found saved configuration for curl-7.24.0_2
=> curl-7.24.0.tar.lzma is not in /usr/ports/ftp/curl/distinfo.
=> Either /usr/ports/ftp/curl/distinfo is out of date, or
=> curl-7.24.0.tar.lzma is spelled incorrectly.
*** [do-fetch] Error code 1

Stop in /usr/ports/ftp/curl.
*** [build] Error code 1

Stop in /usr/ports/ftp/curl.
===> Deinstalling for ftp/curl
===> Deinstalling curl-7.31.0_1
pkg_delete: package 'curl-7.31.0_1' is required by these other packages
and may not be deinstalled (but I'll delete it anyway):
php5-curl-5.4.19_1
===> License MIT accepted by the user
===> Found saved configuration for curl-7.24.0_2
=> curl-7.24.0.tar.lzma is not in /usr/ports/ftp/curl/distinfo.
=> Either /usr/ports/ftp/curl/distinfo is out of date, or
=> curl-7.24.0.tar.lzma is spelled incorrectly.
*** [do-fetch] Error code 1

Stop in /usr/ports/ftp/curl.
*** [install] Error code 1

Stop in /usr/ports/ftp/curl.
root@kpyto:/usr/ports/ftp/curl # curl -c '/tmp/cookies' 'http://ya.ru' && ls -l /tmp/cookies
curl: Command not found.
root@kpyto:/usr/ports/ftp/curl # make install clean
===> License MIT accepted by the user
===> Found saved configuration for curl-7.24.0_2
=> curl-7.24.0.tar.lzma is not in /usr/ports/ftp/curl/distinfo.
=> Either /usr/ports/ftp/curl/distinfo is out of date, or
=> curl-7.24.0.tar.lzma is spelled incorrectly.
*** [do-fetch] Error code 1

Stop in /usr/ports/ftp/curl.
*** [install] Error code 1

Stop in /usr/ports/ftp/curl.
root@kpyto:/usr/ports/ftp/curl # curl
curl: Command not found.
root@kpyto:/usr/ports/ftp/curl #
ololo
 
Сообщений: 4
Зарегистрирован: Вт июн 11, 2013 11:07 am

Re: Проблема с PHP\cURL\Cookies

Сообщение lamnya » Пт ноя 22, 2013 3:21 am

portsnap fetch extract
и после этого
cd /usr/ports/ftp/curl; make config ; make reinstall clean
lamnya
 
Сообщений: 185
Зарегистрирован: Сб ноя 05, 2011 5:18 am

Re: Проблема с PHP\cURL\Cookies

Сообщение ololo » Пт ноя 22, 2013 9:18 am

lamnya писал(а):portsnap fetch extract
и после этого
cd /usr/ports/ftp/curl; make config ; make reinstall clean


Спасибо, дорогой ты мой человек!
ololo
 
Сообщений: 4
Зарегистрирован: Вт июн 11, 2013 11:07 am

Re: Проблема с PHP\cURL\Cookies

Сообщение GhostSt » Сб дек 07, 2013 6:59 pm

Возможно я что-то делаю неправильно, но это не решило проблему.
Команда
Код: выделить все
curl -c '/tmp/cookies' 'http://ya.ru' && ls -l /tmp/cookies

выдает код страница ya.ru и сразу после
Код: выделить все
ls: /tmp/cookie: No such file or directory


Последовательность моих действий:
Код: выделить все
cd /usr/ports/ftp/curl && make config

Кстати, второй пункт "Cookies" у меня не отмечен, как например, первый - CA_BUNDLE (там в скобках Х стоит). Возможно в этом дело, нужно как-то активировать COOKIES?
Далее:
Код: выделить все
cd /usr/ports/ftp/curl && make config


Далее пересборка php как выше писал pepper.

Записывать куки в файл пробовал на всех этапах:
  • после пересборки curl'a
  • после пересборки php
  • после рестарта apache
GhostSt
 
Сообщений: 2
Зарегистрирован: Сб дек 07, 2013 3:00 pm

Re: Проблема с PHP\cURL\Cookies

Сообщение ls » Сб дек 07, 2013 8:45 pm

после make config надо отметить COOKIES, у вас же он не отмечен как вы написали выше и собрать curl с их поддержкой
* FirstVDS в twitter в facebook и в вконтакте *
ls
Support team
 
Сообщений: 6385
Зарегистрирован: Чт мар 01, 2007 10:36 am
Откуда: FirstVDS

След.

Вернуться в CGI, Perl, PHP

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4