워드프레스 백업 플러그인인 UpdraftPlus를 사용하여 복구를 시도하다 PCLZIP_ERR_BAD_FORMAT (-10) 오류로 인해 복원에 실패하는 문제를 최근 경험했습니다. 이 문제의 원인과 대처 방법에 대하여 살펴보겠습니다.
워드프레스 UpdraftPlus 복구 실패 'PCLZIP_ERR_BAD_FORMAT' 오류
UpdraftPlus를 사용하면 워드프레스 데이터와 디비(DB)를 모두 백업할 수 있어 저는 이 플러그인을 자주 사용하여 백업을 합니다.
이 플러그인을 사용하려면 웹 서버 공간이 충분해야 합니다.
며칠 전 UpdraftPlus 백업본을 복원하는 과정에서 CLZIP_ERR_BAD_FORMAT (-10) 에러로 인해 복구에 실패하는 경험을 했습니다.
Error data: a:1:{s:12:"pclzip_error";s:80:"PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature";}
UpdraftPlus 설명서에 의하면 zip 압축 파일로 된 백업 파일의 압축을 해제할 때 이런 문제가 발생하며, 조금 더 자세히 설명하자면 zip 파일이 손상된 경우에 이 문제가 발생한다고 합니다.
UpdraftPlus에 의해 압축은 제대로 되었지만, zip 파일을 PC로 다운로드하거나, 다운로드한 zip 파일을 업로드하는 과정에서 파일이 손상될 수도 있다고 합니다.
그러므로 이 문제가 발생하면 백업 파일을 다시 다운로드하여 업로드하면 문제가 해결될 수 있습니다.
zip 파일이 손상되었는지 여부를 확인하는 방법은 다운로드한 zip 파일을 PC나 맥에서 열어보면 알 수 있다고 합니다. 제대로 열리지 않으면 다운로드 과정에서 손상된 것입니다. 실제로 zip 파일을 반디집으로 열려고 시도하니 "이 파일은 손상된 파일입니다" 오류가 발생했습니다.
저는 카페24에서 백업한 파일을 클라우드웨이즈에 업로드하여 복원을 시도할 때 이런 현상이 발생했습니다. 카페24에서 압축이 잘못되었거나, 다운로드하는 과정에서 파일이 손상되지 않았나 생각됩니다.
다운로드 시 파일이 손상된다면 FTP 접속 시 전송모드를 바꾸어서도 테스트해볼 수 있을 것 같습니다. 방화벽 사용 시에는 수동모드(Passove Mode)를 선택해야 접속이 가능하다고 설명하는 문서도 있네요.
저는 몇 차례 시도해도 계속 에러가 발생하여 수동으로 복원했습니다. 수동으로 사이트를 복원하려면 데이터와 DB를 각각 다운로드해야 합니다.
- 데이터: 워드프레스 관련 파일들 (FTP를 통해 다운로드)
- DB: phpMyAdmin을 통해 다운로드. 글, 페이지, 테마 옵션 등의 설정이 디비에 저장됩니다.
해당 문제를 조금 더 자세히 살펴보니 데이터에 이상한 이름의 파일들이 있어서 압축 시에 문제가 발생한 것 같습니다. FTP를 통해 다운로드할 때 이상한 이름으로 된 몇 개 파일이 다운로드가 되지 않았습니다.
이미지의 파일 이름에 한글이 포함되면서 이런 문제가 발생하지 않았나 생각됩니다. 이미지 이름에는 가급적 한글을 포함하지 않는 것이 바람직할 수 있습니다. 일부 웹호스팅에서는 한글이 깨질 수 있어 사이트를 복원하거나 이전(마이그레이션)할 때 이미지들이 엑박으로 표시될 수도 있습니다.
이외에도 웹 서버 용량이 부족하여 압축하는 과정에서 에러가 발생하는 경우도 있을 수 있을 것 같습니다. 카페24를 비롯한 국내 호스팅은 웹 서버 용량에 인색한 편입니다. 이미지 등이 많아서 큰 디스크 공간이 필요한 경우 패스트코멧이나 클라우드웨이즈와 같은 해외호스팅을 이용하면 웹 서버 용량 압박이 사라질 것입니다.
요약
UpdraftPlus를 사용하여 복구를 시도하는 과정에서 PCLZIP_ERR_BAD_FORMAT (-10) 에러가 발생하는 경우
- 백업 파일을 다운로드/업로드하는 과정에서 zip 압축 파일이 손상되지 않았는지 확인합니다.
- 백업본을 다시 다운로드해도 파일이 손상되는 경우에는 수동으로 복원합니다.
UpdraftPlus로 백업하여 다운로드한 후에는 파일이 손상되지 않았는지 체크해보시면 좋을 것 같습니다.
여러 가지 조치에도 문제가 해결되지 않으면 여기에서 서비스(유료)를 의뢰하실 수 있습니다.
참고
https://avada.tistory.com/3348
https://avada.tistory.com/3336