Windows |沼泽 |无法从 php exec() 执行 plink.exe
Windows | wamp | unable to execute plink.exe from php exec()
我需要通过 PHP.
从 Windows 7 访问一台 Linux 机器
为此,我创建了包含 plink 的简单 bat (MyScript.bat
) 脚本。
c:\wamp\www\abc\plink.exe user1@192.168.70.128 -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 user1@192.168.70.128 -pw l1c -C "df -h">11.txt
不为 SSH 启动外部工具。
PHP 有 native support for 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
见Redirect Windows cmd stdout and stderr to a single file。
您肯定缺少 -hostkey
switch 来明确指定可信主机密钥的指纹。
我需要通过 PHP.
从 Windows 7 访问一台 Linux 机器为此,我创建了包含 plink 的简单 bat (MyScript.bat
) 脚本。
c:\wamp\www\abc\plink.exe user1@192.168.70.128 -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 user1@192.168.70.128 -pw l1c -C "df -h">11.txt
不为 SSH 启动外部工具。
PHP 有 native support for 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
见Redirect Windows cmd stdout and stderr to a single file。
您肯定缺少 -hostkey
switch 来明确指定可信主机密钥的指纹。