2011-09-13 6 views
1

私はUnisonを使用して2台のサーバー間でファイルを同期しています。私はファイルをアップロードした後に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

私は、execの代わりにhttp://us3.php.net/manual/en/function.popen.phpを使用し、実際のエラーを読み取ることができるかどうかを確認することをお勧めします。 – sberry

+0

@ sberry2A:おい!どうもありがとう! '致命的なエラー:unisonディレクトリの作成でエラーが発生しました./.unison:許可が拒否されました[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);