시놀로지 워드프레스 소유 및 권한 설정
[시놀로지] 워드프레스 수동 설치 후 권한 문제 해결 (플러그인 에러)
증상 및 원인
시놀로지 패키지 센터를 이용하지 않고, 워드프레스 압축 파일을 직접 다운로드하여 web 폴더에 수동으로 설치하는 경우가 있다. (최신 버전을 바로 쓰거나, 멀티 사이트 구성 등을 위해)
그런데 이렇게 설치하면 치명적인 문제가 하나 발생한다. 플러그인을 설치하거나 업데이트하려고 할 때 “Installation Failed: Could not create directory” 같은 에러를 뱉으며 진행이 되지 않는 것이다.
원인: 압축을 푼 파일들의 소유 권한이 웹 서버 구동 계정인 http가 아니라, 내가 로그인해서 파일을 올린 시놀로지 접속 계정(admin 등)으로 되어 있기 때문이다. 웹 서버(Nginx/Apache)가 파일에 쓸 권한이 없으니 에러가 나는 건 당연하다.
해결 방법: SSH로 권한 일괄 변경
이 문제를 해결하려면 파일과 디렉토리의 소유자(Owner)와 권한(Permission)을 웹 서버 표준에 맞춰 변경해 줘야 한다. DSM 파일 스테이션에서 하나씩 바꾸기엔 너무 많으므로, SSH로 접속해서 명령어로 한 방에 처리하자.
1. SSH 접속 및 경로 이동
터미널(맥/리눅스)이나 Putty(윈도우)를 이용해 시놀로지에 SSH로 접속한다. 루트 권한을 얻은 뒤, 워드프레스가 설치된 경로로 이동한다. (경로는 사용자 환경마다 다를 수 있음, 보통 /volume1/web/wordpress 등)
Bash
# 루트 권한 획득 (비밀번호 입력 필요)
sudo -i
# 워드프레스 설치 경로로 이동
cd /volume1/web/wordpress
2. 소유자 및 그룹 변경 (chown)
현재 디렉토리(./)를 포함한 모든 하위 파일(-R)의 소유자와 그룹을 시놀로지 웹 서비스 계정인 http로 변경한다.
Bash
chown http:http -R ./
3. 파일/디렉토리 권한 변경 (chmod)
보안과 작동을 위해 파일과 디렉토리의 권한을 구분해서 설정해야 한다.
-
파일: 644 (소유자 읽기/쓰기, 그룹/타인 읽기)
-
디렉토리: 755 (소유자 읽기/쓰기/실행, 그룹/타인 읽기/실행)
find 명령어를 이용해 파일(-type f)과 디렉토리(-type d)를 각각 찾아 권한을 부여한다.
Bash
# 모든 파일(f)을 찾아 권한 644로 변경
find ./ -type f -exec chmod 644 {} \;
# 모든 디렉토리(d)를 찾아 권한 755로 변경
find ./ -type d -exec chmod 755 {} \;
결과 확인
위 명령어를 모두 실행한 후, 워드프레스 관리자 페이지로 돌아가 플러그인을 설치해 보자. 거짓말처럼 에러 없이 설치되고 업데이트되는 것을 확인할 수 있다.
요약: 수동 설치 시 chown http:http는 필수다.