Press enter to see results or esc to cancel.

워드프레스 관련 업데이트 때마다 비밀번호를 물어보는 게 귀찮다면

워드프레스 사이트를 오래 운영하다 보면 갑자기 이상한 일들이 발생합니다. 가장 대표적인 예가 바로 플러그인이나 테마를 내려받거나 업그레이드를 할 때 ftp의 비밀번호를 물어보는 거죠.

예전엔 분명히 바로 설치하고 바로 업그레이드했는데 언젠가부터 비밀번호를 물어보는 거죠. 이런 식으로요.

뭘 설치하려고만 하면 자꾸 물어봅니다.
뭘 설치하려고만 하면 자꾸 물어봅니다. 게다가 비밀번호는 한번 넣어도 저장이 안 되서 계속 넣어야 합니다.

이런 현상이 발생하는 이유는 워드프레스가 테마나 플러그인 디렉토리에 바로 접근할 수 없어서입니다. 접근할 수 없는 이유가 여러 가지이기 때문에 이유에 대한 설명은 생략하겠습니다. 가장 흔한 이유는 기존의 워드프레스를 다른 서버로, 다른 호스팅으로 이전한 경우입니다.

이미 관리자로 로그인해서1 이런저런 것들을 관리하는데, 매번 ftp의 비밀번호까지 입력하는 게 은근히 귀찮고 번거로운 일입니다.

아래의 방법을 따라해도 한 번에 되는 사람이 있고, 한 번에 되지 않는 사람도 있을 것입니다.  대부분의 경우 아래에 예시된 방법들을 따라하다 보면 어느 순간 쨘~ 하고 될 거예요.

1. wp-config.php에 FTP 접속 정보를 기록

일단 워드프레스에서 공식적으로 안내하는 방법입니다.

만약 SSL(https)을 쓰는 분들은 이것까지 추가를 해야 합니다.

만약 시큐리티 키를 이용하는 분들은 FTP_PUBKEYFTP_PRIKEY 등도 설정해야 할 수도 있습니다.

하지만, 이렇게 비번을 파일에 직접 넣어두다니 찝찝해 할 분들이 있습니다. 게다가 이렇게 해도 안 될 때가 있습니다. 그럴 때는 다른 방법을 써야겠죠.

2. 워드프레스 디렉토리 소유자를 변경

웹서버 데몬이 실행될 때, 그리고 php를 통해 파일이나 디렉토리를 생성될 때, 웹서버의 권한으로 실행됩니다. 웹사이트를 운영하는 사람(ftp 계정)이 아니라는 거죠.

예를 들어 우분투의 경우에는 www-data의 권한으로, 다른 배포판의 리눅스는 nobody나 apache의 권한으로 실행이 됩니다. 맥에서는 _www의 권한으로 실행됩니다. 따라서, 웹서버가 새로운 플러그인이나 테마를 받아서 압축을 풀고 저장을 하려면 기존의 디렉토리의 소유주(owner)가 www-data 혹은 nobody 등이여야 합니다.

따라서, 웹서버가 www-data의 권한을 가지고 돌아간다고 한다면, 서버에 콘솔로 접속해 다음과 같은 명령어를 내리면 됩니다.

(여기서 public_html/wp-content/ 는 설치한 워드프레스 안의 정해진 디렉토리입니다.)

이렇게 하면 다 좋긴 한데, 단점이 있습니다. 이제 기존에 이용하던 ftp 계정으로 파일을 직접 업로드하거나 수정/삭제하는 게 안 될 수 있습니다. 따라서, ftp 계정을 그룹에 추가해야 합니다.

(여기서 ftpuser는 ftp로 접속하는 계정 이름입니다.)

이 방법 역시 워드프레스를 설치한 디렉토리가 /var/www 같은 곳이라면 보안 위험이 있을 수 있으니 권한을 770 으로 주거나 아니면 제3의 그룹을 만들어서 www-data와 ftpuser를 제3의 그룹에 포함시키거나 하는 방식으로 우회해야 할 수도 있습니다.

3. FS_METHOD를 이용

wp-config.php 파일을 열어서 그 안에 다음과 같은 구문을 추가하세요.

이 방식은 FS_METHOD를 써서 파일시스템에 접근하는 방식을 강제하는 겁니다. FS_METHOD 를 direct로 설정하면, 워드프레스가 wp_content/wp_content/launguages에 쓰기 권한이 있는지, 이 파일이 리눅스 이용자의 권한에 속하는지를 확인한 후 진행을 합니다.

마무리

이 외에도 모든 폴더를 다 777로 만들어버리는 방법도 있지만, 이건 별로 추천을 하지 않습니다. 그리고, 이렇게 뭔가를 편리하게 하는 것이 보안과 연결되는 점이 있다면, 대체로 보안을 우선 생각하는 것이 좋습니다.2

어쨌든 단순하면서도 관리자 권한을 가지고 들여다 보지 않으면 정확한 이유를 알기 까다로운 문제 중 하나입니다.


  1. 관리자 비밀번호는 복잡하게 설정해두셨죠? (^^)

  2. 물론 호스팅을 받고 있어서 해볼 수 있는 게 별로 없는 분들이라면 선택의 여지가 없겠죠.