1. 개짜증나는 AWS

이 문제의 시작은 우커머스가 PHP 7.0 버전은 더 이상 지원하지 않는다는 알림을 띄우고 나서다.

덩달아 대시보드에도 현재 버전의 PHP를 업데이트 해야 한다는 알림을 띄웠다.

현재 Grafik 의 PHP 버전은 7.0.30 이며,

AWS 라이트세일 내 PHP 버전 업데이트 기능은 공식적으로 지원되지 않기 때문에

-카페24처럼 PHP 버전을 쉽게 선택해 업데이트할 수 있다면 좋을텐데-

터미널에 접속해 최신 버전인 PHP 7.4 로 수동 업데이트를 진행했다.

하지만, 해당 버전은 현재 서버에 적용되지 않았다.

 

2. 오류

PHP 수동 업데이트 진행 후, 적용은 되지 않고 오히려 버그가 생겼다.

모바일 페이지에서 특정 페이지에서 화면이 깨지는.

 

3. 해결책

Plan A : 특정 플러그인 또는 테마와 충돌이 있는지 하나씩 비활성화 해보았지만 실패!

Plan B : 귀찮지만, AWS 라이트세일에서 새로운 인스턴스 생성 후 복원하기.

우선, 새로 생성된 인스턴스에 설치된 PHP 버전을 확인해보니, 7.3.14 였다. 통과

자, 이제 새로 생성된 인스턴스에 기존 자료를 가져와 덮어씌워야 한다.

현재 자동 백업되는 UPDRAFT BACKUP Plugin 으로 복원을 진행했는데

PHP 7.0 버전의 백업 파일을 PHP 7.3 이 설치된 새로운 인스턴스에 복원을 하려고 하니 오류가 발생했다.

때문에 [Backup & Restore] 기능으로는 정상적인 복원이 불가능했다.

이후 All in one WP Migration 으로 백업 후 복원하려고 하니,

백업파일 용량이 728MB다.

문제는 무료버전의 업로드 최대 용량은 512MB라는거 ..

복구 한번 하자고 69$ 를 결제하긴 싫었다. 따라서 Plan B 도 Pass

여기서 다시 한번 이 문제의 시발점인 AWS 의 PHP 업데이트 기능의 누락에 대해 짜증이 올라오기 시작했다.

마지막 보류로 남겨둔 라이트 세일의 인스턴스 스냅샷(백업본)을 찍어 복원하기를 진행했다.

스냅샷은 수동과 자동이 있고, 나의 경우 수동으로 진행했다.

*스냅샷의 요금은 1GB당 0.05$ 로 비교적 저렴하다고 한다. 참조 : https://paperblock.tistory.com/7*

백업과 복원의 경우 보통은 백업 파일을 생성 후 백업 경로에 업로드하는 방식인데

AWS는 특이하게 스냅샷 생성 후 기존 인스턴스에 기록된 모든 데이터를 그대로 복사해

새로운 인스턴스를 생성하는 방식으로 진행된다.

1이라는 인스턴스를 스냅샷하면 2라는 인스턴스를 새롭게 생성하는 방식인건데

아무래도 터미널에 HTTPS 등 별도로 셋팅한 자료들 때문인 것 같다.

암튼 이때 요금제등을 새롭게 선택할 수도 있다.

간단히 정리하면,

[수동 스냅샷] – [인스턴스 생성] – [네트워킹]의 기존의 고정 IP에서 새로운 인스턴스 선택하면 끝.

새롭게 설치된 환경에서 오류가 해결되었나 확인해보니,

이 지랄맞은 알림이 또 뜬다.

확인해보니 스냅샷을 찍을 때 기존의 PHP버전도 그대로 복사해 복원하는 방식이었다. 

아 .. 

스냅샷으로는 새로운 PHP 버전이 적용되지 않는다 ;;

결론!

새로운 백업 플러그인과 인스턴스 생성 후 복원을 하던지,

AWS에서 공식적으로 PHP 업데이트 기능을 넣어주던지 해야 함.

씨x

4. 해결

AWS 라이트 세일의 스냅샷 후 생성한 인스턴스나 아예 새로운 인스턴스 생성 후,

기존에 설치된 테마 삭제 및 재설치 및 업데이트 뿐 아니라

모든 플러그인 비활성화 후 다시 Install 까지 해도 문제가 해결되지 않았다.

다시,

[테마 삭제 후 재설치] – [테마 설정 초기화] – [테마 버전 업데이트] – [모든 플러그인 비활성화] – [모두 Install] 후 초기화된 테마를 하나하나 새로 세팅.

이 과정에서,

[테마] – [설정] – [블로그] – [댓글 옵션] 에서 기존에 사용중이던 [Disqus] 를 해제 후 [일반 댓글] 또는 [페이스북 댓글]로 전환하니 오류가 해결 됨.

PHP를 업데이트 하기 전에는 [Disqus] 를 사용해도 오류가 없었기 때문에

이는 불특정 기능 또는 옵션과의 충돌로 인한 오류였던 것으로 확인됨.

덧붙여서, 동일한 PHP 오류라도 사용중인 테마나 플러그인에 따라 [Disqus] 만으로 해결이 안될 수도 있음. 따라서 테마내의 기능 모두를 체크해야하는 번거로움이 있을 수 있겠음.