通过浏览器使用php访问DBus

通过浏览器使用php访问DBus,php,browser,dbus,Php,Browser,Dbus,我已经编写了一小部分php代码,可以通过命令行访问DBus。但是当我从浏览器运行php代码时,dbus部分不起作用 为了从浏览器访问DBU,我必须做些什么吗?当通过web服务器调用时,PHP不一定使用相同的用户,因此与通过命令行调用时相比,它具有相同的权限 尝试在浏览器中运行以下脚本,然后通过命令行运行: <?php echo exec('whoami'); ?> 这可能会在通过浏览器运行时输出apache for,在通过CLI运行时输出myusername 因此,您需要更改W

我已经编写了一小部分php代码,可以通过命令行访问DBus。但是当我从浏览器运行php代码时,dbus部分不起作用


为了从浏览器访问DBU,我必须做些什么吗?

当通过web服务器调用时,PHP不一定使用相同的用户,因此与通过命令行调用时相比,它具有相同的权限

尝试在浏览器中运行以下脚本,然后通过命令行运行:

<?php echo exec('whoami'); ?>

这可能会在通过浏览器运行时输出apache for,在通过CLI运行时输出myusername

因此,您需要更改Web服务器正在运行的用户的权限,以允许其运行DBus命令。如何做到这一点将取决于您的操作系统

有关更多提示,请参见此问题:
在web服务器(如Apache)上执行的PHP根本无法执行D-Bus请求。我尝试了好几天都没有成功。这是因为web服务器用户(如
www-data
)无法通过
会话
连接访问
dbus守护进程

作为一种解决方法,我使用内置代理