在Rasperry PI上运行Xdotool作为用户" www-data"

时间:2015-09-28 06:33:21

标签: php shell raspberry-pi2 xdotool

我在rasperry pi上使用xdotool来刷新iceaweasel浏览器。 现在,我想在启动局域网中的服务器后重新加载网页。

为此,我在Raspberry上编写了一个PHP脚本(refresh.php):

<?php
 exec("sh /var/www/refresh.sh");
?>

resfresh.sh

export DISPLAY=:"0.0"
XAUTHORITY=/home/pi/.Xauthority
xdotool getactivewindow
xdotool key F5

如果我从控制台启动PHP脚本,刷新工作正常! 如果我从外部浏览器启动PHP,刷新不起作用!

Apache错误日志:

No protocol specified
Error: Can't open display: (null)
Failed creating new xdo instance  

我认为,xdotool和用户www-data存在问题。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

添加www-data权限以执行系统工具

DISPLAY =:0 xhost + local:www-data

在你的脚本上 /refresh.sh

#!/bin/bash
export DISPLAY=:0 && xdotool key F5

在你的php文件

<?php
shell_exec("/refresh.sh " . $phone);
?>

然后为您的php文件添加可执行权限

sudo chmod +x refresh.php

通过URL执行php文件,然后你就可以了。