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

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

我使用 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 ~]#

编辑

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

[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

我的最终目标是通过 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$

编辑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]$

答案1

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

在 user1032531 发布的链接中发现了这个隐藏的信息。

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

答案2

如果你要使用无头模式,那么你不需要 X。请参阅在用户 apache 下使用 LibreOffice 将文件转换为 PDF(即使用 PHP 时)寻找可行的解决方案。

答案3

https://www.centos.org/forums/viewtopic.php?t=21514

yum install openoffice.org-headless

相关内容