解析用SSH與PHP相連接 確保數據傳輸的安全性(3)_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解析Windows XP系統下安裝apache+php+mysql
      Apache和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開發中的應用非常廣泛,很多時候使用它會給開發帶來極大的便利。 但是,正則表達式的編寫和使用是個比較復雜的過程。很多時候,即使將表達式寫出來了,也不能保證正確。 那么,有沒有便捷的檢測方法呢?有。本站推薦給

      共3頁上一頁123下一頁
      來源:模板無憂//所屬分類:PHP教程/更新時間:2009-10-03
      相關PHP教程