【发布时间】:2017-11-26 23:49:01
【问题描述】:
我在我的 apache/ubuntu 服务器上使用 php 脚本来调用 bash 脚本,该脚本会触发将 python 脚本作为参数 (IDAPro) 的应用程序。
PHP 代码
chdir('/var/www/dashboard/team/static/sql');
$output = exec('sudo -u rohan ./start.sh');
现在,如果我从终端运行 PHP 文件,上面的代码可以正常工作 - 但前提是我以 root 用户身份运行它。不用说,如果我直接执行 bash 文件,它也会运行。
但是当我在浏览器上运行 PHP 文件时,它不起作用,并且我在 apache 错误日志中得到以下错误:
QXcbConnection: Could not connect to display
Aborted
我了解 Apache/php 以“www-data”用户身份运行(使用“whoami”进行验证),这就是为什么我的 exec 中有 sudo。我已经调整和修补了两个用户的权限,但无济于事。当我从终端以“www-data”用户身份运行 php 文件时,它不会抛出任何错误,但除了在脚本的开头和结尾显示随机回显标签以进行调试外,什么也不做。
我是 linux 新手,非常感谢任何帮助。
【问题讨论】:
标签: php linux bash apache ubuntu