- ベストアンサー
PHPからシェルコマンドの実行
PHPからシェルコマンドを実行したいのですが SSHやSCPコマンドが使えません。 phpからlsなどは問題なく実行できます。 具体的には以下のように書いています。 `scp test.log user@host:/home/hoge`; shell_exec()を使っても実行されませんでした。 環境は以下のとおりです。 PHP 5.4.17 CentOS 5.8 sshやscpコマンドをphpから実行するには何か特別な方法が必要なのでしょうか。 ご存知の方、教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
scp環境設定の記述が全くないのが気になります。認証キーファイルとか。 PHPの実行ユーザーから、scpがプロンプトを出さずに実行できるように設定されてないのでは?
その他の回答 (3)
- kmee
- ベストアンサー率55% (1857/3366)
hhtpサーバーのユーザーと、鍵交換したユーザーとが違うとか。 httpサーバーはnobodyとかのユーザー権限で動作していることが多いです。
- yambejp
- ベストアンサー率51% (3827/7415)
パスや実行権限の問題はありませんか? フルパス指定するとかsudoをかませてみるとか
- hogehoge78
- ベストアンサー率80% (433/539)
対話型のコマンドに関しては、exec関数などを使っても上手くいかないと思います。 http://php.net/manual/ja/function.popen.php こちらのpopen関数を使って、プロセスを開いて、入力を行うか、 http://phpspot.net/php/man/php/function.expect-expectl.html こちらのexpect_expectl関数のサンプルのように記述してやることでできそうです。
補足
ご回答ありがとうございます。 鍵交換は行っており(パスフレーズなし)、単体で直接実行($ php test.php のように)すると上手くいくのですが ブラウザ越しだと動きません。
補足
ご回答ありがとうございます。 鍵交換は行っており操作なしで動作するようにはしているのですが動きません。