Meshlabserver: не удается подключиться к X-серверу ошибка

0

У меня есть meshlab, установленный на моей машине с ОС Ubuntu 14.04. Я могу получить к нему доступ из командной строки, используя команду meshlabserver. Но проблема возникает, когда я пытаюсь вызвать ее из php-скрипта, используя команду

<?php
system('meshlabserver 2>&1');
?>

Он показывает ошибку meshlabserver: cannot connect to X server. Пройдя несколько сайтов, я сделал следующее:

Я переместил исполняемый файл meshlabserver из /usr/bin в /usr/local/bin и дал ему исполняемые разрешения, используя

sudo chmod a+x meshlabserver

Но когда я запускал команду whoami из моего php-скрипта (вызывая meshlabserver), он показывал www-data. Поэтому я дал исполняемые разрешения для всех пользователей на meshlabserver используя

sudo chmod 777 /usr/local/bin/meshlabserver

Но все же он показывает тот же meshlabserver: cannot connect to X server ошибке meshlabserver: cannot connect to X server meshlabserver comamnd отлично работает при запуске из командной строки.

Мне действительно нужно вызвать meshlab из php-скрипта для моего сайта. Таким образом, любая помощь будет высоко оценена. Заранее спасибо.

Теги:
ubuntu-14.04
meshlab

1 ответ

0

Кажется, php-скрипт не может получить доступ к вашей отображаемой переменной. Если вы вошли в систему через ssh, запомните туннель своего X-сервера через "ssh -X...". Второй вариант - создать буфер виртуального фрейма с помощью Xvfb и перенаправить отображаемую переменную на него:

export DISPLAY=:100.0 Xvfb :100 &

Обратите внимание на амперсанд для второй команды, поскольку Xvfb должен работать в фоновом режиме.

  • 0
    Это не сработало. Однако я нашел альтернативную команду для выполнения задачи, и мне больше не нужно вызывать Meshlabserver. Спасибо за ваш ответ.
  • 0
    К сожалению, meshlab требует контекст OpenGL, который Xvfb явно не может предоставить. Следовательно, второй вариант не работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню