며칠 전, 제가 관리하는 몇몇 워드프레스 웹사이트들이 호스팅되어 있는 Kinsta로부터 아래와 같은 이메일을 받았습니다.
제목: PHP 8.0 지원이 종료됩니다. 이제 사이트를 업데이트할 시간입니다.
PHP 8.0의 적극적인 지원이 1년여 전에 종료되었고 보안 지원(보안 문제를 해결하기 위한 패치) 또한 2023년 11월 26일에 종료되었으므로 PHP 업데이트를 진행할 때입니다 .
5월에 나머지 PHP 8.0 사이트들을 PHP 8.1로 업데이트 하는 작업을 시작할 예정입니다. 일정은 다음과 같습니다.
3월 26일 화요일 : 라이브 사이트들에 대한 PHP 8.0 옵션을 제거합니다.
4월 23일 화요일 : 표준 및 프리미엄 스테이징 환경에 대한 PHP 8.0 옵션을 제거합니다.
5월 7일 화요일 : 아직 PHP 8.0을 사용하는 모든 사이트들을 PHP 8.1로 업데이트하기 시작할 예정입니다.업데이트 프로세스를 완료하는 데 몇 주가 걸릴 것으로 예상되므로 귀하의 사이트가 업데이트 되는 구체적인 날짜나 시간을 공지하기는 어렵습니다. 사이트 업데이트 시점을 제어하려면 5월 7일 이전에 사이트의 PHP 버전을 업데이트 하시기 바랍니다 .
최근 검사에 따르면 귀하의 계정에서 다음 사이트들이 PHP 8.0을 사용하며 업데이트의 영향을 받는 것으로 나타났습니다. (후략)
킨스타 팀 (The Kinsta Team)
5월 7일까지 여전히 PHP 8.0을 사용하는 사이트들이 남아있을 경우 강제로 PHP 8.1로 업데이트하는 작업을 시작할 예정이니, 혹여 업데이트 과정에서 발생할 수 있는 문제들을 미리 조치할 수 있도록 자체적으로 PHP 8.1 업데이트를 진행하라는 내용의 이메일이었습니다. 제가 관리하는 계정에서도 두 개 사이트가 PHP 8.0을 사용하고 있는 것으로 언급되어 있었기 때문에, PHP 업데이트 관련 내용들을 확인해보았습니다.
워드프레스 PHP 업데이트의 이유와 목적
버전 8.0->8.1과 같은 마이너 업데이트는 일반적으로 사이트의 기능을 손상시킬 정도의 변경 사항을 도입하지는 않습니다. 하지만 실행중인 웹사이트의 경우는 PHP 버전을 변경하기 전에 몇 가지 테스트를 수행하여 문제가 없음을 확인하는 것이 안전합니다. 이것이 바로 Kinsta가 자체 업데이트를 요청하며 메일을 보내온 이유일 것입니다. 워드프레스가 최신 버전인 경우, 테마나 플러그인에서 PHP 버전과 호환되지 않는 부분들이 발견될 수 있습니다.
모든 Kinsta 클라이언트는 MyKinsta 대시보드 내에서 WordPress 사이트의 PHP 버전을 쉽게 선택할 수 있습니다. PHP는 예측 가능한 릴리스 일정으로 전환되었으어 각각의 새 버전은 2년 동안 유지 관리되며 추가로 1년 동안 중요 보안 업데이트가 제공됩니다. Kinsta 측도 이에 맞추어 업데이트를 진행하고 있습니다. 지난 PHP 버전이 지원 중단 상태(EOL: End Of Life)에 이르면 해당 버전을 제거하는 방식입니다.
웹사이트에서 실행되는 PHP를 업데이트하는 주 목적은 보안과 속도입니다. 일반적으로 PHP의 업그레이드 버전에는 이전 버전의 보안 취약 부분을 보완하는 기능이 포함되며, 실제 측정 결과 PHP를 업데이트 하면 속도 역시 크게 향상되는 것으로 알려져 있습니다.

실행 중인 워드프레스 웹사이트의 PHP 버전을 확인하려면 관리자 대시보드 [도구 Tools] – [사이트 건 Site Health]으로 이동합니다. ‘정보 Info’ 탭의 ‘서버 Server’ 섹션에서 PHP 버전을 확인할 수 있습니다. Kinsta에서 업데이트를 요청한 웹사이트의 PHP 버전을 확인해보니 역시 8.0.30으로 나옵니다. 업데이트 대상입니다.
여기서 PHP를 바로 업데이트 할 때 발생할 수 있는 문제는 웹사이트에 아직 해당 버전의 PHP를 지원하지 않는 코드가 포함되어 있어 특정 기능이 오작동하거나 아예 웹사이트 전체가 다운돼버리는 상황입니다. 이러한 경우, 원인의 대부분은 활성 상태인 테마나 플러그인입니다. 따라서, 워드프레스 웹사이트 운영자에게 있어서는 호환성을 테스트하며 라이브 상태인 웹사이트가 중단되는 일 없이 안전하게 PHP를 업데이트할 수 있는 과정이 필요합니다.
안전하게 워드프레스 PHP 업데이트 하기 (Kinsta 웹서버)
1. 스테이징 사이트 만들기
PHP를 업데이트 하고 테스트해보기 위해서는 스테이징 사이트를 만드는 것이 좋습니다. 스테이징 서버는 라이브 서버와 거의 동일한 환경에서 웹사이트를 라이브하기 전에 테스트를 해볼 수 있는 서버 공간으로, 대부분의 웹호스팅 업체는 이러한 스테이징 서버를 제공하고 있습니다.

Kinsta에서는 MyKinsta 대시보드에서 스테이징 사이트를 생성할 수 있습니다. 왼쪽 메뉴에서 ‘WordPress Sites’를 클릭하면 현재 호스팅되어 있는 워드프레스 웹사이트들의 목록이 나옵니다. 여기에서 PHP 업데이트 할 사이트를 선택하고, 상단 사이트 이름 옆의 드롭다운 메뉴를 클릭하여 ‘Create New Environment’를 선택합니다.

무료로 사용할 수 있는 ‘Standard environment’를 선택하고 ‘Continue’를 클릭합니다.

현재 라이브인 웹사이트를 테스트하기 위한 것이므로 ‘Clone an existing environment 기존 환경 복제하기’를 선택, ‘Environment name 환경 이름’을 지정해주고 ‘Continue’를 클릭합니다. 스테이징 사이트 생성이 완료되면 우측 상단에 완료 메세지가 뜹니다.
2. 워드프레스용 PHP 업데이트 하기

스테이징 사이트 생성이 완료되면, 먼저 상단 사이트 이름 옆의 드롭다운 메뉴를 클릭하여 스테이징 사이트로 상태를 변경합니다.

이제 워드프레스 웹사이트의 PHP 버전 업데이트를 위해 좌측 메뉴에서 ‘Tools 도구’로 이동, ‘PHP Engine 엔진’ 섹션에서 ‘Modify 수정’ 버튼을 클릭하여 원하는 PHP 버전을 선택합니다. 저는 Kinsta의 요청에 따라 PHP 8.1 버전을 선택하였습니다.

PHP 8.1로 업데이트 하겠냐는 확인창이 뜹니다. PHP 업데이트에는 3분 정도가 소요되며, PHP 엔진이 재부팅 되면서 백엔드에만 몇 초간 다운 상태가 발생할 수 있으나 사이트 방문자에게는 영향이 없을거라는 안내문이 나옵니다. 어쨌든 이조차도 라이브 사이트가 아닌 스테이징에서 진행중이므로, 크게 상관없습니다. ‘Modify PHP version’을 클릭하여 진행합니다. PHP 업데이트가 진행되는 동안에는 모든 버튼이 비활성화되며, 업데이트가 완료되면 우측 상단에 완료 메세지가 뜹니다.
3. 업데이트 후 웹사이트 체크하기
스테이징 서버에서 PHP 업데이트가 완료되면, 이제 워드프레스 웹사이트가 정상적으로 작동하는지를 꼼꼼히 테스트해봐야 합니다. 활성 상태인 플러그인이나 테마에서 호환되지 않는 항목이 있는 경우, 오류 메세지가 표시되거나 빈 화면이 뜰 수도 있습니다. 라이브 사이트가 아닌 스테이징에서 진행중이므로, 이러한 오동작이 발생하더라도 당황하지 말고 차근차근 원인을 파악하고 조치를 취하면 됩니다.

제 사이트 같은 경우, PHP 업데이트 후 웹사이트에 접속해보니 상단에 위와 같은 워드프레스 디버그 오류 구문이 떠있었습니다. 이 경우에는 오류 자체에 Elementor 플러그인 이름이 노출되어 있으므로 해당 플러그인과 PHP 8.1 간에 호환되지 않는 함수가 있다는 것을 쉽게 알 수 있습니다. PHP 최신 버전과의 충돌이니만큼 Elementor 플러그인 측에서도 조만간 이에 대한 업데이트를 배포하겠지만, 현재로서는 일단 플러그인을 비활성화함으로써 오류를 제거하였습니다.
하지만 사이트가 중단된 채 원인이 불분명한 500, 501, 502, 503, 504 등의 오류가 발생하였다면, 다음과 같은 몇 가지 방법을 시도해볼 수 있습니다.
- 플러그인 혹은 테마 비활성화

워드프레스 관리자 대시보드의 플러그인 화면 에서 모든 플러그인을 선택합니다. 그리고 일괄 작업 드롭다운에서 ‘비활성화’를 선택 하고 ‘적용’을 클릭합니다. 그리고 플러그인을 하나씩 활성화하면서 워드프레스 웹사이트를 확인해봅니다. 특정 플러그인이 활성화되었을 때 오류가 다시 나타난다면 해당 플러그인이 문제의 원인이라 할 수 있습니다. 오류 때문에 아예 대시보드 접근이 안되는 상황이라면, FTP나 phpMyAdmin을 이용하여 플러그인 비활성화 하고 동일한 프로세스를 통해 확인하면 됩니다. 같은 방식으로 테마도 확인해볼 수 있습니다. 활성화 상태의 테마 대신 Twenty Twenty-Four 등의 워드프레스 기본 테마를 활성화하여 오류가 사라지는지 보면 됩니다.

플러그인이나 테마 확인 후에도 원인이 명확하지 않다면, 워드프레스 MyKinsta 대시보드의 ‘Logs 로그’ 메뉴에서 오류 로그를 확인해볼 수도 있습니다. error.log, kinsta-cache-perf.log 및 access.log 파일을 볼 수 있습니다. 기본적으로 마지막 1,000줄이 표시되며, 드롭다운 메뉴에서 최대 20,000줄까지 선택 가능합니다.
로그에서도 원하는 바를 찾지 못할 경우 MyKinsta 대시보드에서 워드프레스 디버그 모드를 활성화 하고 오류 문구를 확인해볼 수 있습니다.

왼쪽 ‘Tools 도구’ 메뉴로 가서 ‘WordPress debugging’의 ‘Enable’ 버튼을 활성화하면 됩니다. 이렇게 디버그 모드가 활성화되면 사이트 자체에서 바로 PHP 오류 및 알림 문구를 볼 수 있습니다.
- 특정 플러그인이 오류의 원인인 경우
일반적으로 이러한 문제는 해당 플러그인에서 사용하는 코드(함수, 구문 등)가 사용 중인 PHP 버전과 호환되지 않기 때문에 발생합니다. 이러한 호환성 문제가 있을 경우 다음 사항들을 확인해볼 수 있습니다.
- 플러그인과 테마를 최신 버전으로 업데이트합니다.
- 플러그인 혹은 테마 개발자에게 관련 내용을 전달하고 수정 업데이트를 요청합니다.
- 동일한 기능을 제공하면서도 현재 PHP 버전과 호환되는 대체 플러그인을 찾아 교체합니다.
- 워드프레스 개발자를 고용하여 직접 플러그인 혹은 테마 코드 수정을 할 수도 있습니다.
- 플러그인 혹은 테마 개발자가 코드를 업데이트 할 때까지 기존 PHP 버전을 좀 더 사용하며 기다려봅니다.
4-1. 스테이징 사이트를 라이브로 푸시하기
스테이징 사이트에서 PHP 업데이트 후 사이트 테스트와 디버깅을 모두 마쳤다면 이제 라이브 사이트에도 이를 동일하게 적용해야 합니다. 스테이징 사이트에서 작업한 내용을 똑같이 라이브 사이트에 대해서 반복할 수도 있지만, 그 과정에서 누락되는 부분이 생길 수도 있고 시간도 많이 걸립니다. 이 때, 스테이징 사이트 자체를 바로 라이브로 푸시하는 방법, 즉 ‘Push to Live 푸시 투 라이브’를 사용하면 디버깅을 완료한 그 상태 그대로 라이브로 푸시하게 되므로, 혹시나 발생할 수도 있는 실수를 방지하고 시간도 크게 절약할 수 있습니다.

해당 웹사이트의 스테이징 환경이 선택된 상태에서 좌측 ‘Info 정보’로 이동, 우측 상단 ‘Push environment’ 드롭다운 메뉴의 ‘Push to LIVE’를 클릭하여 실행합니다.

스테이징 사이트 전체를 그대로 푸시하기 위해 파일, 데이터베이스, 웹사이트 주소 찾기 & 바꾸기 옵션을 모두 체크하고, 한 번 더 작업을 확정하기 위해 사이트명을 입력하면 ‘Push to Live’ 버튼이 활성화됩니다. 클릭하여 진행합니다. 문제가 생길 경우 바로 복원할 수 있도록 라이브 사이트가 먼저 백업되고, 스테이징 사이트의 푸시 투 라이브가 진행됩니다. 사이트 파일 및 데이터베이스 용량에 따라 완료되는데 수 분이 걸릴 수도 있습니다.
4-2. 라이브 사이트에서 PHP 업데이트 하기
스테이징 사이트를 한 번에 푸시하는 대신, 1-3 단계의 작업을 라이브 사이트에도 동일하게 적용하는 방법으로 라이브 사이트의 PHP 업데이트를 진행할 수 있습니다. 발생할 수 있는 문제를 이미 스테이징 사이트에서 해결한 상태이므로, 라이브 사이트에서도 동일한 방법으로 해결하면서 업데이트를 완료하면 됩니다.
