За последние 24 часа нас посетили 17933 программиста и 1653 робота. Сейчас ищут 1520 программистов ...

Задействовать Интернет на локальном веб сервере Apache

Тема в разделе "Установка PHP", создана пользователем Naizer, 26 янв 2011.

  1. Naizer

    Naizer Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    5
    Симпатии:
    0
    Всем доброго времени суток =)

    Возникли проблемы, которые в принципе я чётко могу сформулировать, т.к. два дня уже перерываю просторы инета.
    В общем цель - это сделать парсинг веб страницы. Т.е. используя file_get_contents() или curl мне необходимо слить код определённой веб странички в файл, из которого я потом буду забирать то что мне необходимо. Всё казалось бы просто. Но вот какие проблемы меня ждали:
    1. file_get_contents() - категорически отказывается работать с внешними соединениями
    2. curl вообще не инициализируется.

    Решил копать по curl. Докопался только сегодня, сделав массу настроек в конфиге, перемещению библиотек в разные дирректории и т.п. Ладно, факт в том что модуль подключил, всё заработало... но опять же ЛОКАЛЬНО! Все те же приблуды пробую дома, всё работает!
    В общем что бы не вводить Вас в смятение, дело на 99% вот в чём: интернет только на машине где поднят веб сервер, далее, этот интернет приходит через прокси, не через прогу usergate, а хз откуда, в общем в серверной стоит отдельный комп-фаервол, к которому подходит оптоволокно с другого предприятия, а туда он приходит ещё через пару таких точек Вот! В общем такой вот прокси )) Через браузеры инет пашет, всё путём. Но вот как заставить Apache работать через этот прокси? Что бы внешние соединения пробивались?
    Может где то в кофиге прописать нужно адрес прокси и порт? У нас прокси типа 10.*.*.* с портом 3128.
    Вот вычитал немного схожую проблему, там советуют колдовать с NAT. Но в эти глубины я не прогружался и понятия не имею там ли искать или нет.. может быть кто нибудь натолкнёт на правильное решение и возможно ли оно?

    практически та же проблема, но не решённая, прикрепляюю к материалу дела
    http://forum.dklab.ru/s/denwer-4/base-1/20120/
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    curl умеет использовать прокси


    PHP:
    1. <?php
    2. $ch = curl_init();
    3. curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
    4. curl_setopt($ch, CURLOPT_PROXY, '10.*.*.*');
    5. curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
     
  3. Naizer

    Naizer Активный пользователь

    С нами с:
    18 ноя 2010
    Сообщения:
    5
    Симпатии:
    0
    Слушай, спасибо большое!!! Вот что значит не углубился в эту функцию, действительно всё работает, думаю мне этого будет вполне достаточно!!!

    Ну а если кому то будет интересно, то приведу полностью php код парсинга веб странички, потому что решение проблемы в инете особо не описано, а здесь будет полный так сказать разжёванный и опубликованный материал =)

    <?php

    $ch = curl_init("АДРЕС_ВЕБ_СТРАНИЦЫ");

    $fp = fopen("ИМЯ.ФОРМАТ", "w");

    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);

    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
    curl_setopt($ch, CURLOPT_PROXY, 'АДРЕС ПРОКСИ');
    curl_setopt($ch, CURLOPT_PROXYPORT, ПОРТ);


    curl_exec($ch);
    curl_close($ch);
    fclose($fp);

    ?>