• ベストアンサー

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から実行するには何か特別な方法が必要なのでしょうか。 ご存知の方、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

scp環境設定の記述が全くないのが気になります。認証キーファイルとか。 PHPの実行ユーザーから、scpがプロンプトを出さずに実行できるように設定されてないのでは?

chibichan_dayo
質問者

補足

ご回答ありがとうございます。 鍵交換は行っており操作なしで動作するようにはしているのですが動きません。

その他の回答 (3)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.4

hhtpサーバーのユーザーと、鍵交換したユーザーとが違うとか。 httpサーバーはnobodyとかのユーザー権限で動作していることが多いです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

パスや実行権限の問題はありませんか? フルパス指定するとかsudoをかませてみるとか

回答No.1

対話型のコマンドに関しては、exec関数などを使っても上手くいかないと思います。 http://php.net/manual/ja/function.popen.php こちらのpopen関数を使って、プロセスを開いて、入力を行うか、 http://phpspot.net/php/man/php/function.expect-expectl.html こちらのexpect_expectl関数のサンプルのように記述してやることでできそうです。

chibichan_dayo
質問者

補足

ご回答ありがとうございます。 鍵交換は行っており(パスフレーズなし)、単体で直接実行($ php test.php のように)すると上手くいくのですが ブラウザ越しだと動きません。