콘텐츠로 건너뛰기

워드프레스 HTTP ERROR 500 및 메모리 초과 문제 해결 방법

오랜만에 블로그 글을 쓰러 들어왔는데 갑자기 발생한 HTTP ERROR 500! 이를 해결하는 과정을 기록해볼까 한다.

■ 사이트 접속이 안된다? 500 ERROR

먼저 사이트에 접속하려고 하니 다음과 같은 메시지가 나타났다.

연결이 비공개로 설정되어 있지 않습니다.
공격자가 54.180.73.135에서 사용자의 정보를 도용하려고 시도할 수 있습니다(예: 비밀번호, 메시지, 신용카드 정보). 이 경고에 대해 자세히 알아보기

처음에는 HTTPS 문제인 것 같았지만, 인증서 유효기간도 충분히 남아 있었기 때문에 다른 원인이 있을 것. 그래서 워드프레스 관리자 페이지에 접속하려고 했지만 HTTP ERROR 500 오류가 발생했다.

좀 더 정확히 확인하기 위해 아마존 라이트세일의 SSH를 통해 서버에 접속했다. 이미지에서 저 아이콘을 누르면 접속이 가능하다.

그리고 다음 명령어를 사용하여 Apache 에러 로그를 확인했다.

sudo tail -n 100 /opt/bitnami/apache2/logs/error_log

로그에서 다음과 같은 에러 메시지를 확인할 수 있었다.

읽어보면, PHP 메모리 제한 초과로 인해 약 7.2GB의 메모리를 할당하려고 시도했지만, 허용된 메모리 제한인 512MB를 초과했다는 것. 아마 어떤 플러그인이나 테마가 꼬여 무한 루프비정상적인 프로세스를 일으킨다는 것을 알 수 있었다.

■ 플러그인 확인하기

먼저 플러그인 디렉토리 이름을 변경하여 비활성화시켜보았다. 이러면 워드프레스가 기존 설치된 플러그인을 인식하지 못하게 된다.

sudo mv /opt/bitnami/wordpress/wp-content/plugins /opt/bitnami/wordpress/wp-content/plugins_disabled

그리고 사이트에 접속해 보니 정상적으로 접속이 되었다. 이제 어느 플러그인이 문제를 일으키는지 하나씩 찾아본다.

먼저, 플러그인 디렉토리의 이름을 원래대로 복원한다.

sudo mv /opt/bitnami/wordpress/wp-content/plugins_disabled /opt/bitnami/wordpress/wp-content/plugins

플러그인 디렉토리로 이동하여 설치된 플러그인 목록을 확인한다.

cd /opt/bitnami/wordpress/wp-content/plugins
ls

ls 명령어를 실행하면 디렉토리 내 모든 폴더 이름이 표시된다. 이제 모든 플러그인을 임시 디렉토리로 이동시키고 하나씩 활성화시키며 사이트 접속이 가능한지 본다.

sudo mkdir ../plugins_temp
sudo mv * ../plugins_temp/

sudo mv ../plugins_temp/플러그인이름 .

각 플러그인을 복원하고 사이트에 접속하여 문제가 있는지 하나씩 체크하다 보니 W3 Total Cache를 옮기자 다시 사이트 접속이 불가한 것을 확인했다.

■ 문제 플러그인 제거하기

여전히 관리자 페이지를 통한 플러그인이 제거가 불가하므로 SSH를 통해 제거하도록 한다. 플러그인을 삭제하고 캐시 파일과 폴더를 삭제한다.

sudo rm -rf /opt/bitnami/wordpress/wp-content/plugins/w3-total-cache
sudo rm -rf /opt/bitnami/wordpress/wp-content/cache/
sudo rm -rf /opt/bitnami/wordpress/wp-content/w3tc-config/
sudo rm -f /opt/bitnami/wordpress/wp-content/advanced-cache.php
sudo rm -f /opt/bitnami/wordpress/wp-content/db.php
sudo rm -f /opt/bitnami/wordpress/wp-content/object-cache.php

이제 변경 사항 적용을 위해 Apache 서버를 재시작하면 문제 해결 끝!

sudo /opt/bitnami/ctlscript.sh restart apache

플러그인을 비활성화하면서 세팅이 초기화된 바람에 조금 귀찮아졌지만… 어쨌든 문제가 해결되서 다행이다. 워드프레스는 좋지만 한번씩 문제가 생겨서 꼭 이렇게 터미널 연습을 시킨다… ㅠ