apache - 使用 PHP 从本地运行的 Apache Web 服务器启动 X 应用程序

标签 apache x11

我的本​​地 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/

相关文章:

php - 为 Codeigniter 服务器安装 Bonfire 和安装链接问题

Git + libsecret 抛出 "Cannot autolaunch D-Bus without X11 $DISPLAY"

x11 - 无法初始化 SDL(没有可用的视频设备)、qemu 系统、适用于 Linux 的 Windows 子系统

apache - MAMP Apache Alias 始终映射到文档根目录

phpmyadmin 显示代码而不是网页

linux - Ubuntu 11.10-如何在不使用X的情况下进入控制台

video - 从远程终端在 X11 中使用 VLC 播放视频

c - 应用程序失去焦点时的 X11 事件

regex - .htaccess RewriteRule 保持 URL 结构

apache - 永久限制 tomcat 的 catalina.out 文件大小