简体   繁体   English

奇怪的程序调用错误

[英]Strange program call error

I have a problem. 我有个问题。 I have made a script to convert a given HTML page (url) to a given jpg file using html2image : 我已经制作了一个脚本,使用html2image将给定的HTML页面(URL)转换为给定的jpg文件:

#!/bin/sh
cd /absolute/path/html2imagev3
LD_LIBRARY_PATH=.:/usr/lib:$LD_LIBRARY_PATH xvfb-run ./html2image $1 $2

It is then run like this: 然后像这样运行:

/path/to/convert 'http://www.google.com' /tmp/google_screen.jpg

This works without problems. 这没有问题。 When I call this script using PHP, however, 但是,当我使用PHP调用此脚本时,

system('./convert ' . $url . ' ' . $file);

I get this error: 我收到此错误:

Xlib:  extension "RANDR" missing on display ":99.0".
current dir: /absolute/path/html2imagev3/libxpcom.so
Failed to get HOME

How can I fix this problem? 我该如何解决这个问题?

Edit: I have fixed it. 编辑:我已修复它。 Thanks for the help. 谢谢您的帮助。 By adding a HOME var to the convert script the program runs: 通过将HOME变量添加到转换脚本中,程序将运行:

HOME=/tmp LD_LIBRARY_PATH= ...

Well, your xvfb-run script will launch Xvfb, an X Virtual FrameBuffer, which is essentially an X11 server with no attached display. 好吧,您的xvfb-run脚本将启动Xvfb,这是X虚拟xvfb-run ,它实际上是没有连接显示的X11服务器。 The X11 protocol has many extensions, which not all X servers support. X11协议具有许多扩展,并非所有X服务器都支持。 In this case your html2image script is asking for a given extension (the RANDR, or "R and R" extension, as Pekka points out) and can't find it. 在这种情况下,您的html2image脚本要求提供给定的扩展名(如Pekka指出的RANDR或“ R and R”扩展名),并且找不到它。

If this works when logged in as your user, and not when you're running from PHP, it's probably because your PHP script is getting executed with a different environment. 如果这在以用户身份登录时有效,而不是从PHP运行时有效,则可能是因为您的PHP脚本正在不同的环境中执行。 I don't know all the environment variables that may affect Xvfb, but it seems like you might want to try explicitly enabling the RANDR extension, perhaps with something like: 我不知道可能会影响Xvfb的所有环境变量,但似乎您可能想尝试显式启用RANDR扩展,也许使用以下方法:

xvfb-run -s "+extension RANDR" ./html2image $1 $2

解决方案是只需在启动脚本中设置HOME var。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM