0

我在运行 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

但是当我whoami从我的 php 脚本(调用meshlabserver)运行命令时,它显示www-data. 所以我给了所有用户的可执行meshlabserver权限

sudo chmod 777 /usr/local/bin/meshlabserver

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

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

4

2 回答 2

0

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

export DISPLAY=:100.0 Xvfb :100 &

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

于 2014-11-14T12:49:09.657 回答
0

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

于 2021-05-19T22:46:33.070 回答