워드프레스 디렉토리 및 파일 소유자 및 권한 설정

이 과정은 워드프레스 및 테마, 플러그인 등의 자동 업데이트 기능, 워드프레스 관리자 페이지에서 테마 및 플러그인 설치, 그리고 보안을 위해 필요한 과정이다.

터미널 SSH 로 접속 후 워드프레스가 설치되어 있는 디렉토리 (워드프레스의 루트 디렉토리)로 이동한다. 그리고 아래와 같이 명령어를 실행하여 소유자, 디렉토리 권한, 파일 권한을 변경해 준다.

# chown http:http -R ./

현재 폴더 내의 모든 파일 및 폴더, 하위 폴더 및 하위 폴더 내의 모든 파일의 소유자명와 그룹명을 변경한다. 웹서버 설정에 따라 다르겠지만, 여기서는 시놀로지 NAS의 Nginx 기준이기 때문에 위와 같이 소유자명과 그룹명을 모두 http로 설정하면 된다.

# find ./ -type f -exec chmod 644 {} \;
# find ./ -type d -exec chmod 755 {} \;

현재 폴더 이하 모든 파일(파일만)에 대한 권한을 644 (모두 읽기, 소유자만 쓰기)로 변경한다.
현재 폴더 이하 모든 폴더(폴더만)에 대한 권한을 755 (모두 읽고 실행, 소유자만 쓰기)로 변경한다.

# chmod 600 ./wp-config.php

wp-config.php 파일에 대한 권한을 600 (소유자만 읽고 쓰기)로 변경한다.

보안을 위해 wp-config.php 에 추가해야할 사항

관리자로 로그인을 하면 테마 편집기나 플러그인 편집기 기능이 기본적으로 활성화 되어 있다. 혹시나 해커가 관리자로 로그인에 성공했을 경우 이 기능을 이용하여 악성 코드를 심어 놓고 실행할 수 있다. 위험한 기능이다;; 따라서 관리자로 로그인을 했더라도 PHP 코드를 수정할 수 없도록 다음과 같은 코드를 추가하여 테마/플러그인 기능을 비활성화 시키는 것이 좋다.

define(‘DISALLOW_FILE_EDIT’, true);

더불어 wp-config.php 파일을 연 김에 아래의 코드도 같이 추가해 주면 편하다. 테마, 플러그인 설치 시나 워드프레스 업데이트 시에 FTP, FTPS, SSH2 등의 사용자 및 패스워드를 묻는 창이 뜨지 않게 된다.

define(‘FS_METHOD’, ‘direct’);

(서버 이전 준비 중이기 때문에 생각 나는대로 막 써놓는 중. 서버 이전 후 워드프레스 테마도 바꿀 예정이라 추후 내용도 다듬고 테마에 맞게 수정할 예정)