doulei6778 2019-02-25 06:37
浏览 207
已采纳

当我尝试关闭ssh2连接时,没有回复

I wrote a php script to execute locally, on an apache server with php7.3, doing the following:

  1. access server via ssh2
  2. check if a file exists
  3. close connection
  4. printing json data object as a response.

script works without problems except for closing connection. if I add ssh2_disconnect function, no response comes back. What am I missing? Here is my code:

<?php

error_reporting(1);
ini_set('display_errors', '1');

    $config = ["server"=>"10.1.201.1","port"=>"22","user"=>"root","password"=>"root","folder"=>"/"];
    $files = ["file1.pdf","file2.pdf"];
    $result = [];
    $ftpConnect = ssh2_connect($config['server'],$config['port']);
        ssh2_auth_password($ftpConnect,$config['user'],$config['password']);
    $sftp = ssh2_sftp($ftpConnect);

foreach ($files as $file){
    $fileExists = file_exists("ssh2.sftp://". intval($sftp) . $config['folder'] . $file);
        if($fileExists){
            $result[$file]= ["status"=>"Found"];
        }else $result[$file]= ["status"=>"Not found"];
}
//ssh2_disconnect($ftpConnect); only if uncommented, script wouldn't work
header('content-type:text/json; charset=UTF-8');
echo json_encode($result);
?>
  • 写回答

1条回答 默认 最新

  • dougui2254 2019-02-25 06:56
    关注

    It seems to be version dependant. ssh2_disconnect is the only function you use to be available with PECL ssh2 >= 1.0 all the other ssh2 functions are available for PECL ssh2 >= 0.9.0. The following comment let us think php >= 7 is also needed.

    http://php.net/manual/function.ssh2-disconnect.php#123413

    Here is how he suggest to close the connexion without ssh2_disconnect available :

    $session = null; unset($session); // close connection
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符