我在运行Ubuntu 14.04操作系统的机器上安装了meshlab。我可以使用meshlabserver
命令从命令行访问它。但是每当我尝试使用命令
<?php
system('meshlabserver 2>&1');
?>
显示错误meshlabserver: cannot connect to X server
。经过一些网站后,我做了以下事情:
我已将meshlabserver
可执行文件从/usr/bin
移至/usr/local/bin
,并使用
sudo chmod a+x meshlabserver
但是当我从我的php脚本(调用whoami
)运行meshlabserver
命令时,它显示www-data
。所以我使用
meshlabserver
的可执行权限
sudo chmod 777 /usr/local/bin/meshlabserver
但它仍显示相同的meshlabserver: cannot connect to X server
错误。从命令行运行时,meshlabserver
comamnd工作正常。
我真的需要从我的网站的PHP脚本中调用meshlab
。因此,任何帮助将受到高度赞赏。提前致谢。
答案 0 :(得分:0)
似乎php脚本无法访问您的显示变量。如果您通过ssh登录,请记住通过&#39; ssh -X ...&#39;来隧道您的X服务器。您的第二个选择是使用Xvfb创建虚拟帧缓冲区并将显示变量重定向到它:
export DISPLAY=:100.0
Xvfb :100 &
注意第二个命令的&符号,因为Xvfb需要在后台运行。
答案 1 :(得分:0)
先前答案的组合对我有用:
ssh -X
,以及 export DISPLAY=:0.0
(远程)