laravelでssh接続で別サーバを操作する時のやり方
参考URL
https://qiita.com/zaburo/items/db0569fc87ce64490551
1, 標準では出来なくて、laravelcollectiveのライブラリをインストールしないとダメ!
laravel5.1の場合は、バージョンも指定しないとインストールできない
1 |
composer require "laravelcollective/remote":"^5.1.*" |
2, インストールされると、config/remote.phpが生成されるので、SSH接続情報を記述する
productionというのがデフォルトSSH接続設定名として定義されている。
複数の接続先があるなら新しいSSH接続名を作る
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
'default' => 'production', 'connections' => [ 'production' => [ 'host' => '接続先のIPアドレス', 'username' => 'SSHユーザー', 'password' => 'SSHのパスワード', // 公開鍵暗号方式 'key' => '', 'keytext' => '', 'keyphrase' => '', 'agent' => '', 'timeout' => 10, ], ], |
3, 後はLINUXコマンドを記述すれば、自動的に接続&コマンド実行してくれる(結果も戻り値で返してくれる)
1 2 |
$pwd = \SSH::run('pwd'); return $pwd |
4, デフォルト以外のSSH接続でコマンド実行したい時は設定名で指定する。
複数コマンドもカンマ区切りで入力できる。
1 2 3 4 |
$pwd = \SSH::into('another_ssh_settings')->run(array( 'cd /home/taro', 'touch hello', )); |