Ошибка 110 Время ожидания подключения истекло при попытке загрузить phpseclib через SFTP

Я новичок здесь, но я постараюсь описать свою проблему как можно лучше.

По сути, я пытался запустить автоматическую загрузку файла снимка экрана по SFTP всякий раз, когда кто-то завершает заказ на сайте моего клиента. Это для обзора приложения, которое было сделано. Я использую phpseclib в качестве основного способа загрузки файла. К сожалению, я получаю сообщение об ошибке тайм-аута всякий раз, когда подключаю его к другому хост-серверу. Если я укажу на его собственный сервер, загрузка будет работать. Так что все из кода ниже работает, когда мы загружаем файлы через sftp на свой собственный сервер. Если это другой, время ожидания истекает. Пхп ниже. Обратите внимание, что я поменял загрузку файла на создание текстового файла для тестирования, те же результаты, но тайм-аут все еще истек.

ini_set('include_path', '/usr/local/lib/custom_php/phpseclib');
include('Net/SSH2.php');
include('Net/SFTP.php');
define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);



$username   = "user";
$password   = "password";
$host       = "ftp.the3rdpartyserver.com";



$sftp       = new Net_SFTP($host);
$sftp->setTimeout(1000);
$sftp->fsock = 1000;
if (!$sftp->login($username, $password)) {
    exit('login failed again');
};

//$sftp->put($remote_file, $local_file, NET_SFTP_LOCAL_FILE);
//$sftp->put($remote_file, "imagetemp.png", NET_SFTP_LOCAL_FILE);
$sftp->put('filename.txt', "xxx");

print_r($sftp->getSFTPErrors());
echo $sftp->getSFTPLog();

Ошибка, которую я получаю, будет:

 Error 110. Connection timed out in <b>/usr/local/lib/custom_php/phpseclib/Net/SSH2.php</b> on line <b>966</b><br /> login failed again<br /> <b>Notice</b>: Connection closed prematurely in <b>/usr/local/lib/custom_php/phpseclib/Net/SSH2.php</b> on line <b>3143</b><br /> <br /> <b>Warning</b>: fclose() expects parameter 1 to be resource, boolean given in <b>/usr/local/lib/custom_php/phpseclib/Net/SSH2.php</b> on line <b>3379</b><br />

В нашем тестировании мне сказали, что они уже скорректировали длину тайм-аута, но это все еще результат. Я также тестировал разные учетные записи для sftp, и у меня тот же результат. Я также пробовал, могу ли я установить тайм-ауты на более длительное время, но безрезультатно. Любая помощь будет оценена. Большое спасибо! :)


person noctis_lucis    schedule 31.10.2014    source источник


Ответы (1)


Это проблема с fsockopen:

http://support.hostgator.com/articles/how-to-enable-fsockopen

Возможно, необходимо обновить брандмауэр / iptables на машине, на которую вы пытаетесь загрузить данные.

person neubert    schedule 01.11.2014
comment
Спасибо! Я проверю это и сообщу, если это решит проблему. - person noctis_lucis; 03.11.2014
comment
Привет. На всякий случай, если у кого-то такая же проблема. Да, в основном это была проблема с загружаемой машиной, а не с самим кодом. Спасибо Нойберт. - person noctis_lucis; 09.12.2014