2011-07-05 64 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,谁是这个的所有者? –

相关问题