php脚本访问远程linux服务器并执行bash脚本

时间:2015-02-03 18:30:20

标签: php linux bash shell ssh

我正在尝试执行以下操作。

在我们的远程服务器上执行php执行shell命令。这是因为我希望能够通过bash安装脚本所以php将在远程服务器上执行bash脚本。

问题是由于某种原因无法连接到远程服务器。我已经尝试了几种方法来做到这一点,我必须使用root和密码。后来我可以看看加密它们或类似的东西,但我不能使用ssh键,所以这是行不通的。我对php的一部分很新,所以我需要一些帮助找出热连接到远程服务器。

我正在尝试的代码是

  $ip = '37.130.000.00'; 
$user = 'admin'; 
$pass = 'xxxxxxxxx'; 

$connection = ssh2_connect($ip); 
ssh2_auth_password($connection,$user,$pass); 
$shell = ssh2_shell($connection,"uptime");


 echo $shell;

由于某种原因,此代码给出了以下错误

致命错误:在

中调用未定义的函数ssh2_connect()

我如何才能使这项工作或我应该做些什么来正确连接到远程服务器,这一切都应该非常灵活,因为我们正在谈论应该能够以这种方式连接的100服务器。

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

该功能由您似乎未安装的可选扩展程序提供。如果您的系统中有libssh和其他依赖项,请通过执行

获取pecl-ssh
sudo pecl install ssh2 channel://pecl.php.net/ssh2-0.11.3

如果您正在使用modphp,请重新启动php-fpm或apache。

编辑:顺便说一下,之前已经问过这个问题,而且我所看到的最明智的建议之一就是切换到一个纯粹的PHP实现,没有任何pecl扩展: php-function-ssh2-connect-is-not-working