웹마스터 팁

https://github.com/xpressengine/xe-core/issues/1605​

현재 files 아래에 생성되는 모든 파일의 퍼미션은 그 파일의 소유자/그룹이 모두 www-data 혹은 그에 준하는 사용자입니다.
따라서 이 아래의 파일을 수정해주려면 https://www.xpressengine.com/qna/21638521 에 언급되어있는 것처럼 간단한 php 스크립트를 만들어서 해결해야 합니다.

https://www.xpressengine.com/devlog/22674444 같은 공식 문서는 아예 호스팅 업체에 문의하라는 일반 사용자 입장에서 조금 황당한 설명이 있기도 합니다.

이러한 문제를 해결하려면 유닉스에 익숙하신 사용자라면 files 디렉토리 퍼미션에 sgid 퍼미션을 주면 된다는 사실을 알고계실것입니다. 즉, files 디렉토리 아래에 생성되는 모든 파일의 그룹소유주가, 자신의 그룹 소유주와 같게 됩니다.

즉 자신의 유저/그룹에 각각 foobar:hello이고 files/ 디렉토리에 sgid 퍼미션 비트가 설정되어 있으면,files/ 아래에 www-data아파치 유저에 의해서 생성되는 files/cache/page/foobar.php 파일의 소유주:그룹www-data:www-data가 아닌 www-data:hello가 됩니다.

따라서 소유주는 files 아래의 모든 파일을 손쉽게 삭제하여 관리할 수 있으며, 특정 템플리트 캐시를 고쳐서 간단히 테스트해볼 수 있는 방법을 써먹을 수도 있어서 호스팅 관리자를 덜 괴롭히게 할 것입니다.

디렉토리에 SGID 비트를 설정하려면 chmod 2777 files라고 하면 됩니다.
최초 XE를 설치할 때에 XE 최상위 디렉토리의 퍼미션을 777이 아닌 2777라고 해야 합니다.

또한 XE가 이미 설치되어 있는 경우에는 다음과 같은 명령으로 모든 디렉토리에 대해 sgid 비트를 세팅할 수 있습니다. (files 포함. 파일 소유주의 그룹이 mygroup인 경우)

$ sudo find files -type d |xargs chmod 2777
$ sudo find files -type d |xargs chgrp mygroup

도쿠위키에서 설정하는 방법
https://www.dokuwiki.org/install:permissions#tipusing_the_setgid_bit


현재 XE 메뉴얼 페이지에서는 files 디렉토리를 만든 후에 707 퍼미션으로 만들라고 되어있는데,

  • 현재 files 디렉토리는 자동 생성 가능함.
  • 자동 생성될 경우에 퍼미션은 777임 메뉴얼의 설명 707과 다름 (디렉토리에 그룹 퍼미션에 0을 주는 것은 별 의미 없음. 다른 사용자가 7이므로 디렉토리 리스팅이 가능.)
  • files 디렉토리를 미리 만들 경우에는
    • 관리자 레벨인 경우에는 files 디렉토리 퍼미션 777  770 권장
    • 일반 유저인 경우에는 files 디렉토리 퍼미션 2777 권장.

※주의

2777 퍼미션을 주고 설치를 직접 해본 결과 umask 기본 설정이 022로 되어있는 관계로 2777을 주어도 사용자가 파일을 쓸 수 없음이 확인되었습니다. 이 부분은 XE를 직접 패치하여 (umask('000')을 넣고, chmod는 제거해서 해결해야 하는 문제입니다.

이 문제는 https://github.com/xpressengine/xe-core/pull/1616 패치로 해결할 수 있습니다.

제목 글쓴이 날짜
XE 서버 이전할 때 통채로 압축해서 옮기는 완벽한 방법-로그인, 첨부파일문제 해결 [5] 웰빙샵 지영 2009.09.15
손님이 비밀글 작성한 직후에도 글 보려면 반드시 비밀번호 넣게 하는 방법 [1] sejin7940 2014.06.18
php로 간단하게 신규쪽지(읽지않은쪽지) 표시해주기 [2] 졸라맨 2014.07.23
XE 1.8 대응 apache 2.2 / php 5.5 / MariaDB 10 설치 [11] 간장게장같은남자 2015.04.19
php 5.6 이상에서 사이트 메뉴 편집 등 오류 발생시 YJSoft 2015.08.12
위젯수정시 _getContent method is not exists 에러 뜨는 문제 [2] 황비 2014.11.14
[XE수정] 관리자페이지 회원리스트를 내맘대로 브레인630 2015.08.11
[XE수정] '새버전을 업데이트...'이 부분이 눈에 거슬리면... [1] 브레인630 2015.08.11
CSS 및 JAVASCRIPT 소스 효과적으로 숨기기. [9] LaughLikeCrazy 2007.06.16
태그 (Tag) 관련글 보여줄 때 상단에 선택된 태그 보여주는 방법 [1] calko 2015.08.08
DB에서 직접 시퀀스 생성하기 [3] 기진곰 2015.07.18
FTP로 폴더가 삭제가 안될때~! [6] file 웹엔진 2012.01.30
사이트접속시 제로보드XE폴더로 이동되게 하는 쉬운방법 [8] 부찬™ 2007.08.17
member 모듈 메일인증을 사용할때 모바일 기본스킨에서 회원가입 후 이메일 발송 안내 띄우기 [2] file 후하니 2015.08.01
새로고침 없는 실시간 웹서비스를 위한 기술과 간략한 역사(?) [1] onTrust 2015.07.27
Startssl 설치과정!! [83] file 제이엔지 2012.08.13
홈페이지 제작 시 점검사항 15가지 [1] 유래유거 2015.06.29
[실험팁] XE 고용량/큰사진 썸네일 깨지는 것 해결 socialskyo 2015.07.20
레이아웃 메뉴에서 메뉴옆에 글수 표시하기 반걸 2015.07.20
config 파일을 일반 유저가 쓸 수 없는 문제 해결법 [15] wkp 2015.07.09