【问题标题】:Execute Perl script on a remote server through SSH with PHP WebPage通过 SSH 和 PHP WebPage 在远程服务器上执行 Perl 脚本
【发布时间】:2015-06-09 21:53:51
【问题描述】:

我需要通过 SSH 从服务器 A 使用 PHP 网页在服务器 B 上启动 Perl 脚本。

我的命令如下:

$cmd_string="ssh user@serverB 'perl path/to/script.pl param1 param2'";

我在 PHP 脚本中都试过了,但没有任何反应:

exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd_string, $outputfile, $pidfile));
exec($cmd_string, $output);

通过终端运行此命令效果很好。

感谢您的帮助

【问题讨论】:

  • 那么你得到了什么错误/返回值?
  • 你能用php登录服务器吗?
  • 用户“用户”到服务器 B 的 SSH 连接是自动化的。但在 error.log 中我得到:Could not create directory '/var/www/.ssh'. Host key verification failed. 看起来进程是由“www-data”而不是“用户”运行的??
  • 你不是说&& 就在echo 之前吗?一个& 会将命令扔到后台并独立运行echo:我猜它会报告它是否可以启动第一个程序,但不会报告第一个程序的状态。

标签: php perl remote-server


【解决方案1】:

我的建议 - 使用phpseclib, a PHP SSH implementation

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

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

echo $ssh->exec('perl path/to/script.pl param1 param2');
?>

exec() 通常出于安全原因在主机上被禁用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2012-07-25
    • 1970-01-01
    • 2016-11-27
    • 2013-08-16
    相关资源
    最近更新 更多