2012-07-09 2 views
3

, 나는이 오류 . 내 다른 램프 서버에서 동일한 코드가 제대로 작동합니다. 제가 도움이 될만한 것이 있다면 제가 빠진 부분을 지적하십시오. 미리 감사드립니다.:</p> <blockquote> <p>Error 324 (net::ERR_EMPTY_RESPONSE):</p> </blockquote> <p>서버가 데이터를 전송하지 않고 연결을 종료 : PHP를 사용하여 원격 SFTP를 위치에 존재하는 파일을 나열하는 중에

function listBuildFiles() { 

global $sftp_host, $sftp_username, $sftp_password, $sftp_path; 
$connection = ssh2_connect($sftp_host); 
// Authenticate 
if (!ssh2_auth_password($connection, $sftp_username, $sftp_password)) { 
    throw new Exception('Unable to connect.'); 
} 

// Create our SFTP resource 
if (!$sftp = ssh2_sftp($connection)) { 
    throw new Exception('Unable to create SFTP connection.'); 
} 

/** 
* Now that we have our SFTP resource, we can open a directory resource 
* to get us a list of files. Here we will use the $sftp resource in 
* our address string as I previously mentioned since our ssh2:// 
* protocol allows it. 
*/ 
$files = array(); 
$dirHandle = opendir("ssh2.sftp://$sftp$sftp_path"); 
    $i=0; 
// Properly scan through the directory for files, ignoring directory indexes (. & ..) 
while (false !== ($file = readdir($dirHandle))) { 
    if ($file != '.' && $file != '..') { 
     $files[$i] = $file; 
     $i++; 
    } 
} 

echo '<select name="buildName">'; 
echo '<option>Please Select a build</option>'; 
foreach ($files as $filename) { 
     echo "<option value=\"$filename\">$filename</option>"; 
    } 
echo '</select>'; 
ssh2_exec($connection, "exit"); 

감사합니다, Ujjwal

+0

PHP/Apache 로그를 살펴 보셨습니까? –

+0

그리고 sshd 로그를 보셨습니까? – dave4420

답변

0

phpseclib, a pure PHP SFTP implementation을 사용하면 진행 상황에 대한 전체 로그를 볼 수 있습니다. 예 :

<?php 
include('Net/SFTP.php'); 

define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX); 

$sftp = new Net_SFTP('www.domain.tld'); 
if (!$sftp->login('username', 'password')) { 
    exit('Login Failed'); 
} 

// puts a three-byte file named filename.remote on the SFTP server 
$sftp->put('filename.remote', 'xxx'); 

echo $ssh->getLog(); 
print_r($ssh->getErrors()); 
?> 

phpseclib의 개발자는 자신이 아마도 수는 로그 또는 오류 메시지 (들)에서 알아낼 수 없습니다 그래서 만약 너무 지원을 제공에 대해 매우 적극적이다.

0

그냥 당신이 콘솔을 열고 세부 정보 표시 모드에서 원시 ssh 연결 시도 할 수 있습니다 서버 측에서 아무런 문제가 없는지 확인하기 :

ssh -v [email protected] 

이 서버와 클라이언트 간의 모든 상호 작용을 추적하여 서버 측에서 단서를 제공 할 수 있습니다.