我试图用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 回答
尝试使用:
得到输出 . 可能是你发现了一些错误 .
你需要检查php.ini文件中的safe_mode选项(如
disable_functions
和safe_mode_exec_dir
) .并尝试使用
FULL
路径到您的putty.exe文件 . Web服务器工作在另一个目录中,而不是您的bat文件 .