PHP を介して Windows 7 から Linux マシンにアクセスする必要があります。
そのために、MyScript.bat
plink を含む単純な bat ( ) スクリプトを作成しました。
c:\wamp\www\abc\plink.exe [email protected] -pw l1c -C "df -h">11.txt
bat スクリプトを実行すると、正常に機能します。つまり、出力はファイルに書き込まれます。 11.txt
しかし、PHPからアクセスすると、11.txt
データなしで作成されます
echo exec('MyScript.bat');
また、ブラウザではスクリプトコマンドがテキストとして表示されます。print_r
ディスプレイにも使ってみました。
"c:\wamp\www\abc\plink.exe [email protected] -pw l1c -C "df -h">11.txt
SSH用の外部ツールを起動しないでください。
PHP はSSHをネイティブにサポートしています。
またはphpseclib を使用します。
require __DIR__ . '/vendor/autoload.php';
use phpseclib\Net\SSH2;
$ssh = new SSH2($hostname);
if ($ssh->login($username, $password))
{
echo $ssh->exec("df -h");
}
http://phpseclib.sourceforge.net/ssh/2.0/examples.html を参照してください。
とにかく、Plink を使用する場合は、問題をデバッグするために標準エラー出力もリダイレクトします。
plink.exe .. dir > 11.txt 2>&1
Windows の cmd stdout と stderr を単一のファイルにリダイレクトするを参照してください。
確かに、信頼できるホストキーのフィンガープリントを明示的に指定する-hostkey
スイッチがありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加