【问题标题】:Accessing DBus with php through browser通过浏览器使用php访问DBus
【发布时间】:2012-07-04 06:53:55
【问题描述】:

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

我是否必须做一些事情才能从浏览器访问 DBus?

【问题讨论】:

    标签: php browser dbus


    【解决方案1】:

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

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

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

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

    因此,您需要更改您的网络服务器正在运行的用户的权限,以允许它运行 DBus 命令。具体操作方式取决于您的操作系统。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        • 1970-01-01
        • 2020-09-10
        • 2015-06-27
        • 2020-03-27
        相关资源
        最近更新 更多