【问题标题】:www-data user not able to write to fifo, chmodded 777www-data 用户无法写入 fifo,chmodded 777
【发布时间】:2015-02-20 23:57:17
【问题描述】:

我写了一个小的 PHP 脚本,我想从 Apache 调用它。我打算用它来控制钢琴键。

如果我直接从根终端执行脚本,它可以正常工作,但如果我尝试通过 Web 服务器运行脚本,则没有。

我创建的 fifo 位于 /home/dave/.config/pianobar/piano,PHP 脚本中的相关行如下所示...

<?php
system("echo -n 'p' > /home/dave/.config/pianobar/piano"); //'p' pauses pianobar.

echo system('whoami');
?>

如果我通过 Apache 在浏览器中执行此脚本,它会回显“www-data www-data”,告诉我安全模式已禁用,system() 命令正在工作,但钢琴键仍在播放。如果我从根终端运行它,它会回显“根”并且钢琴条暂停。如果我使用自己的用户名从终端执行此操作,它会回显“dave”,并且钢琴键仍会暂停。

我创建的先进先出 /home/dave/.config/pianobar/pianochmodded 到 777。什么给出?这是某种权限问题吗? PHP 不允许我使用system() 命令做任何有用的事情吗?

【问题讨论】:

    标签: php apache permissions system chmod


    【解决方案1】:

    检查文件夹权限:

    stat --format '%a' /home/dave/.config/pianobar/piano
    

    为文件夹内的所有文件设置文件夹权限:

    sudo chmod -R 755 /home/dave/.config/pianobar/piano
    

    试试吧,应该可以的。

    【讨论】:

    • 没有骰子。刚试过。从终端执行脚本仍然可以正常工作,但当我从 Apache 执行时却不行。
    • 你用“exec()”测试过吗?我已经在我的本地 Xampp 服务器系统上进行了测试("stat --format '%a' /opt/lampp/htdocs")。"\n";系统('whoami');它工作正常。我认为这是一个权限问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 2011-09-16
    • 2015-08-11
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多