Невозможно соединиться с fsockopen в PHP (Тайм-аут соединения) - PullRequest
1 голос
/ 05 января 2012

Я разработал приложение для друга, и он недавно сменил свой выделенный сервер для проблем с перегрузкой.

После этой миграции часть сайта больше не работает: соединение через сокет в PHP.

В этой части мне пришлось установить соединение с другим сервером, чтобы реализовать функцию открытия сокета:

function openSocket($host, $port) {
    $fp = fsockopen($host, $port, $errno, $errstr, 30);

    if (!$fp) {
        return 0;
    }

    fputs($fp, $envoi);

    return $fp;
}

В коде я использую эту функцию следующим образом:

$sock = openSocket($host, $port);

while (!feof($sock)) {
    echo fread($sock, 8192);
}

fclose($sock);

Иногда мне нужно открыть сокет на несколько минут, и после миграции у моего друга в журнале появляется эта ошибка:

PHP Предупреждение: fsockopen (): невозможно подключиться к ...: 80 (подключение тайм-аут) в ..., реферер: ...

Я искал, была ли конкретная конфигурация в PHP / Apache, но ничего не нашел.

Я пытался увеличить последние параметры функции fsockopen или stream_set_timeout (), но ничего не получалось.

Спасибо за вашу помощь

Ответы [ 3 ]

1 голос
/ 05 января 2012

Есть ли надежная связь между двумя компьютерами?

0 голосов
/ 05 января 2012

Даже я столкнулся с той же проблемой.
Я разрабатывал сайт для своего клиента.
Он хотел, чтобы я установил время на выделенных серверах времени.
Итак, я попытался установить соединение с этим сервером, используя UDP. Много пробовал, но не получилось. Вскоре после этого я обнаружил, что какой-то порт был закрыт, который должен был быть открыт для установления соединения.
Проверьте требуемый порт и подтвердите, что соответствующий порт открыт

0 голосов
/ 05 января 2012

Некоторые провайдеры хостинга и настройки выделенного сервера ограничивают разрешенные исходящие соединения в настройках брандмауэра.Это особенно полезно для предотвращения установления необычного бота или сценариев эксплойтов соединений с сервера в случае его взлома.Проверьте, существуют ли какие-либо правила для исходящих / исходящих брандмауэров, которые могут блокировать вас.

Другие причины - правило входящего / исходящего брандмауэра на удаленном сервере запрещает вашу попытку подключения или очень скрытое подключение между компьютерами.

...