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

时间:2014-05-03 12:35:33

标签: php ssh raspberry-pi putty

我正在尝试在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做第二个版本,并在代码中决定我应该运行哪个命令取决于当前的环境。

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

1 个答案:

答案 0 :(得分: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文件。