我正在爲內部R & D項目構建網頁屏幕捕獲應用程序。如何使用PHP,shell_exe和scrot捕獲x屏幕
環境:Ubuntu 9.04(默認桌面安裝),Apache,PHP。
到目前爲止,我有一個bash腳本需要一個參數(URL),啓動firefox,抓取屏幕並將其保存爲PNG。我試過從終端運行這個,它工作正常。
這裏的bash腳本:
#!/bin/bash
firefox $1 # Start firefox and go to the passed in URL
scrot -d 5 test.png # Take screen grab with 5 second delay
接下來,我創建了一個簡單的PHP頁面使用了shell_exec來運行該腳本:
<?
// Sample URL
$url = 'http://www.google.com';
// Run the script
shell_exec('sh script.sh ' . $url);
// Out put HTML to display image
echo '<img src="test.png" />';
?>
然而,當PHP頁面調用屏幕不抓獲。 就讓我們來看看在Apache的錯誤日誌顯示以下信息:
Error: no display specified giblib error: Can't open X display. It *is* running, yeah
我猜這是因爲Apache是運行作爲不同的用戶並沒有得到訪問我的X顯示。
所以,任何人都可以闡明我做錯了什麼或我如何捕獲當前的用戶顯示。
謝謝。
感謝您的全面迴應。 我原來的方法是一個非常快速的創意模型,但你是對的,它確實感覺錯誤*,你提出的系統是一個更好的方法。 – 2009-07-23 10:47:34