2011-10-05 2 views
0

ssh2를 사용하여 sftp 서버에 연결하려고 시도하지만 php가 루프에 걸린 것처럼 보입니다. 오류보고 기능이 켜져 있습니다.ssh2와 sftp 서버를 연결하려고하지만 오류없이 영원히 스크립트가 실행

내 코드 :

$connection = ssh2_connect('my-server.url', 22); 
var_dump($connection); 
if (ssh2_auth_password($connection, 'username', 'password')) 
{ 
    echo "Authentication success"; 
    if(ssh2_scp_recv($connection, "/throw_me_an_error/", "/somewhere/")) 
    { 
     echo "file recived"; 
    } 
    else 
    { 
     echo "error"; 
    } 
} 
else 
{ 
    echo "Authentication failure"; 
} 

이 출력을 생성 :

resource(7) of type (SSH2 Session) 
Authentication success 

그러나 즉시 스크립트가 stucked있어 ssh2_scp_recv 실행하려고하고 실패없이 영원히 실행한다. 나는 기존 파일과 함께 존재하지 않는 파일을 가지고 시도했다. 같은 결과가 나올 때마다 스크립트가 반복적으로 실행됩니다.

ssh2_exec 또는 서버에서 쓰거나 읽을 필요가있는 다른 방법을 사용해도 ssh2_scp_recv 일뿐만 아니라 멈추게됩니다.

무슨 일이 벌어지고 있니?

감사합니다.

답변

3

phpseclib, a pure PHP SSH implementation과 함께 운이 더 좋을 수도 있습니다.

+0

멋지다, 나는 이것을 몰랐다. 이 순수 PHP ssh가 실제로 작동합니까? 확장 기능과 성능을 어떻게 비교합니까? – aurora

+2

나는 그것을 꽤 성공적으로 사용 해왔다. http://core.trac.wordpress.org/ticket/16925#comment:7은 libssh2보다 실제로 빠르다는 것을 암시합니다.하지만 네트워크 토폴로지 역시 다소 다릅니다. 어쩌면 phpseclib가 원격 서버로 전송하는 것이 빠르며 libssh2는 로컬 서버로 전송할 때 더 빠릅니다. 어쩌면 phpseclib가 더 빠르게 진행될 수도 있습니다. – nigol

관련 문제