Could not connect to any x display

Could not connect to any x display

В данной заметке будут даны рекомендации о том, как исправить ошибку "QXcbConnection: Could not connect to display", возникающую при попытке запустить phantomjs на компьютере, у которого нет реального подключения к монитору.

Описание

QXcbConnection: Could not connect to display

При попытке запустить phantomjs на сервере с Ubuntu и без подключенного монитора, получил вот такую ошибку. Решение оказалось довольно простым, чтобы данная ошибка перестала вылезать, необходимо перед запуском phantomjs, выполнить следующую команду:

А уже после выполнения данной команды, попытаться запустить phantomjs еще раз. В моем случае, данная команда помогла и все заработало, как оно и должно.

Я установил расширение Ubuntu для Windows, но у меня возникают проблемы, когда я хочу использовать gnuplot. Я просто пытаюсь построить простой файл данных, но получаю следующую ошибку:

Как вы можете догадаться, я не очень знаком с этой проблемой. Что-то, что я должен настроить в своей среде, чтобы это исправить?

РЕДАКТИРОВАТЬ: после предложения в комментариях я попытался использовать set term postscript , Вывод другой, но сюжета все равно нет.

И после попытки set term png , команда plot дает мне это:

Я работаю над проектом, в котором я хочу использовать PHP и Phantomjs вместе, я завершил свой сценарий phantomJs и пытаюсь запустить его, используя функцию php exec. но функция возвращает массив списка ошибок.
ниже я пишу свой код фантомов и PHP

Также пробовал с

После запуска я получаю ошибку ниже

Но если я запускаю файл index.php из терминала следующим образом:

тогда это работает нормально. Я не знаю, как решить это. Пожалуйста помоги.

я использую следующую версию

версия системы: Ubuntu 16.04.2 LTS
Версия PHP: 5.6
версия фантома: 2.1.1

Читайте также:  Ga eg41mft us2h разгон

Решение

Вы пытались установить переменную окружения на вашем сервере? или добавил его перед вызовом фантома?

Я был в такой же ситуации и нашел несколько решений:

а. определить или установить переменную QT_QPA_PLATFORM в offscreen :

б. или добавьте эту строку в свой .bashrc файл (положить его в конце):

с. или установите пакет xvfb и позвонить xvfb-run до phantomjs :

д. или используйте параметр platform :

Возможно, вы не хотите / не можете вносить изменения на вашем сервере, и в этом случае вы можете попробовать загрузить статический двоичный файл из Официальный веб-сайт затем:

и / или создать псевдоним в вашем .bash_aliases файл как это:

удостоверься что phantomjs не установлен в системе, если вы решили использовать псевдоним.

если файл .bash_aliases не существует, не стесняйтесь создать его или добавить alias линия в конце .bashrc файл

Другие решения

У меня была такая же проблема при запуске phantomjs в безголовой Ubuntu 18.04 (при установке Vagrant vm по умолчанию на openstreetmap-website). Folloiwng Jiab77 ссылки, кажется, Команда Phantomjs говорит, что проблема в пакете Debian но Команда Debian закрыла ошибку как wontfix . Мне нужно, чтобы phantomjs «просто работал», чтобы он мог вызываться другими программами, которые ожидают, что он будет работать нормально. В частности, openstreetmap-website имеет обширный набор тестов Ruby с более чем 40 тестами, которые не были выполнены из-за этого, и я не хотел изменять все эти тесты.

После ответа Jiab77 вот как я это сделал:

    Как корень, cp /usr/bin/phantomjs /usr/local/bin/phantomjs

Отредактируйте / usr / local / bin / phantomjs и добавьте строку export QT_QPA_PLATFORM=offscreen так что работает до исполнения. Вот что говорит мой после этого:

#!/bin/sh
LD_LIBRARY_PATH="/usr/lib/phantomjs:$LD_LIBRARY_PATH"export LD_LIBRARY_PATH
# 2018-11-13: added the next line so phantomjs can run headless as explained on
# https://stackoverflow.com/questions/49154209/how-to-solve-error-qxcbconnection-could-not-connect-to-display-when-using-exec
export QT_QPA_PLATFORM=offscreen
exec "/usr/lib/phantomjs/phantomjs" "$@"

Читайте также:  Dumping physical memory to disk что это

После этого изменения phantomjs может быть запущен из командной строки, ничего не меняя, и все тесты, которые зависят от phantomjs, были успешно пройдены.

Ссылка на основную публикацию
Adblock detector