【问题标题】:Reading data from /dev/tty port in PHP application fails to error reading在 PHP 应用程序中从 /dev/tty 端口读取数据无法读取错误
【发布时间】:2013-09-28 20:46:42
【问题描述】:

我有一个连接到 tty 端口的 USB IR 模块,我可以从/向它读取/写入数据。

现在我正在尝试运行一个可以从该端口读取数据的 PHP 应用程序,但由于某种原因,我在 Apache 上的 PHP 脚本似乎无法读取串行端口。我收到投诉“访问错误” 用户(www-data)有权访问拨号组(在 /etc/group 中):

...
dialout:x:20:jlumme,www-data
...

如果我切换到 www-data 用户 (su www-data),我可以从它所在的同一文件夹(与 PHP 脚本相同的文件夹)成功运行该程序。 对 tty 的访问权限也应该没问题:

>ls -l /dev/tty
...
crw-rw---- 1 root dialout 166, 0 2012-05-03 19:10 ttyACM0
...

我不知道该尝试什么..

【问题讨论】:

    标签: php apache serial-port tty infrared


    【解决方案1】:

    试试:

    <?php
    system('whoami');
    ?>
    

    查看脚本是否作为 www-data 运行。

    【讨论】:

    • 您好,谢谢您的回复。这确实是我第一次发现运行 Apache 的用户的方式。抱歉,我应该在 OP 中对此更清楚。只是为了看看,我还为所有(a + r)设置了读取权限,但问题似乎并没有消失..
    【解决方案2】:

    看起来我所要做的就是重新启动 linux 板,现在它工作正常。 我不确定之前出了什么问题,可能重新启动 Apache 就可以了。

    无论如何,只要确保正确的用户权限可以访问 /dev/tty 似乎就是答案!

    【讨论】:

    • 我知道这是超级旧的,但是在将 www-data 添加到拨出组后重新启动 apache 对我有用:gpasswd -a www-data dialoutservice apache2 restart
    猜你喜欢
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多