2015-09-28 67 views
0

我在rasperry pi上使用xdotool來刷新iceaweasel瀏覽器。 現在,我想在LAN中的服務器啓動後重新加載網頁。在Rasperry PI上運行Xdotool,用戶爲「www-data」

爲此,我寫樹莓一個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的數據有問題。

有人能幫助我嗎?

+0

它的原因是www-data無權執行像xdo這樣的系統工具,事實上,您可以嘗試使用此腳本運行的任何其他系統工具,並且很可能它不會運行。 –

+0

並有任何解決方案嗎?另外如果我用sudo運行shellscript它不起作用 –

回答

0

添加到執行系統工具www數據權限

DISPLAY =:0 xhost的+本地:www數據

在你的腳本 /refresh.sh

​​

在你的PHP文件

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

然後將可執行權限添加到您的PHP文件

sudo chmod +x refresh.php 

通過URL執行php文件和你的好去。