使用PHP配置EC2实例

时间:2014-04-21 02:52:05

标签: php codeigniter amazon-ec2 phpseclib

我目前使用Codeigniter作为我的webapp。我想通过SSH连接到EC2实例并运行一组脚本作为ec2-user。 PHPsecLib的问题在于它以某种方式在sudo模式下不运行命令。有什么提示吗?我已经广泛尝试了$ ssh-> exec。但是我驻留在服务器上的bash脚本无法执行。有没有更好的方法来运行驻留在服务器上的bash脚本?

1 个答案:

答案 0 :(得分:2)

phpseclib文档讨论了如何将sudo与phpseclib一起使用:

http://phpseclib.sourceforge.net/ssh/examples.html#sudo

代码:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("sudo ls -la\n");
$output = $ssh->read('#[pP]assword[^:]*:|username@username:~\$#', NET_SSH2_READ_REGEX);
echo $output;
if (preg_match('#[pP]assword[^:]*:#', $output)) {
    $ssh->write("password\n");
    echo $ssh->read('username@username:~$');
}
?>