【问题标题】:Meshlabserver : Cannot connect to X server errorMeshlabserver:无法连接到 X 服务器错误
【发布时间】:2014-11-09 17:40:50
【问题描述】:

我在运行 Ubuntu 14.04 操作系统的机器上安装了 meshlab。我可以使用meshlabserver 命令从命令行访问它。但是每当我尝试使用命令从 php 脚本调用它时就会出现问题

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

它显示错误meshlabserver: cannot connect to X server。在浏览了几个网站后,我做了以下事情:

我将meshlabserver 可执行文件从/usr/bin 移动到/usr/local/bin 并使用

为其赋予了可执行权限
sudo chmod a+x meshlabserver

但是当我从我的 php 脚本(调用meshlabserver)运行whoami 命令时,它显示www-data。所以我使用

将所有用户的可执行权限授予meshlabserver
sudo chmod 777 /usr/local/bin/meshlabserver

但它仍然显示相同的meshlabserver: cannot connect to X server 错误。 meshlabserver comamnd 从命令行运行时工作正常。

我真的需要从我的网站的 php 脚本中调用 meshlab。因此,任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: php ubuntu-14.04 xserver meshlab


    【解决方案1】:

    似乎 php 脚本无法访问您的显示变量。如果您通过 ssh 登录,请记住通过 'ssh -X ...' 为您的 X 服务器建立隧道。您的第二个选择是使用 Xvfb 创建一个虚拟帧缓冲区并将显示变量重定向到它:

    export DISPLAY=:100.0 Xvfb :100 &

    注意第二个命令的和号,因为 Xvfb 需要在后台运行。

    【讨论】:

    • 它没有用。但是,我找到了一个替代命令来执行该任务,并且不再需要调用 Meshlabserver。感谢您的回复。
    • 不幸的是,meshlab 需要 OpenGL 上下文,Xvfb 显然无法提供。因此,第二个选项不起作用。
    【解决方案2】:

    先前答案的组合对我有用: ssh -X,以及export DISPLAY=:0.0(远程)

    【讨论】:

      猜你喜欢
      • 2019-10-08
      • 1970-01-01
      • 2019-04-20
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 2013-03-25
      相关资源
      最近更新 更多