在OS X上使用xvfb-run

39
有没有可能在Mac OS X上使用xvfb-run?
我正在开发一个使用xvfb-run的PHP应用程序。之前我使用Ubuntu开发过,一切正常。现在我转移到了Mac,但是应用程序不能正常运行。
或者,是否有任何跨平台的替代方案可供在Linux / Mac OS X上使用?

你的应用程序使用xvfb-run是为了什么? - user149341
我使用whtmltoimage来将HTML代码渲染成PNG图像。需要使用xvfb-run才能在无头模式下运行渲染。 - Axarsu
6
Xvfb包含在OSX 10.9.x中(或者是XQuartz,需要确认)- 不确定10.8是否有,因为我不再拥有它。$ type Xvfb; Xvfb is /opt/X11/bin/Xvfb。您可以简单地这样运行它:Xvfb :5 -ac -screen 0 1024x768x8 -extension GLX- 然后通过设置DISPLAY=:5.0来让您的X11应用程序连接到该屏幕。这个链接可能会有所帮助:http://afitnerd.com/2011/09/06/headless-browser-testing-on-mac/ - Alexander Janssen
1
@AlexanderJanssen 为什么你使用 DISPLAY=:5.0 而不是 DISPLAY=:5 - user5359531
1个回答

17

X11不再包含在OS X中:

https://support.apple.com/zh-cn/HT201341

OS X的X11服务器和客户端库可从XQuartz项目获取:

http://xquartz.macosforge.org/

我不确定它是否包括所有其他X好用工具,例如Xvfb。如果不包括,您可以使用这些选项自行编译:

--disable-xquartz --enable-xvfb --enable-xnest --enable-kdrive

更多信息请参见:

https://www.xquartz.org/Developer-Info.html

个人认为: 在Mac OSX上,您最好直接使用wkhtmltoimage,这样就不需要X了:

http://minimul.com/install-osx-wkhtmltoimage-binaries.html


3
这会给你xvfb命令,但它并不能提供PHP库所需的xvfb-run命令。 - russellmania
2
我没有可用的编译版本:运行只是一个bash脚本,似乎这就足够了-> https://gist.github.com/tyleramos/3744901 - acidjunk
那不起作用。它调用了许多在macOS/OS X上不存在的命令。 - user5359531
1
定义“that”(我概述了两种可能的解决方案) - acidjunk
@acidjunk 你链接的脚本与 Mac 完全不兼容,不仅因为缺少命令,而且因为其中一些命令的工作方式与 Linux 不同。 - castarco
对于缺失的xvfb-run脚本:该脚本确实是Linux的,但它只是一个简单的bash脚本,因此应该可以根据您的需求进行重写;考虑到您在Mac上有一个可用的xfvb二进制文件。在2021年,我认为使用Ubuntu docker / Vagrant将会更加容易,这已经过去了6年。 - acidjunk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接