서버/AWS (Amazon Web Services)

워드프레스 Unable to create directory wp-content/uploads ... 에러 해결 방안 (아마존 라이트세일, 아마존 리눅스)

날개 2017. 11. 6. 23:27

먼저, 이 글은 이 블로그에 게제되어 있는, "Amazon Lightsail 여러개의 워드프레스 사이트 설치" 연재글에 따라 아마존 리눅스에 워드프레스를 설치한 경우의 해결 방법임을 미리 알려 드립니다.


물론, 그렇지 않다고 하더라도 해결 방법에 있어서의 틀은 비슷할테니 참고하면 되겠습니다.




워드프레스를 처음 설치하고 관리자 페이지에서 플러그인이나 테마등을 다운로드 받으려고 하면,


"Unable to create directory wp-content/uploads/.... Is its parent directory writable by the server?"


이와 같은 에러 메시지를 보여주며 실패하는 경우가 있습니다.


이런 경우에 대해 구글에서 검색해 보면 해결 방법에 대한 많은 글들이 나옵니다만, 결국 몇가지로 축약되며 유사한 해결 방법들입니다.


다른 글들에서 해결 방법으로 제시하는 몇가지를 요약해 보자면....


1) 워드프레스의 관리자 페이지에서 Settings 메뉴에서 "Store uploads in this folder" 항목의 값을, "wp-content/uploads" 으로 채워 넣는다.

-> 하지만, 글쓰는 현재 최신 버전의 워드프레스 (현재 워드프레스 버전 4.8.3)는 Settings 메뉴에 "Store uploads in this folder"라는 항목 자체가 없습니다.


2) 워드프레스 디렉토리 안에 있는 wp-config.php 파일의 내용에, "define('UPLOADS', 'wp-content/uploads');" 라는 내용을 "require_once(ABSPATH . 'wp-settings.php');" 라인 바로 위에 넣는다.

-> 해봤지만 마찬가지로 Unable to ... 에러 발생.


3) 워드프레스 디렉토리의 wp-content 디렉토리의 권한을 777로 바꾸어 준다. (chmod -R 777 wp-content 명령 이용)

-> 에러는 해결 했지만, 여러 글들에서 해당 디렉토리의 권한을 777로 사용하는 것은 보안상 위험하다. 그렇게 사용하지 말라는 글들이 여럿 있습니다. 이건 제가 봐도 위험합니다.


4) wp-content 권한을 적절히 조정해 봐라. wp-content 디렉터리의 소유자와 그룹이 www-data:www-data 인지 확인해 봐라.

-> 여기에서 힌트를 얻었습니다.


결국 4번에서 힌트를 얻어서 해결 했습니다.


www-data 는 보통 우분투 리눅스에 설치 했을때 생성되는 그룹입니다. 하지만, 아마존 리눅스에 아파치를 설치하면 기본적으로 www-data라는 것은 없고, apache 그룹이 있으니, wp-content 의 소유자와 그룹을 apache:apache 로 변경하니 위 문제가 해결되었습니다. (그럼에도 불구하고 위 4가지 방법을 서술한 것은 어떤 분에게는 위 방법이 해결 방법이 될 수도 있지 않나 라는 생각이 들어서 입니다.)


"Amazon Lightsail 여러개의 워드프레스 사이트 설치" 에서 워드프레스를 설치할 때 ec2-user 로 ec2-user:apache 로 된 www 디렉토리에 설치하다 보니, 하위 디렉토리인 워드프레스 설치 디렉토리에서도 마찬가지로 ec2-user:apache로 설치 되었습니다.


이렇게 되면 현재 wp-content 의 권한 755 (rwxr-sr-x) 로는 아파치가 파일을 쓸 수가 없습니다.

(wp-content 디렉토리의 소유자가 ec2-user이다. 그룹인 apache는 r-s 권한만 가지고 있어서 쓰기를 할 수가 없다.)




따라서, wp-content 디렉토리의 소유자를 apache로 변경해 주면, 아파치 서버가 해당 디렉토리에 쓰기가 가능해 집니다.


워드프레스가 설치된 디렉토리에 가서 아래와 같이 wp-content 디렉터리의 소유자와 그룹을 변경해 줍니다. (워드프레스를 설치한 디렉토리 마다 각각 해 주어야 합니다.


(워드프레스 디렉토리) $ sudo chown -R apache:apache ./wp-content


이제 아래와 같이 소유자가 변경 되었습니다.



이제 워드프레스에 들어가서 플러그인 등을 설치해도, 더이상 "Unable to create directory wp-content/uploads..." 에러가 발생하지 않네요.


워드프레스를 사용하다 보면 꼭 해결해야 할 문제중의 하나이므로, 꼭 해결 하고 넘어가시길 바랍니다.





(C) 2017 WingsNote.com (무단 복제 및 게시 금지, 링크 허용)