2

ステージング用の PHP Web インターフェイスを作成しようとしています-> プロダクション パブリッシング スクリプト。Web インターフェイスは安全 (イントラネット、パスワードなど) であるため、Apache が root ユーザーとして機能して rsync を実行できることをうれしく思います。root ユーザーにはパスワードはありません。SSH アクセスにはキーファイルが使用されます。

シェルスクリプトでrysncコマンドをsudoしてみました...

sudo rsync --verbose --recursive --times --perms --links --delete /tmp/dir1/* /tmp/dir2/

そして、sudoersファイルに以下を追加して、apacheがrsyncを実行できるようにします...

apache ALL=(ALL) NOPASSWD:/usr/bin/rsync

PHP shell_exec を使用してスクリプトを呼び出しています...

$result = shell_exec('bash /tmp/syncscript.sh 2>&1');

次のエラーが表示されます...

sorry, you must have a tty to run sudo

root ユーザーであるかのように rsync コマンドを実行できるようにするには、どうすればセットアップできますか?

ありがとう!

4

2 に答える 2

2

PHP から SUDO を使用したい場合は、この投稿で書いたことを試してみてください。それは私の問題をすべて解決し、私はあなたのものと同様の設定をしています。内部にDEVサーバーがありますが、ルートだけができることをしたいです...

phpでexec()をssh 'hostname'コマンドと組み合わせて使用​​するには?

幸運を

于 2012-02-20T15:36:49.987 に答える