500 Internal Server Error - 워드프레스 500 내부 서버 오류

워드프레스에서 500 내부 서버 오류(500 Internal Server Error)로 인해 사용자들이 사이트에 접속하지 못하는 경우에는 다음 방법을 통해 해결이 가능합니다.

.htaccess 수정

.htaccess 파일의 이름을 다른 이름으로 변경하고 워드프레스 관리자 페이지에서 설정 > 고유주소로 이동하여 “저장” 버튼을 클릭하도록 합니다. 그러면 적절한 rewrite 규칙으로 새로운 .htaccess 파일이 생성되어 “404” 오류가 발생하지 않을 수 있습니다.

WP_MEMORY_LIMIT 늘리기

PHP 메모리 제한을 128MB 이상으로 늘려줍니다. 다음과 같은 방법으로 워드프레스에서 PHP 메모리를 늘릴 수 있습니다.

wp-config.php 파일에 다음 라인을 추가합니다.

define('WP_MEMORY_LIMIT', '128M'); // 128M 또는 256M

WordPress 메모리는 서버와 다를 수 있습니다. 서버 메모리 설정과 상관없이 이 설정을 지정해주도록 합니다.

PHP.ini 파일에 접근할 수 있다면 PHP.ini 파일에서 메모리를 늘려줍니다.

memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)

memory_limit 부분에서 메모리 크기를 늘리도록 합니다.

PHP.ini 파일에 접근하지 못하는 경우 .htaccess 파일에 다음 라인을 추가해봅니다.

php_value memory_limit 128M

PHP 메모리 제한은 서버에 의해 제한될 수 있습니다. 서버에서 제한되는 메모리 크기가 요구사항보다 작은 경우에는 서버 관리자에게 문의하거나 웹호스팅 서비스를 이용하는 경우에는 해당 업체에서 지원하는 방법을 통해 PHP 메모리 제한을 늘릴 수 있습니다. 예를 들어 이 글에서 “Bluehost에서 memory_limit 및 max_execution_time 설정을 변경”하는 방법을 설명하고 있습니다.

관리자 페이지에 접근하지 못하는 경우

위의 방법으로 문제가 해결되지 않으면 플러그인 충돌일 가능성이 높습니다. 관리자 페이지에 접근이 가능하면 플러그인 페이지에서 모든 플러그인을 비활성화한 후에 사이트가 제대로 표시되는지 확인해봅니다. 만약 사이트가 제대로 표시되면 플러그인을 하나씩 활성화하면서 문제가 되는 플러그인을 찾도록 합니다.

참고: 다음 라인을 wp-config.php 파일에서 ‘stop editing here’라는 구절이 있는 바로 위에 추가하여 문제를 발생시키는 플러인을 찾을 수도 있습니다(찾지 못할 수도 있고요).

ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

위 라인을 추가하면 error_log.txt 파일에 오류가 표시됩니다.

만약 관리자 페이지에 접근할 수 없는 경우에는 여러 가지 방법으로 모든 플러그인을 비활성화할 수 있습니다. 데이터베이스(DB)에서도 가능하지만 가장 간단한 방법은 FTP에 접속하여 /wp-content/plugins 폴더의 이름을 다른 이름(예: DISABLEDplugins)으로 바꿉니다. 그러면 모든 플러그인이 비활성화됩니다. 이제 대시보드에 접속할 수 있을 것입니다. 대시보드에 접속하면 plugins 폴더 이름을 다시 원상복구시키고 플러그인을 하나씩 활성화면서 문제가 되는 플러그인을 찾도록 합니다.

추가 방법

위의 모든 방법으로 문제가 해결되지 않는다면, 파일 권한 문제도 의심해볼 수 있습니다. 해외의 어떤 사이트에 보니 이 글을 참고로 워드프레스 파일과 폴더의 권한을 변경하여 문제를 해결했다는 글도 있네요.

마치며

오늘 갑자기 워드프레스 사이트의 관리자 페이지에 접속하면 500 내부 서버 오류가 발생하면서 로그인이 안 되지만, 사이트는 제대로 접속이 되는 문제 때문에 여러 시간을 허비한 끝에 겨우 원인을 밝혀낼 수 있었습니다. 바로 워드프레스 게시판 플러그인인 KBoard가 문제였네요. 겨우 관리자 페이지에 접속하여 KBoard 관련 플러그인만 비활성화하니 문제가 깨끗이 해결되었습니다. 현재 KBoard 웹사이트도 동일한 오류(Internal Server Error)가 나는 것으로 봐서 KBoard 플러그인 중 일부 기능이 Kboard 서버와 연결이 되어 있는 것 같습니다. (다른 사이트에서 테스트해보니 여기에서는 관리자 페이지에 접속이 되지만 오랫동안 로딩되다가 내용이 겨우 표시되네요. 여기에서는 신기하게 오류가 나지는 않네요. 다만 로딩 속도가 너무 늦네요.)

이상으로 워드프레스에서 500 내부 서버 오류가 발생하는 경우에 대처할 수 있는 다양한 방법을 살펴보았습니다. 상기의 방법으로 해결이 안 되는 경우 이 페이지에서 서비스(유료)를 의뢰하실 수 있습니다.