개발 Q&A

제목 파일생성 관련 질문...
글쓴이 열공모드 작성시각 2016/07/19 17:36:12
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14511   RSS

<?php

$myfile = fopen("/home/php/public/abc.txt", "w");

fwrite($myfile,'가나다');

fclose($myfile);?>

 

이라는 테스트 코드를 서버에서 직접 php를 실행 시킬 경우 파일이 생성이 됩니다. 

하지만 브라우저로 php 파일에 접속할 경우 파일이 생기지 않더라고요 

그거에 관련된 로그를 확인해보니 권한 문제라고 나오더라고요

현재 서버는 CentOS7 버전이고 

웹루트 전체에 777 권한과 유저와

그룹을 apache:apache 으로 주어진 상태 입니다.

제가 뺴먹은 설정이 있을까요?? 

 

 다음글 apache2 루트 설정관련 질문입니다. (1)
 이전글 타 지역간 DB clustering & Repl...

댓글

kaido / 2016/07/19 17:39:36 / 추천 0

/home/php/public/ 

여기가 웹 루트 인가요?

해당 정보는 /home/php/public/ 를 의미하나요?

 

chmod -R 775 /home/php/public/ 
chown -R root.apache /home/php/public/
ls -al /home/php/public/ 

순서대로 해보시고 다시 확인 해보세요.

 

열공모드 / 2016/07/19 17:48:12 / 추천 0

//kaido    

/home/php/public/  여기가 웹 루트가 맞습니다. 

순서대로 다 적용해서 실행해도 브라우저를 통해서는 파일이 생성이 안되네요 

답변 감사합니다. 

/ 2016/07/19 18:16:58 / 추천 0
@열공모드 관련 로그와 에러메시지 좀 볼 수 있을까요?
변종원(웅파) / 2016/07/19 18:25:13 / 추천 0

public 상위 디렉토리의 접근 권한도 봐야합니다.

웹에서 실행하면 apache라는 유저로 실행이 되는데 권한이 없어서 그런거거든요.

열공모드 / 2016/07/19 18:30:33 / 추천 0

자문자답하겠습니다. 

centos 7 에서 selinux 에서 많은 변경이 있어서 

 httpd_sys_content_t context 를 사용 해도 파일 쓰기가 안됩니다. 

chcon -R -t httpd_sys_rw_content_t 디렉토리명 

이런식으로 주어져야 기능이 동작합니다. 

자세한 사항은 밑에 링크 참조 

https://www.lesstif.com/pages/viewpage.action?pageId=24445086