2011-07-05 95 views
0

我想在我的CentOS服務器上運行CutyCapt,以獲取網站截圖!命令在ssh上工作,但在使用PHP exec()函數時不起作用!

問題是,命令"/downloads/cutycapt/CutyCapt/CutyCapt --url=http://www.google.dk --out=/downloads/cutycapt/CutyCapt/test2.png --min-width=800 --min-height=600"工作時,我從命令行運行它!

但是,如果我嘗試運行它,在PHP exec函數內部,什麼都不會發生,它也不會返回任何內容。

更新:

命令波紋管適用於殼。

rm -rf /tmp/.X4-lock&Xvfb :1 -fp /usr/share/X11/fonts/misc -screen 0 1024x768x24 &export DISPLAY=localhost:1.0&CutyCapt --url=http://www.scrapee.net --out=/downloads/cutycapt/CutyCapt/test4.png 

但代碼波紋管DONOT在PHP 評估工作xec('rm -rf /tmp/.X4-lock&Xvfb :1 -fp /usr/share/X11/fonts/misc -screen 0 1024x768x24 &export DISPLAY=localhost:1.0&CutyCapt --url=http://www.scrapee.net --out=/downloads/cutycapt/CutyCapt/test4.png',$out);

安全模式是關閉的。所以我真的不知道我做錯了什麼。

有人可以幫我嗎?謝謝。

回答

0

可能是一個權限問題

sudo chown www-data:www-data your_file.php

+0

當我在腳本中,我得到 「沒有人」 跑WHOAMI。這可能是問題嗎? – valter

1

CutyCapt需要一個X服務器的工作。如果您是以自己的用戶身份從CLI運行它,則很可能您已經爲您的用戶運行了X服務器。此X服務器不能直接由Web服務器用戶使用。爲Web服務器用戶啓動X服務器,並在yor PHP腳本的開頭更改DISPLAY環境變量以使用此X服務器。

如果這是一個沒有屏幕的服務器,請考慮使用Xfvb這是一個無頭X服務器。

0

使用CutyCapt沒有X服務器

沒有X服務器不能使用CutyCapt,但你可以使用例如如果您沒有運行交互式圖形桌面環境,則將Xvfb作爲輕量級服務器。例如,你可以使用:

% xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=... --out=... 

http://cutycapt.sourceforge.net/

+0

我已經在使用Xvfb。問題是它可以在命令行上運行,但不能在exec() – valter

+0

上運行,試圖刪除/tmp/.X4-lock,誰是這個的所有者? –

相關問題