如何修复 X11 错误:无法打开显示器

use*_*531 2 linux xorg openoffice libreoffice

我在 CentOS 基本服务器上使用 CentOS 存储库中的 yum 安装了 libreoffice.x86_64。从 shell 运行以下命令时,我收到以下 X11 错误。xhost 安装在我的盒子上,但 X 似乎没有。导致此错误的原因是什么,我该如何解决?

[root@desktop ~]# HOME=/tmp/ayb; /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_12.xlsx
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display:
   Set DISPLAY environment variable, use -display option
   or check permissions of your X-Server
   (See "man X" resp. "man xhost" for details)
[root@desktop ~]#
Run Code Online (Sandbox Code Playgroud)

编辑

根据评论,我执行了以下操作,错误消失并转换了文档。

[root@desktop ~]# yum install tigervnc-server
[root@desktop ~]# vncserver :0
[root@desktop ~]# HOME=/tmp/ayb; /usr/bin/libreoffice -display :0 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
Run Code Online (Sandbox Code Playgroud)

我的最终目标是通过 Apache 使用 PHP 来运行此命令。尝试这样做时,它不会被转换,我也没有收到错误或反馈。然后我尝试使用不同的用户执行相同的命令,但遇到了类似的问题。有什么建议?

-sh-4.1$ HOME=/tmp/ayb; /usr/bin/libreoffice -display :0 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
No protocol specified
No protocol specified
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display: :0
   Set DISPLAY environment variable, use -display option
   or check permissions of your X-Server
   (See "man X" resp. "man xhost" for details)
-sh-4.1$
Run Code Online (Sandbox Code Playgroud)

编辑2

如果我重新启动服务器并vncserver :0在其他用户下执行,然后尝试转换文档,它只会无限期地挂起。

编辑3

在设置和不设置显示的情况下都尝试了向导,但效果不佳。也许某种许可问题?

[NotionCommotion@laptop root]$ HOME=/tmp/ayb; /usr/bin/libreoffice -display :0  --nofirststartwizard --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
/usr/lib64/libreoffice/program/soffice: line 68: cd: /root: Permission denied
No protocol specified
No protocol specified
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display: :0
   Set DISPLAY environment variable, use -display option
   or check permissions of your X-Server
   (See "man X" resp. "man xhost" for details)
[NotionCommotion@laptop root]$ HOME=/tmp/ayb; /usr/bin/libreoffice  --nofirststartwizard --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
/usr/lib64/libreoffice/program/soffice: line 68: cd: /root: Permission denied
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display:
   Set DISPLAY environment variable, use -display option
   or check permissions of your X-Server
   (See "man X" resp. "man xhost" for details)
[NotionCommotion@laptop root]$
Run Code Online (Sandbox Code Playgroud)

小智 8

这是一个旧的,但我今天自己遇到了。使用“--headless”的技巧是您需要安装 libreoffice-headless(即:)yum install libreoffice-headless。并非所有 libreoffice 安装都安装了 libreoffice-headless - 例如,我今天的。

在 user1032531 发布的链接中发现了这个金块。

如果在没有适当包的情况下使用 --headless 会产生一个错误,那就太好了,但事实并非如此。