0

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

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

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

刷新.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 存在问题。

有人可以帮助我吗?

4

1 回答 1

0

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

显示=:0 xhost + 本地: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 文件,一切顺利。

于 2017-02-25T16:57:47.480 回答