5

我正在尝试在无头服务器上执行 Firefox 以截取网站的屏幕截图。我可以从终端使用

“DISPLAY=:12 firefox -saveimage http://www.google.com/ ”。

问题是当我尝试做 system("DISPLAY=:12 firefox -saveimage http://www.google.com "); 不起作用。我有一种感觉,它没有在正常的 shell 环境中执行。我违背了我更好的判断,给了 apache 用户一个实际的 shell。如果我 su 到 apache 并执行命令,一切都很好并且按预期工作,但它再次不能通过系统调用工作。任何见解都非常受欢迎。

4

2 回答 2

3

我找到了解决方案。

我只需要创建一个会为我调用它的 shell 脚本。在玩了一段时间后,我export HOME="/var/www/"在脚本顶部添加后让它工作了。

我希望这对其他人有帮助。

于 2009-03-16T21:10:02.780 回答
0

很可能对您作为 shell 用户设置的环境变量存在一些依赖关系,而 httpd 的环境不满足这些依赖关系。不过,在对环境做任何英雄事之前,我建议从你的工作中捕获 stderr(2>/tmp/imgcaperrlog例如,通过添加到它的末尾)并查看它是否有任何抱怨。

于 2009-03-16T18:36:16.567 回答