繁体   English   中英

无法使用php的ssh2_exec重新启动Nginx或获取Nginx版本

[英]can't use php's ssh2_exec to restart nginx or get the nginx version

我已经安装了PHP扩展名ssh2,并且工作正常。 但是当我想使用它来获取远程服务器的nginx版本或在我也使用ssh2更改远程配置文件后重新启动nignx时,它就无法按我的意愿工作。

我的PHP代码是这样的:

 <?php 
 $connection = ssh2_connect('115.238.73.136', '65000', array('hostkey'=>'ssh-rsa'));
   if(!$connection) "error_1\n";
     if(ssh2_auth_pubkey_file($connection, 'root','/data/web/control_center/sh/.ssh/id_rsa.pub','/data/web/control_center/sh/.ssh/id_rsa', 'test')){
    $stream = ssh2_exec($connection, "/usr/local/nginx/sbin/nginx -v");
    stream_set_blocking($stream, true);
    while( !feof($stream) ) {
            $cmd[] = fgets($stream);
    }
    var_dump($cmd);
   }

$ cmd中没有任何内容。 然后我将“

/usr/local/nginx/sbin/nginx -v 

/usr/local/nginx/sbin/nginx -t; 
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`;

而且我什么也得不到。 我想

/usr/local/nginx/sbin/nginx 

不能被执行

我的建议是停止使用libssh2并开始使用phpseclib(纯PHP SSH实现)

ssh2_exec()(使用php5 ssh ext)有时永远不会返回输出,有时会返回! 这是将blocking设置为true,甚至添加等待时间,这是不行的。 尝试连接到LOCALHOST,有时会获得输出,有时却没有。 我正在运行Karmic Ubuntu,而我的一生让我无休止。 phpseclib,但是,完美的作品。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM