워드프레스 권한 문제들(업데이트 에러, 플러그인 업데이트 에러) 해결책

워드프레스는 블로그나 웹사이트를 운영하는데 무척 좋은 솔루션이라고 생각합니다. 약간의 지식(?)만 있으면 웹사이트를 만들고 운영을 할 수 있습니다. 유지보수의 측면에서 보자면 유지는 어느정도 할 수 있습니다. 하지만 보수쪽으로 가면 이게 만만치 않습니다.

권한(Permission)문제들

EP1 : 플러그인 업데이트 FTP 접속창 뜨는 오류

어느날 워드프레스 관리 페이지에 들어가서 플러그인을 업데이트 하려고 하는데 갑자기 FTP 접속하는 창이 뜹니다. 처음보는 창이고 아이디, 패스워드 입력하는 창이 나오는데 정보를 알고 있는 것이 없습니다. 관리자 아이디와 비밀번호를 넣어봐도 반응이 없습니다.

관리자에게 연락하라고 하는데 자신이 관리자입니다. 호스팅 관리자에게 연락하라고 하는데 호스팅 업체 정보는 전임 담당자에게 인수인계를 받지 못했습니다.(제가 겪었던 극단적인 예일 뿐입니다) 알려진 해결책 두 가지를 시도해 봅니다.

  1. 인터넷을 뒤지다가 /wp-content/plugins 폴더에 충분한 권한 있는지 확인하라는 글을 봅니다. 파일질라로 접속해서 권한을 주는 법을 배우고 잘 적용했는데도 여전히 안 됩니다.
  2. 다른 곳을 살펴보니 /wp-config.php 에 코드 한 줄을 추가해 줘야 한다고 합니다. SSH로 접근해서 편집기를 이용해서 /wp-config.php 파일 맨 아래에 코드를 추가해 줍니다.
  3. 다른 곳을 살펴보니 /wp-config.php 에 코드 한 줄을 추가해 줘야 한다고 합니다. SSH로 접근해서 편집기를 이용해서 /wp-config.php 파일 맨 아래에 코드를 추가해 줍니다.
$ sudo vi wp-config.php
define('FS_METHOD', 'direct');

이렇게 vi 편집기를 사용해서 파일을 열고 저장하는 방법을 배웁니다. ㅠ.ㅠ

EP2 : 워드프레스 업데이트 설치 안 될때 (파일 디렉토리를 만들 수 없습니다)

또 한 번은 워드프레스를 업데이트 하라고 메시지가 나왔습니다. 워드프레스는 가장 많은 점유율을 가지고 있는 CMS 솔루션이라고 합니다. 사용하는 사람이 많고 정보도 많습니다. 하지만 많은 사람들이 쓰기 때문에 보안에 취약한 부분이 있습니다.

개인적으로 워드프레스로 사이트를 운영하신다면 SSH를 이용한 기본적인 콘솔 사용법은 익혀 놓는 것이 좋다고 생각합니다. 파일을 보거나 수정하거나 삭제하는 등의 아주 기본적인 사용법 정도면 됩니다. 어쩔 수 없이 vi 에디터 사용법도 조금 알아야 합니다.

암튼 다시 원래 이야기로 돌아가서 워드프레스 업데이트 메시지가 나왔는데 업데이트를 하라고 했더니 업데이트가 안 됩니다. /wp-content/upgrade/에 파일 압축을 풀지 못했다는 에러 메시지가 나옵니다. 역시 폴더 권한 문제가 나오고 인터넷에서 찾을 수 있는 일반적인 해결책들이 나옵니다.

누구의 소유인가?

제목이 조금 이상할 수 있는데요. 위에 제시된 문제들을 해결하는데 소개한 방법이나 링크된 자료들을 통해서 문제를 해결하셨다면 다행입니다. 하지만 가장 중요하고 맨 먼저 확인해야 하는 것은 웹서비스를 관장하는 웹서버의 소유권이 누구에게 있냐는 것이 중요하다는 말입니다.

서버 콘솔 명령어 중에 아래와 같은 명령어가 있습니다. (우분투에서 nginx를 웹서버로 사용하는 경우입니다) 만약 apache를 사용하신다면 맨 뒤에 httpd 사용해 보시기 바랍니다.

$ sudo ps -ef | grep nginx
ps -ef | grep nginx 결과

아마도 nginx를 소유하고 있는 아이디가 www-data 라고 나올 겁니다. nginx를 사용한다면 일반적입니다. 하지만 어떤 이유로 워드프레스를 설치한 폴더의 소유권이 다른 아이디로 설정이 된 상태라면 위에 발생한 에러가 지속적으로 발생할 수 있습니다. 그리고 조치를 취해도 해결이 되지 않을 가능성이 높습니다.

ps -ef | grep httpd 결과

그만큼 폴더의 소유권은 중요합니다. 그럼 잘못된 폴더의 소유권을 바꾸려면 아래와 같이 해주시면 됩니다.

$ sudo chown -R www-data:www-data /home/wordpress/public

위 명령어는 /home/wordpress/public 폴더 아래 위치한 모든 파일과 폴더의 소유권을 www-data 라는 사용자로 지정하라는 명령어입니다.

public 폴더의 권한이 변경된 모습

원래 폴더의 소유권은 forge라는 사용자에게 있었습니다. 이제 모든 업데이트 에러와 플러그인 업데이트 에러가 해결됐습니다. 이제 폴더 권한이나 소유권때문에 헷갈릴 일은 없었으면 좋겠습니다. 현재 운영중인 서버는 laravel forge 서비스를 이용해서 호스팅을 하고 있습니다.

함께 읽으면 좋은 글들