PHP 버전 차이로 인한 워드프레스 사이트 이전 실패

워드프레스 정보를 제공하는 블로그 Avada 2024. 7. 14. 13:33 • 댓글:

지난주부터 10개가 넘는 워드프레스 사이트를 싱가포르의 한 웹호스팅 업체에서 클라우드웨이즈로 이전하는 작업을 맡고 있습니다. 대부분 사이트의 워드프레스 버전이 낮고, PHP 버전도 5.6 또는 7.4로 낮은 편입니다. 다행히 대부분의 사이트는 문제없이 이전이 되었지만, 한 사이트가 PHP 버전 호환성 문제로 이전에 실패했습니다.

워드프레스 사이트를 운영하는 경우 가급적 최신 버전으로 업데이트하여 최신 상태로 유지하는 것이 바람직합니다. 몇 년 동안 업데이트하지 않다가 시스템을 업그레이드(PHP 버전 업그레이드 포함)하거나 PHP 버전이 높은 다른 웹호스팅으로 이전할 경우 오류가 발생하는 경우가 있을 수 있습니다. 워드프레스 버전과 테마, 플러그인을 모두 최신 버전으로 업데이트하면 문제가 해결될 수도 있지만, 간혹 업데이트를 할 수 없는 상황이 되기도 합니다.

PHP 버전 차이로 인한 워드프레스 사이트 이전 실패

고객 중 한 분이 싱가포르에서 사이트 제작을 비롯하여 여러 가지 사업을 하시고 계십니다. 클라이언트를 통해 싱가포르에 대한 유용한 정도를 자주 듣고 있습니다.😄

싱가포르는 물가가 특히 높다고 하네요. 이 때문인지 웹호스팅 비용도 상당히 높은 편입니다. 싱가포르 현재 웹호스팅을 클라께서 이용하고 계신데, 비용이 너무 많이 나와서 몇 십 개의 사이트 중에서 우선 중요한 사이트를 간추려서 클라우드웨이즈로 이전하고 있습니다.

대부분의 사이트가 오래 전에 제작되었고 업데이트가 되지 않아서 워드프레스 버전과 PHP 버전이 낮은 편입니다. PHP 7.4에 비교적 높은 워드프레스 버전을 유지하는 사이트도 몇 개 있지만, PHP 버전과 워드프레스 버전이 낮은 경우가 많네요.

클라우드웨이즈에서는 PHP 7.4부터 지원이 됩니다. 최신 워드프레스 버전을 운영하려면 PHP 7.4 이상이 되어야 합니다. PHP 7.3 이하인 경우 일부 플러그인이 설치되지 않거나 업데이트가 안 될 수 있습니다. 워드프레스 5.6 이하이면 최신 워드프레스 버전도 설치가 안 됩니다. 

PHP 버전 차이로 인한 워드프레스 사이트 이전 실패

현재 클라우드웨이즈에서는 2024년 7월 현재 기준으로  PHP 7.4, 8.0, 8.1, 8.2 또는 8.3 버전을 선택할 있습니다.

 

클라우드웨이즈 PHP 8.3 추가 (+ PHP 버전 변경 방법) - 웹호스팅 - 워드크래커

클라우드웨이즈(Cloudways)가 최근 PHP 8.3 지원을 추가했습니다. PHP 8.3을 사용하면 8.2 버전에 비해 약간의 성능 향상을 기대할 수 있습니다. PHP 8.2에서 잘 작동하는 사이트는 8.3으로 업그레이드해도

www.thewordcracker.com

PHP Compatibility and WordPress Versions (PHP 호환성과 워드프레스 버전) 문서에 의하면 워드프레스 6.3 버전부터 워드프레스 5.3에 대한 지원이 중단되었습니다.

대부분의 사이트를 이전하고 PHP 버전을 7.4로 설정하니 문제가 발생하지 않았지만 한 사이트가 PHP 호환성 문제로 사이트가 열리지 않는 오류가 발생했습니다.

기존 사이트의 PHP 버전은 5.6.40이었습니다.

그리고 워드프레스 버전은 살펴보니 4.3.34였습니다.

워드프레스 버전 History를 살펴보니 워드프레스 4.3 버전은 2016년 8월에 공개되었네요.

이전 후에 사이트에 접속하니 치명적인 오류가 발생하여 에러 로그를 확인해 보니 레볼루션 슬라이더(Slider Revolution)이 문제를 일으키고 있었습니다.

Fatal error: Uncaught Error: [] operator not supported for strings in /home/customer/www/public_html/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php:73 Stack trace: #0 /home/customer/www/public_html/wp-content/plugins/revslider/revslider_admin.php(237): UniteBaseAdminClassRev::addMetaBox('Revolution Slid...', Object(UniteSettingsAdvancedRev), Array, NULL) #1 /home/customer/www/public_html/wp-content/plugins/revslider/revslider_admin.php(68): RevSliderAdmin->addSliderMetaBox() #2 /home/customer/www/public_html/wp-content/plugins/revslider/revslider_admin.php(40): RevSliderAdmin->init() #3 /home/customer/www/public_html/wp-content/plugins/revslider/revslider.php(147): RevSliderAdmin->__construct('/home/customer/...') #4 /home/customer/www/public_html/wp-settings.php(215): include_once('/home/customer/...') #5 /home/customer/www/publ in /home/customer/www/public_html/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php on line 73

PHP 7.4에서는 문자열에 배열 연산자를 사용하면 오류가 발생한다고 합니다. 문제의 코드에서 $arrMetaBoxes 변수가 문자열로 초기화되어 있는데, 나중에 배열로 사용될 때 문제가 된다고 합니다.

한 에러를 해결하면 다른 에러가 계속 나타났습니다.

Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting end of file in /home/customer/www/public_html/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php on line 103

모든 에러를 수정하여 프런트엔드 사이트가 표시되는 데까지 성공했지만, 로그인 페이지에 접속하려고 시도하니 또 에러가 발생했습니다.

그래서 기존 상태에서 문제가 되는 테마나 플러그인 파일을 수정하는 것으로는 문제를 해결하기에는 너무 많은 시간과 노력이 들어가는 것으로 보여 문제 수정을 포기했습니다.

이런 경우 올바른 방법은 워드프레스, 테마, 플러그인을 모두 최신 버전으로 업데이트하는 것입니다. 하지만 문제의 테마는 Themeforest 사이트에서 제거되어 최신 버전을 구할 수가 없었습니다. Venedor라는 우커머스 테마가 사이트에 사용되었습니다.

하지만 해당 테마 판매 사이트에 접속하니 테마가 제거되었다는 안내문이 표시되었습니다.

시간이 충분하고 노력에 대하여 제대로 된 비용을 받는다면 PHP 7.4에서 호환되지 않는 코드를 확인하여 수정할 수 있겠지만, 현실적으로 쉽지 않아서 이 사이트는 이전을 하지 않기로 했습니다.

테마를 선택할 때 많은 사용자가 사용하는 인기 테마를 선택하는 것이 바람직할 수 있습니다. 아바다GeneratePress 등과 같이 많은 사용자가 사용하는 테마는 판매자가 유지보수를 포기할 가능성이 낮을 것입니다.

요약하면...

  1. 다른 호스팅으로 사이트 이전 시 서버 환경을 비슷하게 설정해야 마이그레이션 후에 오류가 발생할 가능성이 낮습니다.
  2. 가능하면 워드프레스, 테마, 플러그인을 최신 버전으로 지속적으로 업데이트하는 것이 바람직합니다. 몇 년 동안 업데이트를 하지 않다가 갑자기 높은 버전으로 업데이트할 경우 오류가 발생할 가능성이 있을 수 있습니다.
  3. 오랫동안 업데이트가 안 되고 방치된 테마와 플러그인은 사용하지 않는 것이 안전합니다.

참고

https://avada.tistory.com/2765

 

클라우드웨이즈(Cloudways) PHP 버전 변경 방법 (+PHP 8.3 추가)

아마존 AWS나 Vultr 등에서 서버를 운영하는 경우 PHP 버전을 업그레이드하기가 쉽지 않지 않습니다. 클라우드웨이즈(Cloudways)를 이용하는 경우 수월하게 PHP 버전을 변경할 수 있습니다.이 글에서는

avada.tistory.com

https://avada.tistory.com/3401

 

워드프레스 Divi 테마용 부동산 레이아웃 팩 무료 다운로드

워드프레스의 Divi 테마는 테마포레스트(ThemeForest) 마켓에서 10년 넘게 판매 1위를 차지해 온 베스트셀링 테마인 Avada와 비슷한 판매량을 보이는 인기 워드프레스 테마입니다. Divi는 Avada와 비슷한

avada.tistory.com

https://avada.tistory.com/3389

 

뉴스페이퍼 테마/아바다 테마에 엘리멘터(Elementor)를 사용하지 마세요

이 블로그를 통해 언급한 적이 있듯이 워드프레스에서 두 개 이상의 페이지 빌더를 사용하지 않는 것이 바람직합니다. 빌더를 두 개를 동시에 활성화하면 충돌이 발생할 수 있고, 사이트 속도에

avada.tistory.com