www-data用户无法写入FIFO,chmodded 777


www-data user not able to write to fifo, chmodded 777

我写了一个小的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()命令正在工作,但钢琴酒吧仍在继续播放。 如果我从根终端运行它,它会回显"root"并且钢琴条暂停。 如果我以自己的用户名从终端执行此操作,它会回显"dave",钢琴条仍然暂停。

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

检查文件夹权限:

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

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

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

尝试,应该工作。