首页 文章

PHP中的PuTTy命令不起作用,Web服务重启Raspberry Pi

提问于
浏览
0

我试图用PHP做简单的Web服务(我使用Laravel)重新启动并关闭我的覆盆子pi .

我尝试在我的PHP服务调用中执行以下操作:

exec("putty -ssh pi@192.168.0.12 -pw myPassword -m D:\workspace\CPS\public\ssh\restart.txt");

在我的restart.txt中我有简单的命令 sudo shutdown -r now

但是当我在高级休息客户端应用程序(Chrome插件)中调用我的Web服务时,我的请求正在处理并且永无止境 . 在命令行中,这可以正常工作 .

我认为问题在于直接在PHP中运行PuTTy并且我做了一些更改并使用以下内容创建 .bat 文件:

echo off
putty -ssh pi@%1 -pw %2 -m %3

我像这样开始这个批处理脚本:

exec("D:\workspace\CPS\public\ssh\restart.bat 192.168.0.12 myPassword D:\workspace\CPS\public\ssh\restart.txt");

......但结果是一样的 . 我将我的Web服务更改为GET方法,并在浏览器中调用服务,如页面,但没有任何变化 .

我在日志文件和控制台中没有任何错误/异常 . 我还检查了系统日志,但没有找到 .

我做错了什么或错过了什么?有可能还是有更好的方法来实现这一目标?

目前我在Windows 7和XAMPP上运行它 . 我将来会为Linux做第二个版本,并在代码中决定我应该运行哪个命令取决于当前环境 .

Update 我忘了写,所有必需用户都有权在我的(...)/ ssh目录中执行文件

1 回答

  • 0

    尝试使用:

    echo system("D:\workspace\CPS\public\ssh\restart.bat 192.168.0.12 myPassword D:\workspace\CPS\public\ssh\restart.txt");
    

    得到输出 . 可能是你发现了一些错误 .

    你需要检查php.ini文件中的safe_mode选项(如 disable_functionssafe_mode_exec_dir ) .

    并尝试使用 FULL 路径到您的putty.exe文件 . Web服务器工作在另一个目录中,而不是您的bat文件 .

相关问题