기술집/WEB관련

[PHP] mkdir 디렉토리 권한 0777 안먹힌다??

삽돌이 2021. 12. 11. 21:53
728x90

 

요번에 일하면서 애먹은게 한두개가 아닌데,

그래도 나름 간단하면서 쓰기 편하게 있어 기회다싶어 올립니다 ㅎㅎㅎ

 

관리자페이지에서 FTP UPLOAD로 이미지 파일을 올리려는데..

뭔가 계속 실패한다.

첨에는 크롬과 엣지 두군데서 다른아이디로 하고있는데

엣지에서만 계속 실패해서 원인찾기가 미궁에 빠졌습니다.

 

프론트에서 jquery로 동작하는게 문제라면.. 

엣지가 문제가 될수있지만 formdata도 되는데.. 왜 크롬에서는 되고 엣지에서는 안되는가??

 

한참을 찾다가 하나하나 출력하면서 해 봤습니다.

그 원인은 FTP upload 부분.

엣지가 관여할수있나?? php라서 서버에서 동작하는데???

 

 

곰곰히 생각해보니... 뭔가 권한에 문제가 있을수도 있다!!!

그래서 디렉토리를 보니 전부 권한이 755 로 되어있었습니다.

 

 

아니 왜???

 

나 만들때 0777 로 권한설정했는데??

" ' 이런걸로 감싸지도않고..

그래서 테스트를 해 봤습니다.

 

 

 

test/test 경로 잡아놓고, 디렉토리를 만듭니다.

처음에는 없으니 당연히

 

mkdir($mkpath, 0777) 

 

이걸로 먹힙니다.

자, 과연 0777 권한으로 먹히는지 확인 해 보겠습니다.

 

 

 

우선 test 로 들어갑니다.

그리고 브라우저에서 해당 파일을 실행합니다.

 

 

 

is_dir로 먼저 검색.

없으니까, 만들었습니다.

0777 권한.

들어갔을까?

 

 

 

택도없습니다.

저거 테스트 한날 검색을 해 봐도...

 

mkdir 사용시 권한을 " ' 이런걸로 감싸지 말고 그냥 0777 이라고 줘야 먹힌다는 

설명들이 많이 있습니다.

그런데 실상으로는 먹히고 있지 않습니다...

php 버전문제일까요? 

 

그럼 다시 한번 실행해서 chmod 를 먹여보겠습니다.

 

 

 

is_dir로 검색시 디렉토리가 있으니 변경!

결과는?

 

 

 

오우... 777로 들어갔습니다.

 

그렇다는건...

Linux 버전인지  php 버전인지는 모르겠지만

mkdir 사용시 755로 들어가면 만든다음에 chmod를 사용해서 777로 바꿔줘야한다는걸 알았습니다.

 

당연한 이야기지만...

바꾸고나서는 이미지 잘 올라갔습니다.

하긴 777 인데 안올라가는게 이상하지.. ㅎㅎㅎㅎ

 

 

아무튼. 또 하나 배워갑니다.

 

 

 

728x90