2

Unisonを使用して2台のサーバー間でファイルを同期しています。ファイルがアップロードされた後、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のエラーコードはどういう意味ですか?

PSphp -aコマンドラインで実行し、その行をコピーして貼り付けたところ、機能しました。また、exec('whoami')動作します(そして、コマンドラインでログインしたのと同じユーザーです)。

4

1 に答える 1

1

それを私が直した!popen(thanks @ 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 に答える