命令在ssh上工作,但不';使用PHP exec()函数时无法工作!

命令在ssh上工作,但不';使用PHP exec()函数时无法工作!,php,exec,Php,Exec,我正试图在我的CentOS服务器上运行CutyCapt,拍摄网站截图 问题是命令“/downloads/cutycapt/cutycapt/cutycapt--url=http://www.google.dk --out=/downloads/cutycapt/cutycapt/test2.png--minwidth=800--minheight=600“在我从命令行运行它时起作用 但如果我尝试在PHP exec函数中运行它,则不会发生任何事情,也不会返回任何结果 更新: 下面的命令在shell

我正试图在我的CentOS服务器上运行CutyCapt,拍摄网站截图

问题是命令
“/downloads/cutycapt/cutycapt/cutycapt--url=http://www.google.dk --out=/downloads/cutycapt/cutycapt/test2.png--minwidth=800--minheight=600“
在我从命令行运行它时起作用

但如果我尝试在PHP exec函数中运行它,则不会发生任何事情,也不会返回任何结果

更新:

下面的命令在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/font/misc-screen 0 1024x768x24&export DISPLAY=localhost:1.0&CutyCapt--url=http://www.scrapee.net --out=/downloads/cutycapt/cutycapt/test4.png',$out)

安全模式关闭。所以我真的不知道我做错了什么


有人能帮我吗?谢谢。

可能是权限问题


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

CutyCapt需要一个X服务器才能工作。如果您是以自己的用户身份从CLI运行它,那么很可能您已经有一台X服务器在为您的用户运行。web服务器用户不能直接使用此X服务器。为web服务器用户启动一个X服务器,并将yor PHP脚本开头的DISPLAY环境变量更改为使用此X服务器


如果这是一个没有屏幕的服务器,考虑使用XFVB,它是一个无头X服务器。

< P><强>使用CuryYCAT没有X Server < /St>>/P> 如果没有X服务器,您不能使用CutyCapt,但是如果您没有运行交互式图形桌面环境,您可以使用例如Xvfb作为轻型服务器。例如,您可以使用:

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

当我在脚本中运行whoami时,会得到“nobody”。这可能是问题所在吗?我已经在使用Xvfb了。问题是它在命令行上工作,但在试图删除/tmp/.X4锁的exec()上不工作,谁是该锁的所有者?