解析用SSH與PHP相連接 確保數據傳輸的安全性(3)_PHP教程
推薦:解析Windows XP系統下安裝apache+php+mysqlApache和mysql的安裝較簡單,主要是安裝前請保證80端口未被占用 比如 iis 以前安裝過的apache mysql 先停止運行phpmyadmin,主要是配置文件的問題,把phpMyAdmin安裝目錄下Libraries目錄下面的Config.default.php復制到PHPmyAdmin根目錄下,改 名為Config.in
小提示:
有時服務器忙碌,或者一個連接出錯,緩沖區沒有數據,PHP腳本就會停止從一個命令輸出(即使命令并沒有完成!)中收集數據。你可以為此進行如下的操作:
ssh2_exec($con, ‘ls -al; echo “__COMMAND_FINISHED__”’ );
現在,在你不斷地檢查緩沖區的循環中,只需要看一下COMMAND_FINISHED。因為你就可以知道你擁有了所有的數據。為了避免無限循環(死循環),可以用一個10秒的超時限制:
$time_start = time();
$data = “”;
while( true ){$data 。= fread($stream, 4096);
if(strpos($data,“__COMMAND_FINISHED__”) !== false){
echo “okay: command finished\n”;
break;
}
if( (time()-$time_start) 》 10 ){
echo “fail: timeout of 10 seconds has been reached\n”;
break;
}
}
在上面的例子中,你最好將stream_set_blocking設為false。
通過SSH發送文件
ssh2_scp_send($con, “/tmp/source.dat”, “/tmp/dest.dat”, 0644);
如果不能正常工作
請檢查如下的幾個方面:
依照本文檢查你操作的每一步
在服務器端,在sshd_config 中必須啟用“PasswordAuthentication yes”。在大多數服務器上默認值是yes,不過有些情況下,你可能需要將下面的一行加入到文件中,即親自動手打開這個功能:
/etc/ssh/sshd_config:
# Change to yes to enable tunnelled clear text
passwordsPasswordAuthentication yes
如果作了改變,就需要重新啟動SSH:
/etc/init.d/ssh restart
分享:重力推薦--正則表達式在線檢測工具正則表達式(Regular Expression)在web開發中的應用非常廣泛,很多時候使用它會給開發帶來極大的便利。 但是,正則表達式的編寫和使用是個比較復雜的過程。很多時候,即使將表達式寫出來了,也不能保證正確。 那么,有沒有便捷的檢測方法呢?有。本站推薦給
- 相關鏈接:
- 教程說明:
PHP教程-解析用SSH與PHP相連接 確保數據傳輸的安全性(3)。