Comment corriger l'erreur X11: Impossible d'ouvrir l'affichage

1

J'ai installé libreoffice.x86_64 en utilisant yum à partir du référentiel CentOS sur mon serveur de base CentOS. Lors de l'exécution de la commande suivante à partir du shell, j'obtiens l'erreur X11 suivante. xhost est installé sur ma boîte mais X ne semble pas l'être. Qu'est-ce qui cause cette erreur et comment puis-je la réparer?

[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 ~]#

MODIFIER

Par commentaires, j'ai fait ce qui suit, et l'erreur est partie et le document a été converti.

[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

Mon objectif final est d’utiliser PHP via Apache pour exécuter cette commande. Lorsque vous tentez de le faire, il n'est pas converti et je ne reçois aucune erreur ni aucun retour. J'ai ensuite essayé de faire la même commande en utilisant un utilisateur différent, mais j'ai des problèmes similaires. Aucune suggestion?

-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$

EDIT2

Si je redémarre le serveur et fais vncserver :0 sous l'autre utilisateur, puis essayez de convertir le document, il se bloque indéfiniment.

EDIT3

Essayé le magicien avec et sans affichage de réglage, mais pas bon. Peut-être une sorte de problème de permission?

[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]$
user1032531
la source
Peut-être que le commutateur d'exécution -display :0?
Joseph Quinsey
libreoffice essaie clairement de contacter votre serveur X (ce qui vous a semblé indiquer que vous n'avez pas fonctionné). Je suppose que c'est pourquoi vous avez essayé --headless. Ce n'était pas le bon drapeau ou cela ne fonctionnait pas comme prévu (et nécessite toujours un serveur X pour fonctionner).
Etan Reisner
@EtanReisner Je l'ai utilisé avec succès sur d'autres serveurs, cependant, gnome a probablement été installé sur ces autres serveurs et aurait peut-être installé le serveur X. Comment savoir si le serveur X est installé et / ou en cours d'exécution?
user1032531
@JosephQuinsey Comme ça? [root@desktop root]# HOME=/tmp/ayb; /usr/bin/libreoffice -display :0 --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_12.xlsx /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)
user1032531
L'idée du mode sans tête est qu'elle supprime le besoin de X - il n'est pas évident que cette fonctionnalité soit complète. Au lieu d’installer tout X, j’installerais vncserver et l’exécuter en tant que vncserver :0. Puis exportez DISPLAY =: 0
Paul

Réponses:

6

C'est un vieux, mais je l'ai rencontré moi-même aujourd'hui. le truc pour utiliser "--headless" est que vous devez avoir libreoffice-headless (c'est-à-dire: yum install libreoffice-headless ). toutes les installations de libreoffice n'ont pas libreoffice-headless, par exemple le mien aujourd'hui.

Trouvé ce pépite enterré dans le lien user1032531 posté.

Ce serait bien si utiliser --headless sans le package approprié générait une erreur à cet effet, mais ce n'est pas le cas.

lance
la source
-1

Si vous partez sans tête, vous ne devriez pas avoir besoin de X. Voir Convertir un fichier au format PDF en utilisant LibreOffice sous Apache (en utilisant PHP) pour une solution de travail.

user1032531
la source
J'ai le même problème. Le problème est facilement reproductible: cela fonctionne dans la ligne de commande, mais cela ne fonctionne pas si je lance un "AFFICHAGE non défini" auparavant. Donc, pour une raison quelconque, LibreOffice 5.1 a besoin d’un X fonctionnel, même lors de l’exécution de - headless. Ma ligne de commande: "exec / usr / bin / ooffice --headless --convert-to pptx /tmp/filecCn4GT.odp". Franc
fraber