За последние 24 часа нас посетили 16572 программиста и 1578 роботов. Сейчас ищут 935 программистов ...

No connection could be made because the target machine actively refused it.

Тема в разделе "PHP для новичков", создана пользователем Иззет, 17 авг 2016.

  1. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Помогите, пожалуйста, найти корень проблемы. Работаю через прокси сервер. Испробовал уже почти все прогугленные способы(от задания переменных среды до написания адресов прокси в самом PHP), ничего не помогло. Проблема возникает при запросе каких-либо внешних ресурсов. Запрос даже не посылается с компьютера. Заранее всем спасибо за содействие.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    У тебя интернет через proxy, и ты хочешь чтобы в PHP был интернет? Какой тип proxy? Как указываешь в PHP? Как настроено в ОС? Windows или что-то другое?
     
  3. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Для начала спросить хочу, как вообще выглядит затея работы с php через proxy, стоит ли вообще затевать эту историю? Одноразовый костыль это всё-таки не решение
     
    #3 Иззет, 17 авг 2016
    Последнее редактирование: 17 авг 2016
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Тут понятие proxy много что может означать. Как замок для двери и замок строение.
    Ты не отвечаешь на уточняющие вопросы. Почему ждёшь тогда ответа?

    Работай с proxy всё отлично.
     
  5. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Стоит http proxy, в php пробовал указать в отдельных функциях(file_get_contents к примеру) третьим параметром, ОС windows, под вопросом как настроено можно чуть подробнее? Я по знаниям proxy серверов 0
    --- Добавлено ---
    Стоит http proxy, в php пробовал указать в отдельных функциях(file_get_contents к примеру) третьим параметром, ОС windows, под вопросом как настроено можно чуть подробнее? Я по знаниям proxy серверов 0
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Нет, может торможу, я не совсем понимаю, как мне это поможет?
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Я не знаю что ты делаешь. Мало информации.
     
  9. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    На работе компьютер к интернету подключен через прокси сервер. Мне соответственно при работе с различными фреймворками часто приходится через php обращаться к внешним ресурсам (Например, скопирую команду: php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"). Тут и загвоздка, все внешние запросы обрываются на данной ошибке. Вот и ищу подходящий способ для решения этой проблемы. Кстати и локальный сервер (OpenServer) конфликтует при работе через прокси, был бы рад если бы кто-нибудь подсказал где на локальном сервере соответствующие настройки прописать.
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот уже понятнее стало.

    Какая proxy? Может только http и у тебя отсутствует доступ в интернет по https, sockets через proxy.

    Обычно настроить сервер и нормально с ним работать, нужно иметь навыки администрирования и изучить возможности apache, nginx, mysql, php в плане настройки.
    На это нужно время. По этому проще взять хостинг с SSH и тренироваться, а уже потом самому всё настраивать.
    Ещё на Windows всё может не так как надо работать, мало кто гарантирует правильную работу скриптов на Windows, потому что всё обычно под Linux работает.
    Тут можно в virtualbox поставить turnkeylinux, но всё равно придётся разбираться с администрированием сервера linux.

    Поищи программы которые помогают другим программам работать через proxy/socks если они этого не умеют.
    Можно поискать по словам: Соксификация программ

    Ты так и не ответил, какой у тебя тип прокси, это http only proxy, http/https proxy, socks 4/5
     
    Иззет нравится это.
  11. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Спасибо за инфу, тип http/https proxy
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Иззет ставь лайки, ну и пиши если что-то не получилось.
     
    Иззет нравится это.
  13. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Прокси: squid/3.5.14.
    Пробовал задавать прокси и через переменные среды и через stream_context_create() и с помощью curl(). Всё та же ошибка.
    1. Создал переменные среды HTTP_PROXY и HTTPS_PROXY (и в пользовательских и в системных, записал значение "tcp:172.16.100.100:3128") - не помогло.
    2. Код
    PHP:
    1. $aContext = array(
    2.     'https' => array(
    3.         'proxy' => 'tcp://172.16.100.100:3128',
    4.         'request_fulluri' => true,
    5.     ),
    6. );
    7. $cxContext = stream_context_create($aContext);
    поместил в файлик, подключил через auto_prepend_file в php.ini. Помещаю переменную третьим параметром в file_get_contents() - не помогло
    3. Создаю в корне файл с функцией:
    PHP:
    1. function file_get_contents_curl($url) {
    2.     $proxy = "172.16.100.100:3128";
    3.     $ch = curl_init();
    4.  
    5.     curl_setopt($ch, CURLOPT_HEADER, 0);
    6.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    7.     curl_setopt($ch, CURLOPT_URL, $url);
    8.     curl_setopt($ch, CURLOPT_PROXY, "$proxy");
    9.  
    10.     $data = curl_exec($ch);
    11.     curl_close($ch);
    12.  
    13.     return $data;
    14. }
    Подсоединив, вызываю функцию, к примеру file_get_contents_curl('https://symfony.com/installer')) - не помогло.
    Подскажите, может я где ошибся или есть другие рабочие варианты? Спасибо
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    http://stackoverflow.com/questions/...p-to-use-proxy-setting-to-connect-to-internet

    НО! Если твой локальный (ты же на локалке это выполняешь) файервол не одобряет соединение, то никакие настройки в среде PHP не помогут. попробуй временно выключить файервол и сконнектиться из консоли.

    Кроме того, адреса с https могут обламываться если в твой локальный php не включен модуль openssl. Вызови phpinfo() и поищи там SSL.
     
  15. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Файервол вырубил, openssl включен, никаких изменений. Непонятно в чем конкретно корень проблемы.
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    А вообще чем-то кроме браузера ты можешь обратиться к нужному адресу? Попробуй консольные wget и curl.

    Если да, то проверь https://php.ru/manual/filesystem.configuration.html#ini.allow-url-fopen
    --- Добавлено ---
    И, извини за занудство, но браузер и php ты точно на одном и том же хосте запускаешь? А то всякие варианты можно придумать )))
     
  17. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Я через консоль и вызывал (php -r):
    cURL error (56):
    Failure when receiving data from the peer

    allow_url_fopen тоже включен
     
  18. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Ответ неправильный. Я имел в виду curl — консольную утилиту, а не библиотеку php. То, что пыха запускается в консоли это и так очевидно.
    Как насчет ответов?

    Где запускаешь пыху? Какая ОС? Чем кроме браузера проверял доступность ресурсов?
     
    #18 artoodetoo, 18 авг 2016
    Последнее редактирование: 18 авг 2016
  19. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Грубо говоря, кроме как в браузере, ресурсы вообще нигде не доступны) На счет запуска php не понял, а так входит в пакет OpenServer-a. ОС - Windows7
     
  20. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    *дцать коментариев назад:
    КЛЕЩАМИ ПРИХОДИТСЯ ИЗ ТЕБЯ ТЯНУТЬ.

    пусть кто-нибудь другой пытается, я уже истощён. безнадега.
     
  21. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Извини ) Да на одном хосте запускается. Кстати уже что-то прояснилось при методе создания контекста для https используется протокол ssl, я это не учел. tcp используется с http. Так вот через tcp если на http обращается, то работает, а через ssl на https не хочет понимать
     
  22. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    что в общем-то логично. Иначе MITM-ом попахивает.
     
  23. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Поподробнее можно?
     
  24. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Очень коротко. В плейне сквид принял запрос клиента в строну таргета, сделал запрос к этому таргету, вернул ответ клиенту. В секуре такое не прокатит, ибо клиент делает запрос с установкой безопасного соединения. В процессе этого запроса устанавливается сеанс безопасной связи. Среди прочего там проверяется каким сертификатом отвечает сервер. Попытка проксировать секур через сквид приводит по идее к следующему: клиент делает запрос, устанавливая безопасное соединение с... не-не, не с таргетом, а со сквидом. Сквид дальше устанавливает секурное соединение с таргетом, получает данные и запихивает их обратно в сокет клиента. Но. Клиент еще на стадии установки соединения поймет что перед ним какой-то хрен моржовый, а не достоверный сайт. Потому что сквид не может ответить пакетом, зашифрованным приватным ключом таргета. Но обязан ответить в зашифрованном виде. Для этих целей он будет использовать самописный сертификат, в котором коммон-нейм не будет соответствовать хосту таргета. Клиент на это поднимет тревогу и разорвет соединение.
     
    Иззет нравится это.
  25. Иззет

    Иззет Новичок

    С нами с:
    29 сен 2015
    Сообщения:
    25
    Симпатии:
    0
    Ясно, спасибо. Как тогда поступить в таком случае? Я попробовал разрешить самоподписанные сертификаты через параметры, но никакого воздействия.