您可能很熟悉网站缩略图服务,例如websnapr.com,例如
我目前正在开发具有不同目的的类似东西,所以我需要一台服务器来启动带有网址的web浏览器并截取屏幕截图并转到下一个。
这是我通过bash script.sh执行的bash脚本'http://google.nl'/var/www/images/google.png
#! /bin/bash
export DISPLAY=":4"
killall firefox-bin
/usr/bin/firefox --display :4 "$1" &
/bin/sleep 20
xte "key F11"
/bin/sleep 3
/usr/bin/import -window root -display :4 "$2"
/bin/sleep 3
killall firefox-bin
我有一个Xvfb运行'Xvfb:4-screen 0 1024x768x24&'
脚本在通过ssh或标准用户的终端运行时运行正常,但是当我尝试通过php执行它时:
exec('bash /var/scripts/test.sh "http://google.nl" /var/www/char.png');
我得到的是1024x768的全黑屏幕截图,当查看apache的错误日志时,我发现当我在主用户下运行时它不能killall firefox(权限不允许)但是即使关闭它也可以开始一个(没有给出错误)。
知道什么是错的吗?理想情况下,因为它适用于我的主要用户,它只是希望能够作为该用户而不是www-data用户执行它,安全性不是问题,因为没有直接连接到该服务器(仅通过另一个服务器)同一个网络)。