2011-09-13 61 views
1

我正在使用Unison在两台服务器之间同步文件。我试图让PHP在文件上传后调用它。exec错误代码2

我使用exec,但它返回的2

exec("/usr/bin/unison /var/www/html/files ssh://a2//var/www/html/files -batch -prefer newer -times -path uploads", $out, $r); 

$out是一个空白阵列的错误代码,$r是2.什么是2的错误代码是什么意思?

P.S.我在命令行上运行了php -a,并复制并粘贴了该行,并且它工作正常。另外,exec('whoami')有效(并且与我在命令行上登录的用户相同)。

+2

我会建议尝试使用http://us3.php.net/manual/en/function.popen.php代替exec,看看是否可以读取正在输出的实际错误。 – sberry

+0

@ sberry2A:老兄!非常感谢! '致命错误:创建一致目录/.unison时出错:Permission denied [mkdir(/。unison)]'。认为我可以解决这个问题! –

回答

1

我修好了!使用popen(谢谢@ sberry2A)我看到一个错误。

Fatal error: Error in creating unison directory /.unison: Permission denied [mkdir(/.unison)]

我跑chdir('/home/user');,在运行命令之前,然后看到了一个错误约HOME未被设置。

所以,我在命令前加了HOME=/home/user。现在它可以工作,我也不需要chdir命令!

exec("HOME=/home/user /usr/bin/unison /var/www/html/files ssh://a2//var/www/html/files -batch -prefer newer -times -path uploads", $out, $r);