我写了一个小的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/piano
被chmod
ded 到 777。 什么给? 这是某种权限问题吗? PHP 不允许我使用 system()
命令做任何有用的事情吗?
检查文件夹权限:
stat --format '%a' /home/dave/.config/pianobar/piano
为文件夹内的所有文件设置文件夹权限:
sudo chmod -R 755 /home/dave/.config/pianobar/piano
尝试,应该工作。