웹마스터 팁

  서버를 이전하고, 오비이락이라고 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님께 삼사의 마음을 전합니다.