通过浏览器访问带有php的DBus

时间:2012-07-04 06:53:56

标签: php browser dbus

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

我是否必须做些什么才能从浏览器访问DBus?

2 个答案:

答案 0 :(得分:0)

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

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

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

这可能会输出,例如当您通过浏览器运行时, apache ,当您通过CLI运行时, myusername

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

另请参阅此问题以获取更多提示: Running command-line application from PHP as specific user

答案 1 :(得分:0)

在Web服务器(如Apache)上执行的PHP根本无法执行D-Bus请求。我试了好几天没有成功。这是因为Web服务器用户(如www-data)无法通过dbus-daemon连接访问session

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