2014-12-22 2 views
0

Apache에서 호출하고 싶은 PHP 스크립트를 작성했습니다. 나는 이것을 사용하여 피아 노바를 제어하려고합니다.www 데이터 사용자가 fifo에 쓸 수 없다, chmodded 777

루트 터미널에서 스크립트를 직접 실행하면 정상적으로 작동하지만 웹 서버를 통해 스크립트를 실행하려고하면 아무 것도 작동하지 않습니다. 내가 브라우저에서이 스크립트를 실행하면

내가 만든 FIFO가 /home/dave/.config/pianobar/piano이 같은 PHP 스크립트 모양의 관련 라인에있다

...

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

echo system('whoami'); 
?> 

Apache를 통해 안전 모드가 비활성화되어 있고 system() 명령이 작동하지만, pianobar가 계속 재생되고 있음을 알리는 'www-data www-data'가 표시됩니다. 루트 터미널에서 이것을 실행하면 '루트'로 돌아가고 피아 노바는 멈 춥니 다. 내 자신의 사용자 이름으로 터미널에서 이것을 실행하면 '데이브 (dave)'를 되풀이하며 피아 노바는 여전히 멈 춥니 다.

내가 만든 /home/dave/.config/pianobar/piano은이고 777은 무엇입니까? 이 권한 문제가 어떻게 든 발생합니까? PHP가 system() 명령과 함께 유용한 것을 할 수 없습니까?

답변

0

확인 폴더 권한 : 폴더의 내부의 모든 파일에 대한

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

설정 폴더 권한 :

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

시도 작동합니다.

+0

주사위가 없습니다. 방금 시도 했어. 터미널에서 스크립트를 실행해도 제대로 작동하지만 Apache에서 실행하면 안됩니다. – Dave

+0

"exec()"로 테스트 해 보셨습니까? 로컬 Xampp 서버 시스템에서 테스트를 마쳤습니다 ("stat --format '% a'/opt/lampp/htdocs"). "\ n"; 시스템 ('whoami'); 그리고 그것은 잘 작동합니다. 나는 허가 문제라고 생각한다. – Eugen

관련 문제