我的本地 Linux 桌面上运行着 Apache 和 PHP。我的 PHP 脚本启动“xcalc”,如下所示:
<?php
shell_exec("xcalc");
?>
当我使用 PHP 二进制文件执行 PHP 脚本时,我看到 xcalc 在桌面上运行。当我通过 Apache 执行相同的脚本时,我在屏幕上看不到任何反应。我不知道它在哪里失败。
我将 Apache 的用户和组更改为普通用户,只是为了确保所有 X 设置都正确。
最佳答案
xcalc 需要设置 -display
选项或 DISPLAY
环境变量来了解要在哪个 X 服务器上显示。当您从 shell 运行它时,它可能会从您的 shell 环境中获取 $DISPLAY
,但 Apache Web 服务器通常不会有该信息
设置。
如果 X session 不是由与 Apache Web 服务器相同的用户运行,您也可能会遇到 X 身份验证问题,因为 X 通常依赖于存储在 $HOME/.xauthority
登录 X session 的用户的文件。
关于apache - 使用 PHP 从本地运行的 Apache Web 服务器启动 X 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357886/