gpt4 book ai didi

来自命令行的 PHP 启动 gui 程序但 apache 没有

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:12 24 4
gpt4 key购买 nike

首先,我阅读了一些有类似问题的人的帖子,但所有答案都没有超出 export DISPLAY=:0.0 和 xauth cookies。所以这是我的问题,提前感谢您的时间!

我开发了一个小库,它使用 OpenGL 和 GLSL 渲染货架。前几天,我将它包装在一个 php 扩展中,现在它可以轻松运行了。

但问题是它仅在我使用命令行扩展执行 php 脚本时有效 $php r100.php (我成功地从 http 用户运行了这个)。该脚本位于 apache 的 webroot 中,如果我从浏览器请求它,我会得到 ** CRITICAL **: Unable to open display在 apache 的错误日志中。

因此,为了让事情更容易测试并确保问题不在库/扩展中,目前我只想使用以下 php 脚本启动 xmms。 <?php
echo shell_exec("xmms");
?>
它也只能在 shell 中工作。

我已经玩了这么多 apache 配置,以至于我真的不知道该尝试什么。我试过 $xhost + && export DISPLAY=:0.0

在 http.conf 我有这些 SetEnv DISPLAY :0.0 SetEnv XAUTHORITY /home/OpenGL/.Xauthority

所以我的问题似乎是这样的:如何让 apache 以 http 用户拥有的所有权限(包括环境)执行 php 脚本?

附加信息:HTTP 在视频和用户组中,并且有一个登录 shell(bash)。我可以作为 http 登录并毫无问题地执行脚本,并且可以运行显示在显示器 0 上的 GUI 程序。看来apache并没有为脚本提供合适的环境。我读到了 CLI/CGI 之间的一些区别,但也无法使用 php-cgi 运行 xmms...

对其他配置有什么想法吗?

问候

最佳答案

听起来有点危险,但基本上您甚至可以将 export DISPLAY=:0.0 添加到 apache 启动脚本(例如在 Linux/etc/init.d/httpd 或 apache 中,具体取决于发行版)。并且“xhost +”需要在作为用户连接到本地 X 服务器的帐户上运行,尽管我只是想知道它将如何工作,因为 php 脚本应该只在 apache http 请求正在进行时有效。

编辑:这是一种应用程序启动器吗?您可以使用 exec("nohub/usr/bin/php script.php &"); 生成它.. 现在应该发布 apache,php 应该继续在后台工作。

关于来自命令行的 PHP 启动 gui 程序但 apache 没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com