对于我的项目,我需要通过php运行位于ubuntu服务器上的bash脚本。
这是我的sh脚本: test1.sh
#!/bin/bash
xte 'keydown Control_L' 'keydown Alt_L' 'key l' 'keyup Alt_L' 'keyup Control_L' 我的php文件是: bashTest1.php
<?php
$message = shell_exec("bash test1.sh 2>&1");
echo $message;
?>但是,当我在浏览器中打开php页面时,会得到以下错误:
Unable to open display 'default''test1.sh‘中的'xte’命令基本上实际上执行Ctlr+Alt+L操作。我检查了“test1.sh”的文件权限。没事的。我已经在终端上运行bash文件,它正在工作。我还在同一个'test1.sh‘文件中选中了'ls’命令,它在浏览器中显示了该目录中的所有文件。请您帮助我在我的php脚本中运行这个命令。
提前谢谢大家!
最后我解决了这个问题。在Ubuntu中,每个用户都有一个显示。首先,在bash文件中,我必须指定执行命令所需的显示。最后,我需要授予php用户执行命令的权限。最后,bash文件如下所示:
#!/bin/bash
export DISPLAY=":0"
xhost +
xte 'keydown Control_L' 'keydown Alt_L' 'key l' 'keyup Alt_L' 'keyup Control_L'注意:请记住,首先检查用户的显示。因为不同的用户会得到不同的显示。您可以通过终端中的此命令检查用户的显示。
who发布于 2016-03-04 02:03:44
https://stackoverflow.com/questions/35687082
复制相似问题