使用适用于SSH的shell_exec命令执行后台php脚本

时间:2014-08-10 14:53:13

标签: php shell ssh putty shell-exec

我苦苦挣扎几个小时的问题是:我想用PHP在后台执行一个脚本,所以我使用的是shell_exec()函数,我无法使用它。但是这不是与shell_exec函数相关的问题,因为我已经测试了shell_exec('sleep 5')命令并且它有效。我试图执行的命令是:

shell_exec('nohup /kunden/usr/local/bin/php5.4 /kunden/homepages/XX/dXXXXXXXX/htdocs/myproject/background_script.php > /dev/null 2>&1 & echo $!');

该脚本在MySQL数据库中插入一行。我已经通过SSH使用putty测试了引号内的完全相同的命令,并且它工作得很好,但我无法通过Web浏览器实现它。

我认为不重要,但是是1and1的共享服务器。

1 个答案:

答案 0 :(得分:1)

根据原始海报:

  

最后我使用了库phpseclib,现在让它工作了。

$ssh = new Net_SSH2('myhosting');
if (!$ssh->login('user', 'pass')) {
    exit('Login Failed');
}

$this->pid = $ssh->exec(sprintf(
    '%s > %s 2>&1 & echo $!',
    $this->command,
    $outputFile
));