Пользователь www-data не может писать в fifo, chmodded 777

Я написал небольшой скрипт PHP, который я хотел бы вызвать из Apache. Я собираюсь использовать это для управления пианобаром.

Если я выполняю скрипт напрямую из корневого терминала, он работает просто отлично, но если я пытаюсь запустить скрипт через веб-сервер, ничего не происходит.

Созданный вами 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» и паузы pianobar. Если я выполняю это из терминала под своим собственным именем пользователя, он возвращает «dave», и pianobar все равно останавливается.

The fifo, который я создал /home/dave/.config/pianobar/piano было chmodдед 777. Что дает? Это проблема с разрешениями как-то? Разве PHP не позволяет мне делать что-нибудь полезное с system() команда?

0

Решение

Проверьте права доступа к папке:

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

Установите разрешения для всех файлов внутри папки:

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

Попробуй, должно сработать.

0

Другие решения

Других решений пока нет …