워드프레스의 경우 티스토리와 달리 하나하나 관심을 가져야 하는데요.
특히 자주 발생하는 에러가 테마의 업데이트 에러입니다.
저의 경우 현재 generatepress테마를 사용중인데요. 업데이트가 잘 되지 않았습니다.
워드프레스 테마 업데이트 에러
저의 경우 아래의 update failed 에러가 떴는데요.
에러메시지를 살펴보니
Update failed: 일부 파일이 복사가 안돼 업데이트가 설치되지 않았습니다. 이것은 보통 일관되지 않은 파일 권한 때문입니다.
인터넷으로 찾아보니 이 경우 워드프레스가 설치된 폴더의 권한 이슈가 원인이라고 합니다.
권한 문제를 해결하기 위해서는 해당 폴더를 찾아야 하는데요.
워드프레스의 테마 폴더는 일반적으로 워드프레스가 설치된 폴더 안의 /wp-content/themes에
위치하고 있습니다.
즉 이곳에 있는 테마를 웹서버에서 수정해야 하는데, 수정하기 위한 권한이 부족하여
업데이트에 실패한 것입니다.
nginx 실행 권한 찾기
가장 먼저 워드프레스를 실행하고 있는 웹서버가 nginx라면 nginx의 실행 권한을 찾습니다.
apache의 경우 nginx를 apache로 변경해주시면 됩니다.
ps -ef | grep nginx
이 폴더는 워드프레스 사이트에 설치하는 모든 워드프레스 테마가 위치합니다.
그래서 이 폴더의 권한을 변경해 줘야 하는데요.
아래 명령어는 d를 통해 폴더를 찾고 f 옵션을 통해 파일을 찾아서 775와 664로 변경하는 것입니다.
일반적으로 폴더 권한은 750이상, 파일 권한은 640 이상으로 설정합니다.
sudo find ./ -type d -exec chmod 0775 {} \;
sudo find ./ -type f -exec chmod 0644 {} \;
해당 명령어를 입력해서 모든 파일을 644로 변경하였습니다.
하지만 저의 경우에는 잘 되지 않았는데요.
혹시 몰라서 themes 폴더를 0777 권한을 주고 해결했습니다.
themes 폴더 자체에도 권한을 줘야지 업데이트가 되는 것 같더라구요.
저의 경우 docker를 통해서 소유자가 맞지 않아서 그런 것 같은데요.
소유자의 경우 chown을 통해서 www-data로 일반적으로 변경해주시면 되는데요.
sudo chown -R www-data:www-data /wordpress/wp-content/themes
이 경우에는 최후의 수단으로 777로 맞춰주시면 보안엔 취약하지만 업데이트는 가능합니다.
sudo chmod 0777 themes
이렇게 하니까 업데이트가 정상적으로 되었는데요.
테마가 아닌 플러그인의 경우 plugins 폴더를 확인하시면 됩니다.
정리하면 워드프레스 업데이트 에러는 권한 문제 때문에 발생합니다.
아래의 순서대로 조치하시면 업데이트를 정상적으로 할 수 있습니다.
- 가장 먼저 nginx의 실행 권한 확인
- 테마 하위 폴더의 파일과 폴더 권한 변경(themes 폴더 포함)
정말 안될 경우 테마 폴더를 강제로 삭제 후 재설치 할 수도 있는데요.
아래 포스팅처럼 수동으로 설치도 가능합니다.
아래와 같이 -r은 폴더를 삭제하는 -f는 강제로 삭제하고 astra테마를 삭제하는 명령어입니다.
다만 -rf는 무조껀 폴더를 삭제하니 조심해서 사용하시기 바랍니다.
sudo rm -rf astra
그럼 잘 사용하시기 바랍니다.