PHP shell_exec 不适用于 gnome
PHP shell_exec won't work with gnome
在终端 window 运行ning alert 9
给我一个弹出窗口说 9
然而,运行ning alert 9
在 shell_exec
中什么也没有给出。
我应该注意什么?
顺便提一下:其他与 GUI 交互的命令都不起作用。我正在使用 gnome 3.16.3
更新
我的具体目标是 运行 使用 gnome 环境的 xdotool 命令。 ( xdotool key ctrl+shift+u
)
我相信 PHP 正在启动一个不知道您的 X11 环境的 shell,您需要设置 $DISPLAY
环境变量。尝试对您的 shell_exec 进行以下修改:
shell_exec("DISPLAY=\":0\" alert 9");
alert
不是标准命令,至少在 RedHat、Solaris 和 AIX,所以你必须在你的问题中提到它是专有的 command/program
您的 alert
script/program 不考虑刷新标准或文件输出中的文本数据,因此您不能使用管道进行任何重定向 |,或者重定向>,最后,php函数shell_exec()
可以捕获任何东西
也许您可以重定向图形数据(我不确定),但通常它由图形服务器使用
alert
不是命令,而是notify-send
的别名。别名只在交互shell中加载,所以不是测试shel_exec
的最佳选择。
这 2 个命令与 php-cli 配合使用效果很好:
$ php -r "shell_exec('notify-send 9');"
$ php -r "shell_exec('xdotool key ctrl+shift+u');"
第一个弹出通知区9,最后一个输出下划线'u'。
Apache mod_php 是一个守护进程,init
的子进程,它对 xserver 一无所知。例如,如果您 运行 php 从终端 在 xserver 中 $ php -S 0:8080
内置 Web 服务器,它会按预期工作。
在终端 window 运行ning alert 9
给我一个弹出窗口说 9
然而,运行ning alert 9
在 shell_exec
中什么也没有给出。
我应该注意什么?
顺便提一下:其他与 GUI 交互的命令都不起作用。我正在使用 gnome 3.16.3
更新
我的具体目标是 运行 使用 gnome 环境的 xdotool 命令。 ( xdotool key ctrl+shift+u
)
我相信 PHP 正在启动一个不知道您的 X11 环境的 shell,您需要设置 $DISPLAY
环境变量。尝试对您的 shell_exec 进行以下修改:
shell_exec("DISPLAY=\":0\" alert 9");
alert
不是标准命令,至少在 RedHat、Solaris 和 AIX,所以你必须在你的问题中提到它是专有的 command/program
您的 alert
script/program 不考虑刷新标准或文件输出中的文本数据,因此您不能使用管道进行任何重定向 |,或者重定向>,最后,php函数shell_exec()
可以捕获任何东西
也许您可以重定向图形数据(我不确定),但通常它由图形服务器使用
alert
不是命令,而是notify-send
的别名。别名只在交互shell中加载,所以不是测试shel_exec
的最佳选择。
这 2 个命令与 php-cli 配合使用效果很好:
$ php -r "shell_exec('notify-send 9');"
$ php -r "shell_exec('xdotool key ctrl+shift+u');"
第一个弹出通知区9,最后一个输出下划线'u'。
Apache mod_php 是一个守护进程,init
的子进程,它对 xserver 一无所知。例如,如果您 运行 php 从终端 在 xserver 中 $ php -S 0:8080
内置 Web 服务器,它会按预期工作。