HTTP 500 에러(내부 서버 오류)
HTTP 500 에러는 이용 중인 컴퓨터, 인터넷의 문제가 아닌 내부 서버 오류입니다.
✅ HTTP 500 에러
HTTP 500 error로 발생하는 원인은 다양합니다. 다른 사이트 역시 마찬가지이지만 주로 워드프레스 사이트에서 .htaccess 파일이 변경된 경우일 수 있으며, 서버의 DB에서 오류가 발생한 경우 등 다양한 원인이 존재합니다.
1. .htaccess 파일 오류
워드프레스의 경우 초기 세팅 파일이나 백업 된 .htaccess 파일로 복구하면 해결되며, 해결이 안 되는 경우는 다른 원인을 의심해 볼 수 있습니다. 예전 작업 시에도 해당 오류로 해당 파일만 따로 복구를 하는 경우가 많았습니다. 그 중에 보안 플러그인으로 특정 IP를 차단하는 경우 특정 클라이언트 PC에서만 접속이 안되는 경우를 자주 확인했던 적이 있었습니다.
## 간단한 예시입니다.
<Files "wp-login.php">
order deny,allow
deny from 123.456.789.0
allow from all
</Files>
2. 데이터베이스 문제
데이터베이스 관련 문제인 경우 테이블 내의 오류 및 손상된 데이터 베이스 문제를 생각할 수 있습니다.
3. 소스 코드 문제
파일의 .html .css .php 등 파일의 소스 문제로 발생할 수 있습니다.
[Sun Feb 02 13:33:40.635344 2020] [proxy_fcgi:error] [pid 15744:tid 140251083110144] [client ***.***.***.***:61169] AH01071: Got error 'PHP message: PHP Parse error: syntax error, unexpected 'if' (T_IF) in /opt/bitnami/apache2/htdocs/***.php on line 235'
4. 파일 권한 및 소유자, 그룹 확인
보통 403 에러가 발생하는 경우가 많지만 파일 권한 문제인 경우도 고려할 수 있습니다.
5. 서버 설정 문제
서버의 설정이 잘못된 경우 CPU나 메모리가 고갈 될 경우 500 오류가 발생할 수 있습니다. 서버의 디스크 공간이 꽉 찬 경우도 생각할 수 있습니다.
6. 외부 리소스 시간 초과
앞서 .htacces 문제의 IP 차단은 외부 리소스 시간 초과였으며, 외부와의 통신과 서비스가 연결되지 않는 경우 500 에러 가 발생할 수 있습니다.
✅ error_log 확인
HTTP 500 에러가 발생하는 경우 아파치 웹 서버의 error_log를 확인할 수 있습니다.
tail -f /etc/httpd/logs/error_log
tail -f error_log | grep 500