我苦苦挣扎几个小时的问题是:我想用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的共享服务器。
答案 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 ));