웹마스터 팁
서버 이전하고 놓치기 쉬운 점(files의 소유권과 root의 퍼미션)
2010.02.02 10:58
서버를 이전하고, 오비이락이라고 XE core를 업데이트했는데, 아래와 같은 메세지가 계속 뜨면서 각종 모듈이나 애드온이 설치되지 않고, 게시판, 페이지 등도 생성되지 않았습니다. XEcore의 문제인지, 서버이전의 문제인지 파악할 수 없더군요.
Warning: dir(/www/***.com/) [function.dir]: failed to open dir: Permission denied in /www/***.com/classes/file/FileHandler.class.php on line 171
Fatal error: Call to a member function read() on a non-object in /www/***.com/classes/file/FileHandler.class.php on line 172
팁 란에 서버이전과 관련된 여러 문서를 찾아봐도 뽀족한 답이 없어서 XE core 프로젝트에 문의했었는데요, 하늘03님의 도움을 받아보니, 서버 이전하면서 놓치기 쉬운 두 가지 땜에 문제가 났더군요. 아래는 하늘03님과 쪽지 주고받았던 내용인데요, 혹 서버 이전하시는 분들은 꼭 참고하세요^^
1. files의 소유권 문제
보통 처음 XE를 설치하고 나면 files의 소유권이 nobody로
되는데요, 서버이전을 하면서 files를 .tgz로 압축했다가 풀어 놓으니 소유권이 사용자에게 주어졌더군요. 이로 인해 퍼미션 에러가
계속 났던 것입니다. 게다가 레이아웃을 변경해도 저장되지 않는 문제가 있었는데 이 둘에 대한 대책은 아래와
같았습니다.
웹에서 접근하려면 nobody권한이 write를 할 수 있어야 하는데, files아래의 대부분의 폴더와 파일들의 owner가 사용자(제 경우엔 simdoly)로 되어있기 때문에 웹에서 파일을 쓰려다가 에러가 나는 경우가 많은 것 같습니다.호스팅 업체에 요청하여서 files아래의 owner를 nobody로 바꿔달라고 요청해야 합니다.
레이아웃이 저장되지 않아 애를 먹었는데요, 이 경우 faceOff 디렉토리의 퍼미션을 777로 바꿔서 해결해 주었습니다.
2. root의 권한(퍼미션)문제
두번째는 root의 권한 문제입니다. root의 권한은 미처 생각하지도 못했는데, root에 XE를 직접 설치한 경우 꼭 확인해 봐야 할 것 같습니다.
전체 root directory가 744로 되어있었는데요, Apache에서 접근하려면 755 이상이어야 하는 것 같습니다. 755로 접근했더니 잘 돌아갑니다. :)
chmod 755 .
이렇게 files의 소유권과 root의 퍼미션을 조정하고 나니 아무런 문제가 없었습니다. 혹 서버 이전하시는 분들은 꼭 참고하시길.
* 도움을 주신 하늘03님께 삼사의 마음을 전합니다.
댓글 4
-
현의느낌
2010.02.02 11:15
-
영구만세
2010.02.02 15:17
아항, 그렇군요. 서버에 따라 달라질 수도 있겠군요.
"현의느낌"님처럼 좋은 추가 설명이 있으면 같은 경우에 어려움을 겪는 분들이 좀 더 쉽게 문제를 해결할 수 있겠죠^^
모두 같지는 않을 것 같구요, 다만 서버를 이전했는데, 위와 같은 에러 메세지가 뜰 때 한번쯤 참고하세요.
-
춘(春)™
2010.07.12 21:53
같은 오류로 인해 한동안 고생하다가~~ 이글을 보구 한번에 해결 했습니다..
오류 메세지가 똑같았거든요~~ 휴~~ 하시름 놓았습니다..
이런글이 저같은 사람에게 큰 도움이 됩니다.. ^^ 감사합니다..
-
maxtabby
2010.11.19 00:28
와아 단비와 같은 정보로, 서버 이전하고 끙끙 앓고 있던 문제를 해결하였습니다.
정말 감사합니다..
제목 | 글쓴이 | 날짜 |
---|---|---|
타임라인 모듈 회원 작성글/저장글 버그 오류 수정 [7] | socialskyo | 2015.03.20 |
CentOS 에서 iptables 편집후 실행이 안될때 | 마루디자인 | 2015.03.17 |
에디터에서 URL 클릭시 "http://" 삭제하는 방법 [2] | 콜롬보. | 2015.03.13 |
회원정보보기를 팝업으로 띄우는 방법 | 콜롬보. | 2015.03.13 |
input number 숫자만 입력받기 아이폰 예외처리 | wnrtnsdl2 | 2015.03.12 |
누리고 Ncart V1.6.1 주문페이지에서 총구매금액에 배송비가 선결제, 착불과 상관없이 무조건 포함되어 표시되는 문제 수정방법 [2] | XE템플릿 | 2015.03.12 |
아마존 상품API 소스中 상품정보 가져오는 소스 | 키스투엑스이 | 2015.03.10 |
스케치북게시판 최신버전에 네이트온 /마이피플/플립보드 추가하는 방법 [4] | 가을풍경 | 2015.03.09 |
싸이트 도메인 주소 뒤에 XE 디렉도리 없애기 [2] | 리차드조 | 2015.03.09 |
인증메일이 안올경우 - 팁이라고 해야할지...소개라고 해야할짐 모르지만 [2] | socialskyo | 2015.03.07 |
로고 만들기 귀찮을때^^* [1] | 수백 | 2015.03.06 |
css table generator | Ansi™ | 2015.03.04 |
주소를 지도링크하기 | 마루디자인 | 2015.03.04 |
Market 모듈에서 대표사진 필수 없애기 [3] | garnecia | 2015.03.03 |
XE 로그인을 아이디로 바꾸려는데 회원설정에서 회원가입 탭이 안보일때. | 불금 | 2015.02.27 |
kakao Javascript SDK logout | 컴박살 | 2015.02.25 |
압축 풀어 설치했던 XE를 git으로 변환하기 [6] | 기진곰 | 2015.02.25 |
htaccess 보안 팁 | 포럼위트 | 2015.02.24 |
특정 게시판에서는 스팸 ip 동작 안하게 하기 [4] | Kxo | 2015.02.22 |
스케치북 최신버전에서 미리 덧글 입력해두기 [5] | LI-NA | 2015.02.18 |
추가로 설명을 달겠습니다. ^^
1.
cafe24의 경우는 files 등 아파치 서버가 저장하는 파일의 소유자가 계정아이디로 됩니다.
원래 그렇게 되도록 서버 설정이 되어있는 것이니 바꿀 필요는 없습니다. ^^;
그리고 서버마다 아파치의 사용자 계정아이디가 다를 수 있습니다.
nobody, www-data, apache 등..
2.
계정id의 홈디렉토리 위치를 말씀하신 것 같네요.
ssh로 로그인한 직후 위치에서 chmod 755 . 을 하면 되겠습니다.