2

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

我正在使用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 是什么意思?

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

4

1 回答 1

1

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

致命错误:创建统一目录/.unison 时出错:权限被拒绝 [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);
于 2011-09-13T18:47:39.893 回答