0
私はデータベースに文字列としてbashスクリプトを格納しており、ユーザーの要求に応じて呼び出す必要があります。スクリプトはPHPレベルからリモートマシン上で実行する必要があります。 ssh接続についてPHPを使ってリモートサーバー上でローカルbashスクリプトを実行するには
つのトピックと呼び出しリモートスクリプト:PHPでそれを使用する
- How to use SSH to run a shell script on a remote machine?
- https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password
そして、二つの方法:
-
私は、次のトピックを見つけました
- Run Bash Command from PHP
- get result from ssh2_execは、http://php.net/manual/en/function.ssh2-exec.php
初の試み:第二
$connection = ssh2_connect('IP_ADDRESS', 22);
ssh2_auth_password($connection, 'user', 'password');
$stream = ssh2_exec($connection, "'bash -s' < ".$script);
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
$output = stream_get_contents($stream_out);
//result => output = empty string
:例のように
$old_path = getcwd();
chdir('/path_to_script_directory');
$output = shell_exec("ssh [email protected] 'bash -s' < test");
chdir($old_path);
or
$old_path = getcwd();
chdir('/path_to_script_directory');
$output = shell_exec("ssh [email protected] 'bash -s' < ".$script);
chdir($old_path);
//result => output = null
は、私は私のSymfony2のアプリケーションに次のコードを使用しようとしました私は上記の2つのケースを試してみました。 ptと文字列スクリプト($スクリプト変数)。第二の選択肢は私によって優先されます。どちらのケースにも簡単なスクリプトが含まれています:
#!/bin/bash
ifconfig
ありがとうございます!ここで
を?遭遇したエラー/問題は何ですか? – TenG
両方の例の後ろにコメント "//"を書きました – Krzychu
リモートサーバーの認証ログをチェックすることでSSH接続が成功したかどうか確認できますか? – ghoti