최근 All-in-One SEO 플러그인이 설치된 워드프레스 사이트에서 Fatal error: Uncaught Error: Attempt to assign property "basename" on int... 오류가 발생하는 것을 경험했습니다.
치명적인 오류가 발생하면 사이트에 접속할 수 없게 되므로 반드시 문제를 해결해야 합니다.
워드프레스 Fatal error: Uncaught Error: Attempt to assign property "basename" on int ... 오류 발생 시 대처 방법
잘 작동하던 사이트가 갑자기 접속이 안 되면서 다음과 같은 에러가 발생했습니다.
Fatal error: Uncaught Error: Attempt to assign property "basename" on int in /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Utils/Addons.php:134 Stack trace: #0 /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Utils/Addons.php(202): AIOSEO\Plugin\Common\Utils\Addons->getAddons() #1 /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Models/Notification.php(215): AIOSEO\Plugin\Common\Utils\Addons->unlicensedAddons() #2 /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Models/Notification.php(120): AIOSEO\Plugin\Common\Models\Notification::getStaticNotifications() #3 /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Admin/Admin.php(674): AIOSEO\Plugin\Common\Models\Notification::getAllActiveNotifications() #4 /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Lite/Admin/Admin.php(72): AIOSEO\Plugin\Common\Admin\Admin->addMenu() #5 /home/public_html/simple/wp-includes/class-wp-hook.php(324): AIOSEO\Plugin\Lite\Admin\Admin->addMenu() #6 /home/public_html/simple/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #7 /home/public_html/simple/wp-includes/plugin.php(517): WP_Hook->do_action() #8 /home/public_html/simple/wp-admin/includes/menu.php(161): do_action() #9 /home/public_html/simple/wp-admin/menu.php(417): require_once('/home/...') #10 /home/public_html/simple/wp-admin/admin.php(158): require('/home/...') #11 /home/public_html/simple/wp-admin/index.php(10): require_once('/home/...') #12 {main} thrown in /home/public_html/wp-content/plugins/all-in-one-seo-pack/app/Common/Utils/Addons.php on line 134
오류 메시지를 통해 문제가 All-in-One SEO라는 플러그인 때문에 발생한다는 사실을 짐작할 수 있습니다.
문제의 원인은 다양할 수 있습니다. 가장 의심스러운 것은 플러그인 간 충돌이나 테마와의 충돌이었습니다.
클라우드웨이즈에서 호스팅되는 사이트였는데, 최근 Breeze 플러그인을 업데이트한 후에 문제가 발생한 것으로 추정되었습니다. 그래서 Breeze 플러그인과의 충돌을 의심했지만, 동일한 테마와 플러그인이 설치된 클라우드웨이즈 사이트에서는 사이트가 정상적으로 작동했습니다.
혹시나 싶어 AlO SEO 플러그인의 버전을 낮추면서 테스트해 보았습니다만, 이전 버전으로 되돌려도 문제가 해결되지 않았습니다.
뉴스페이퍼 테마가 설치되어 뉴스페이퍼 테마와의 충돌도 의심되었지만, 동일한 테마가 설치된 사이트에서 테스트해 보니 문제가 발생하지 않아서 테마와의 충돌도 아닌 것 같았습니다.
이런 경우 사이트를 과거 버전으로 되돌려보는 것도 하나의 방법이 될 수 있습니다. 최근 새로 발행한 글이나 페이지가 없다면 백업본을 사용하여 되돌려볼 수 있습니다. 클라우드웨이즈의 경우 자동 백업/복원이 가능합니다.
치명적인 오류가 발생할 경우 다음과 같은 조치를 취해볼 수 있습니다.
- 급한 경우 백업본을 사용하여 이전 백업본으로 되돌립니다. 임시적인 방법일 뿐이고 다시 문제가 재발될 수 있으므로 문제의 원인을 파악하여 해결하는 것이 좋습니다.
- 다른 플러그인들을 모두 비활성화하여 문제가 해결되는지 체크합니다. 만약 문제가 발생하지 않으면 플러그인 충돌이 원인입니다. 하나씩 활성화하면서 충돌하는 플러그인을 찾습니다.
- 테마를 기본 테마 중 하나로 변경하여 문제가 해결되는지 체크합니다.
- 문제의 플러그인의 버전을 최신 버전으로 업데이트하거나 이전 버전으로 되돌려서 문제가 해결되는지 확인합니다.
저는 여러 방법으로 시도했지만 해결이 안되어 그냥 Rank Math 플러그인으로 바꾸었습니다. 특정 플러그인이 문제를 일으키면 비슷한 기능의 다른 플러그인으로 교체하는 것도 하나의 방법일 수 있습니다.
워드프레스에는 다양한 무료 및 유료 SEO 플러그인이 있습니다. 개인적으로는 무료 버전 중에서는 기능적인 면에서 Rank Math가 많이 지원되므로 Rank Math SEO를 선호하는 편입니다. 그러나 Yoast SEO나 Rank Math, AIO SEO 중에서 마음에 드는 것을 선택하면 큰 차이는 없는 것 같습니다.
SEO 플러그인을 바꾸면 기존 설정을 가져올 수 있는 기능이 제공되기도 합니다. AIO SEO에서 Rank Math로 바꾸면 데이터 가져오기가 지원됩니다.
AIO SEO에서 생성하는 사이트맵 주소와 Rank Math와 Yoast SEO에서 생성하는 사이트맵 주소가 다르므로 네이버와 구글 등 검색엔진에서 사이트맵을 다시 제출해야 합니다.
Fatal Error 때문에 사이트에 접속하지 못하는 경우 FTP에 접속하여 문제가 되는 플러그인의 폴더를 삭제하면 사이트 접속이 가능해질 것입니다.
파일질라(FileZilla)를 사용하여 FTP/SFTP에 접속한 다음 /wp-content/plugins 폴더로 이동하여 문제를 발생하는 플러그인 폴더를 삭제할 수 있습니다.
참고로 이런 걱정 없이 티스토리처럼 워드프레스를 운영하고 싶은 경우 카페24의 워드프레스 블로그 호스팅을 고려할 수 있습니다. 하지만 커스텀이 매우 제한적이므로 사이트의 레이아웃과 기능을 자유롭게 바꾸고자 하는 사용자들에게는 적합하지 않습니다.
참고
https://avada.tistory.com/3248
https://avada.tistory.com/3243