【发布时间】:2011-09-04 18:45:57
【问题描述】:
首先,我阅读了一些有类似问题的人的帖子,但所有答案都没有超出 export DISPLAY=:0.0 和 xauth cookie 的范围。所以这是我的问题,提前感谢您的时间!
我开发了一个使用 OpenGL 和 GLSL 渲染货架的小库。 前几天我把它封装在一个 php 扩展中,现在它运行起来非常简单。
但问题是它仅在我使用命令行扩展名执行 php 脚本时才有效
$php r100.php(我成功地从 http 用户运行它)。该脚本位于 apache 的 webroot 中,如果我从浏览器请求它,我会在 apache 的 error_log 中得到 ** CRITICAL **: Unable to open display。
所以,为了让测试更容易,并确保问题不在库/扩展中,目前我只想使用以下 php 脚本启动 xmms。
<?php
echo shell_exec("xmms");
?>
它也只能在 shell 中工作。
我已经玩了太多 apache 配置了,以至于我真的不知道该尝试什么。
我试过$xhost + && export DISPLAY=:0.0
在 http.conf 我有这些
SetEnv DISPLAY :0.0SetEnv XAUTHORITY /home/OpenGL/.Xauthority
所以我的问题似乎是这样的: 如何让 apache 以 http 用户拥有的所有权限(包括环境)执行 php 脚本?
附加信息: HTTP 在 video 和 users 组中,并且有一个登录 shell(bash)。 我可以以 http 身份登录并毫无问题地执行脚本,并且可以运行显示在显示器 0 上的 GUI 程序。 看来apache没有为脚本提供合适的环境。 我读到了 CLI/CGI 之间的一些区别,但也不能用 php-cgi 运行 xmms...
有其他配置的想法吗?
问候
【问题讨论】: