나는 아파치 2와 우분투 16.04와 php7을 가지고있다. PHP로 일부 로그 파일을 읽고 인쇄하지 않을 것입니다. 따라서 간단합니다.PHP - readfile() 스트림을 열지 못했습니다 : 권한이 거부되었습니다 -하지만 그 이유는 무엇입니까?
readfile("/var/log/apache2/access.log");
하지만 작동하지 않습니다. 나는이 오류를 얻을 :
Warning: readfile(/var/log/apache2/access.log): failed to open stream: Permission denied in /var/www/test.php on line 2
내가 바로 사용 권한을 설정 한 꽤 확신을, 아파치와 PHP는 www가 데이터로 실행, 그래서 나는 그룹 'ADM'와 '에 사용자 www가 데이터를 추가 syslog '를 사용합니다.이 그룹은 전체 파일 경로와 파일 자체에 대한 읽기 권한을 가지고 있기 때문입니다. 권한은 기본적으로 640이지만 647로 설정 한 경우에만 파일이 php/apache에 대해 읽을 수 있습니다. 644 또는 646이 충분하지 않습니다.
왜 그럴까요? 아파치 가상 호스트 설정에서 뭔가를 변경해야합니까?
추가 :이 이후
drw-r----- 2 root adm 4096 Oct 25 11:07 ./
drwxr-xr-x 9 root syslog 4096 Oct 25 10:39 ../
-rw-r----- 1 root adm 47861 Oct 25 14:01 access.log
-rw-r----- 1 root adm 12014 Oct 25 14:01 error.log
-rw-r----- 1 root adm 0 Oct 25 10:40 other_vhosts_access.log
질문에 이것을 추가하십시오 : cd/var/log/apache2; ls -alp – Nic3500
@Tenbo : 그는 이미 647이 좋다고 말했습니다. 그의 파일을 읽으려면 o = rwx가 필요해 보입니다. 이상하게 보입니다. 그래서 ls -alp를/var/log/apache2에 게시하도록 요청한 것입니다. – Nic3500
@Nic이 내 시작 게시물에 추가했습니다 – lemon