从本地ubuntu linux机器通过ssh连接ec2机器访问。
当我从terminal运行这个PHP脚本它执行得很好,并在文件中写入尾部的条目。 当我从浏览器运行得到这个错误在Apache错误日志
ssh:无法parsing主机名称proxy2:名称或服务未知
发现它由于Apache用户权限问题。 不pipe我的猜测是对还是错,我都不确定。 任何人都可以帮助我解决这个问题。
php代码: –
<?php $ss = 'ssh proxy2 '.'tail -n 3 /out/speed_log.txt.1'.' > proxy2temp1'; system($ss); ?>
**最后找到一个解决方案,使用phpseclib解决了我的问题。 我推荐phpseclib连接来自php uing .pem文件的亚马逊ec2机器来帮助其他人分享我的示例代码。
确保.pem文件需要读取权限**
示例代码:
include('Net/SSH2.php'); include('Crypt/RSA.php'); $key = new Crypt_RSA(); $key->loadKey(file_get_contents('/pathtokey.pem')); $ssh = new Net_SSH2('ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com'); if (!$ssh->login('user', $key)) { exit('Login Failed'); } echo $ssh->exec('tail -n 3 /out/_log.txt.1');