
워드프레스 사이트를 오래 운영하다 보면 보안 사고보다 먼저 눈에 띄는 게 있습니다. PHP 버전은 몇 년째 그대로인데 보안 플러그인만 하나씩 늘어나는 사이트입니다. 플러그인이 공격을 일부 막아 줄 수는 있어도, 지원이 끝난 PHP 자체를 고쳐 주지는 못합니다. php 보안은 현재 버전을 확인하고, 업데이트할 수 있는 상태를 만드는 일부터 시작하는 게 맞습니다.
PHP 버전부터 확인하고 변경 순서를 잡기
관리자 화면에서 ‘도구 → 사이트 건강 → 정보 → 서버’를 열면 현재 PHP 버전을 볼 수 있습니다. 워드프레스의 권장 환경은 PHP 8.3 이상입니다. 다만 이 숫자만 보고 운영 중인 사이트를 곧바로 최신 버전으로 바꾸면 오래된 테마나 플러그인에서 오류가 날 수 있습니다. PHP 공식 지원표에서 지원이 끝난 버전을 쓰고 있다면 업데이트를 미루지 말되, 변경 전 점검 시간을 확보하세요.
제가 운영 사이트에서 쓰는 순서는 파일과 데이터베이스 백업, 복구 방법 확인, 워드프레스 코어·테마·플러그인 업데이트, PHP 버전 변경, 주요 기능 점검입니다. 백업 파일이 생성됐다는 표시만 믿지 말고 실제로 내려받을 수 있는지 확인합니다. 가능하면 복제 사이트에서 먼저 시험하고, 방문이 적은 시간에 운영 사이트를 변경합니다.
버전을 바꾼 뒤에는 첫 화면만 보지 않습니다. 관리자 로그인, 글 저장, 이미지 업로드, 문의 양식, 결제나 회원 가입처럼 사이트에서 돈이나 정보가 오가는 기능까지 확인합니다. 화면이 하얗게 뜨거나 특정 기능이 멈추면 호스팅 관리 화면에서 이전 PHP 버전으로 되돌린 뒤 오류 로그를 확인하세요. 원인을 찾기 전에 플러그인을 한꺼번에 지우면 복구가 더 어려워집니다.
오류는 기록하고 방문자 화면에는 숨기기
PHP 오류가 방문자 화면에 그대로 출력되면 서버 내부 경로나 플러그인 파일 이름이 드러날 수 있습니다. 호스팅 관리 화면에서 PHP 설정을 바꿀 수 있다면 display_errors는 Off, log_errors는 On으로 둡니다. 오류는 화면 대신 호스팅에서 제공하는 비공개 로그로 확인하는 방식입니다. 로그 파일이 누구나 접근할 수 있는 공개 폴더에 놓이지 않는지도 확인해야 합니다.
워드프레스의 wp-config.php에서는 운영 사이트의 WP_DEBUG를 false로 둡니다. 테스트 중 로그가 필요하면 복제 사이트에서 WP_DEBUG와 WP_DEBUG_LOG를 잠시 켜고, WP_DEBUG_DISPLAY는 false로 유지합니다. 테스트를 마치면 로그를 확인하고 디버그 설정을 원래대로 돌립니다. 공개 폴더에 남은 디버그 로그에는 오류뿐 아니라 요청 정보가 담길 수 있어 오래 보관하지 않는 편이 안전합니다.
설정 파일을 수정하기 전에는 원본을 내려받아 보관하세요. wp-config.php에서 따옴표나 세미콜론 하나를 잘못 고쳐도 사이트 접속이 끊길 수 있습니다. 호스팅 업체가 PHP 설정을 관리한다면 서버 설정 파일을 임의로 추가하기보다 관리 화면의 항목을 쓰거나 업체에 오류 표시와 로그 저장 위치를 문의하는 게 빠릅니다.
파일 편집과 쓰기 권한 줄이기
관리자 계정으로 로그인하면 기본적으로 테마·플러그인 파일을 화면에서 직접 편집할 수 있습니다. 편하긴 하지만 계정을 탈취당했을 때 PHP 코드가 바로 바뀔 수 있는 통로이기도 합니다. 관리자 화면에서 파일을 수정할 일이 없다면 wp-config.php에 define( 'DISALLOW_FILE_EDIT', true );를 추가하세요. 워드프레스 공식 보안 문서에서도 안내하는 설정입니다. 이 설정은 파일 편집 메뉴를 막는 것이며, 관리자 계정 보호나 업데이트를 대신하지는 않습니다.
파일 권한도 함께 봅니다. 일반적인 환경에서는 폴더 755, 파일 644를 출발점으로 삼되, 서버의 파일 소유자와 실행 방식에 따라 필요한 값이 다릅니다. 쓰기 오류가 난다고 전체 폴더를 777로 바꾸는 건 피해야 합니다. wp-config.php는 더 엄격한 권한을 적용할 수 있지만, 무턱대고 400이나 440으로 바꾸면 서버가 설정 파일을 읽지 못하는 경우가 있습니다. 호스팅의 권장값을 확인하고 변경 직후 사이트 접속과 업데이트 기능을 점검하세요.
이미지 업로드 폴더에서 PHP 파일이 실행되지 않도록 막는 설정도 유용합니다. 다만 차단 규칙은 웹 서버 종류에 따라 다르고, 잘못 넣으면 이미지 표시나 관리자 기능까지 깨질 수 있습니다. 공유 호스팅이라면 업로드 폴더의 스크립트 실행 차단 기능을 제공하는지 먼저 확인하세요. 다른 사이트에서 복사한 서버 규칙을 운영 중인 사이트에 바로 붙여 넣는 일은 권하지 않습니다.
업데이트와 복구를 일상 작업으로 만들기
PHP 버전만 올려 놓고 플러그인을 방치하면 보안 상태는 금방 다시 나빠집니다. 사용하지 않는 플러그인과 테마는 비활성화에서 멈추지 말고 삭제합니다. 남겨 둔 플러그인은 업데이트 내역과 현재 PHP 버전에서의 동작을 확인하세요. 설치 개수보다 관리할 수 있는 개수가 중요합니다.
보안 기능이 필요할 때도 먼저 호스팅에 방화벽, 악성 파일 검사, 백업 기능이 있는지 확인합니다. 이미 제공되는 기능과 겹치는 플러그인을 여러 개 설치하면 설정 충돌과 점검할 항목만 늘어납니다. 호스팅에 해당 기능이 없다면 무료 보안 플러그인 하나를 검토할 수 있습니다. 로그인 보호와 파일 변경 알림처럼 필요한 기능을 정해 놓고 고르면 유료 상품부터 살 이유가 없습니다.
백업은 파일과 데이터베이스를 함께, 사이트가 설치된 서버 밖에도 보관하는 편이 좋습니다. 복구 방법은 한 번 직접 시험해 두세요. 문제가 생겼을 때 필요한 건 ‘백업 성공’ 알림이 아니라 정상 화면으로 돌아오는 절차입니다. 저는 PHP 버전 변경일과 플러그인 업데이트일, 점검 결과를 짧게 남겨 둡니다. 다음 장애 때 무엇이 달라졌는지 찾는 시간이 확 줄어듭니다.
php 보안 설정에는 한 번 켜 두면 끝나는 스위치가 없습니다. 지원되는 버전을 쓰고, 오류를 안전하게 기록하고, 파일을 함부로 바꾸지 못하게 하고, 되돌릴 수 있는 백업을 갖추는 것. 운영하는 입장에서는 이 기본 구성이 화려한 보안 기능보다 오래 버팁니다.
