2013-01-13 4 views
1
<?php 
$ssh = ssh2_connect('domain.tld'); 
ssh2_auth_password($ssh, 'username', 'password'); 

$start = microtime(true); 
$sftp = fopen('ssh2.sftp://'.$ssh.'/home/username/1mb', 'w'); 

fwrite($sftp, str_repeat('a', 1024 * 1024)); 
$elapsed = microtime(true) - $start; 

echo "took $elapsed seconds"; 

는 그 코드는 나에게공급 자원

PHP 경고를 제공하는 유효한 SSH2 SFTP 자원되지 않습니다 :하면 fopen() : 공급 자원에 ...

유효한 SSH2 SFTP 자원 아닙니다

오류. 왜?

$sftp = fopen('ssh2.sftp://username:[email protected]:22/home/user/1mb', 'w'); 

예를 들어 공개 키 인증을 수행하는 경우 제대로 작동하지만 작동하지 않습니다. 당신은`$의 ssh`를 만드는 올바른 기능을 사용해야합니다 - hakre 코멘트에서 언급 한 바와 같이

+3

http://php.net/ssh2_sftp는 <사용해야합니다. – hakre

+0

굉장 - 고마워! 코멘트 대신 답을 써서 대답으로 표시 할 수 있습니까? :) –

+1

나를 위해 일했습니다. 이것이 왜 닫혔는지 확실하지 않습니다. – chawkinsuf

답변

4

당신은

$ssh = ssh2_connect('domain.tld'); 
$resSftp= ssh2_sftp($ssh); 
$sftp = fopen('ssh2.sftp://'.$resSftp.'/home/username/1mb', 'w');