[PHP] Request Entity Too Large – post_max_size랑 upload_max_filesize 용량을 다 키웠는데도 용량 때문에 업로드가 안 된다고 나올 때

, ,
Request Entity Too Large

The requested resource
 /folder/
 does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit.

용량이 별로 크지도 않은 파일을 업로드시켰는데 위와 같은 에러 메세지가 떴다. 분명히 php.ini 에서 post_max_sizeupload_max_filesize의 용량을 늘렸는데도 그랬다.

문제는 PHP가 아니라 아파치였다. 아파치의 확장인 Security Module (mod_security)에서 요청 본문(RequestBody)의 용량이 제한돼 있었던 것이다.

해법 1. 설정 용량을 늘린다

httpd-modsecurity.conf 파일을 찾아서 메모장이나 텍스트 편집기로 열어서 아래 문구를 찾는다.

SecRequestBodyLimit 131072

131072는 128KB인데, 숫자를 늘리면 된다.

실서버라면 이 용량을 늘려 주면 된다.

그런데 로컬에서 개발용 서버를 돌리는 것이라면 굳이 Security Module을 활성화할 필요가 없다.

해법2. mod_security를 비활성화한다

아파치의 설정 파일(httpd.conf이나 apache.conf) 파일을 연다. 그리고 아래 부분을 찾는다.

Include conf/extra/httpd-modsecurity.conf

이걸 주석 처리해 준다. 아파치 설정파일의 주석 처리는 맨 앞에 #을 붙이는 것이다.

# Include conf/extra/httpd-modsecurity.conf

꼭 경로가 위의 예시와 동일하지 않아도 된다. modsecurity라는 키워드를 기억하고, 관련 설정을 Include하고 있는 부분을 주석처리하면 되는 것이다.

혹 우분투 서버라면 간단히 아래 명령어를 사용한다.

sudo a2dismod security2

카테고리

, ,

대표글

댓글 남기기