コマンドラインでこれを実行すると:
scp -i private.ppk -P 22 foo.txt someuser@domain.com:/home/someuser/foo.txt
すべて正常に動作します。foo.txt
問題なくリモートサーバーに転送されます。PHP からまったく同じコマンドを実行する必要があります。だから、私は次のコードを持っています:
$command = 'scp -i private.ppk -P 22 foo.txt someuser@domain.com:/home/someuser/foo.txt';
exec($command);
これはうまくいきません。PHPファイルは、と同じディレクトリで実行されていprivate.ppk
ます。var_dump
の結果をexec
取得すると、 が得られますNULL
。
これが許可の問題かどうか疑問に思っています。コマンド ラインで実行しているユーザーはわかっていますが、スクリプトを実行しているユーザーがわかりません。それが問題でしょうか?それとも全く違うものですか?