我正试图在我的CentOS服务器上运行CutyCapt,以获取网站截图!
问题是命令"/downloads/cutycapt/CutyCapt/CutyCapt --url=http://www.google.dk --out=/downloads/cutycapt/CutyCapt/test2.png --min-width=800 --min-height=600"
在我从命令行运行时有效!
但是如果我尝试运行它,在PHP exec函数内部,什么都不会发生,并且它也不会返回任何内容。
更新:
命令bellow适用于shell。
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
但代码吼叫不要在php上工作
E 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 :(得分:1)
CutyCapt需要X服务器才能工作。如果您作为自己的用户从CLI运行它,则可能已经为您的用户运行了X服务器。 Web服务器用户无法直接使用此X服务器。为Web服务器用户启动X服务器,并在yor PHP脚本的开头更改DISPLAY环境变量以使用此X服务器。
如果这是没有屏幕的服务器,请考虑使用Xfvb,这是一个无头X服务器。
答案 1 :(得分:0)
可能是权限问题
sudo chown www-data:www-data your_file.php
答案 2 :(得分:0)
在没有X服务器的情况下使用CutyCapt
如果没有X服务器,你不能使用CutyCapt,但你可以使用例如如果您没有运行交互式图形桌面环境,Xvfb将作为轻量级服务器。例如,您可以使用:
% xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=... --out=...