php.ini 설정과 웹 서버 옵션 조정을 통한 파일 업로드 용량 제한 변경 방법
페이지 정보

본문
그누보드 운영 시 대용량 파일 업로드 오류를 해결하기 위해 php.ini 및 웹 서버 설정을 변경하고 적용하는 방법을 안내합니다.
파일 업로드 용량 제한 실패 원인 및 수정 대상
그누보드 운영 환경에서 대용량 파일 업로드 시 실패하는 현상은 주로 PHP 설정의 용량 제한이나 웹 서버 자체의 요청 본문 크기 제한이 파일 크기보다 작게 설정되어 있을 때 발생합니다.
원인 항목
- php.ini 설정:
upload_max_filesize(최대 업로드 파일 크기 지정)와post_max_size(POST 방식으로 전달되는 최대 데이터 크기 지정) 설정이 부족할 때 발생합니다. - 웹 서버 설정: 웹 서버 자체의 요청 본문 크기 제한인 Apache의
LimitRequestBody나 Nginx의client_max_body_size설정이 부족할 때 발생합니다.
수정 대상
- php.ini 파일:
file_uploads,upload_max_filesize,post_max_size,max_execution_time,memory_limit항목을 환경에 맞게 수정합니다. - 웹 서버 설정 파일: Apache 환경에서는
php.conf파일의LimitRequestBody항목을 수정하고, Nginx 환경에서는nginx.conf파일의http블록 내에client_max_body_size지시어를 추가하여 수정합니다.
php.ini 파일 위치 확인 및 주요 설정 변경
서버 환경에 따라 php.ini 파일의 위치는 다를 수 있습니다. 현재 적용 중인 설정을 확인하고 변경하려면 다음 순서를 참고하십시오.
1. php.ini 파일 경로 확인
웹페이지에서 phpinfo() 함수를 실행하면 현재 적용 중인 php.ini 파일의 경로를 확인할 수 있습니다. Apache 환경에서는 대개 기본 설정 경로에 위치하며, Nginx 및 PHP-FPM 환경에서는 /etc/php/7.2/fpm 경로 등을 통해 확인할 수 있습니다.
2. 설정 변경 전 사전 백업
설정을 변경하기 전 기존 설정 파일을 반드시 백업하여 문제가 발생했을 때 원상복구할 수 있도록 준비해야 합니다.
3. php.ini 주요 설정 수정
php.ini 파일을 열어 환경에 맞게 다음 항목들을 수정합니다.
file_uploads = On
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
memory_limit = 128M
주요 설정 항목별 역할
- file_uploads: 파일 업로드 허용 여부를 설정합니다.
- uploadmaxfilesize: 최대 업로드 파일 크기를 지정합니다.
- postmaxsize: POST 방식으로 전달되는 최대 데이터 크기를 지정합니다.
- maxexecutiontime: 대용량 파일 처리에 필요한 최대 실행 시간을 지정합니다.
- memory_limit: PHP가 사용하는 최대 메모리 양을 지정합니다.
웹 서버별 추가 설정 조정
php.ini 설정을 변경했음에도 대용량 파일 업로드가 여전히 실패한다면, 사용하는 웹 서버(Apache 또는 Nginx)의 자체적인 요청 크기 제한 설정이 원인일 가능성이 높습니다.
Apache 환경
아파치 2.0 이상 버전을 사용하는 경우 php.conf 파일의 LimitRequestBody 항목을 함께 수정해야 합니다.
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 20000000
</Files>
Nginx 환경
Nginx 환경에서는 nginx.conf 파일의 http 블록 내에 client_max_body_size 지시어를 추가하여 파일 업로드 크기 제한을 변경합니다.
http {
client_max_body_size 20M;
}
웹 서버 및 PHP-FPM 재시작 방법과 오류 대처법
설정 변경 후에는 웹 서버나 PHP-FPM 서비스를 재시작해야 변경 사항이 적용됩니다. 단, 서버 환경에 따라 재시작 명령어와 서비스명이 다를 수 있으므로 운영 중인 OS와 PHP 버전을 확인해야 합니다.
Apache 재시작 방법
Apache 환경에서는 다음 경로로 이동하여 재시작 명령어를 실행합니다.
cd usr/local/apache/bin/
./apachectl restart
Nginx 및 PHP-FPM 재시작 방법
Ubuntu 환경에서 PHP-FPM을 재시작할 때 service php-fpm restart 명령어를 실행하면 유닛을 찾을 수 없는 오류가 발생할 수 있습니다. 따라서 사용 중인 PHP 버전에 맞는 명령어를 실행해야 합니다.
sudo service php7.2-fpm restart
systemctl restart nginx
문제 발생 시 대처법
설정 변경 후 문제가 발생하거나 웹 서버가 정상적으로 기동되지 않을 경우, 변경 전에 백업해 둔 설정 파일 원본을 복원한 뒤 웹 서버를 재시작하여 원래 상태로 되돌려야 합니다.
설정 변경 후 복구 및 적용 확인 방법
설정 변경 후 문제가 발생하거나 웹 서버가 정상 기동되지 않을 경우, 변경 전에 백업해 둔 설정 파일 원본을 복원하고 웹 서버를 재시작하여 원래 상태로 되돌립니다.
적용 후에는 phpinfo() 또는 실제 파일 업로드 테스트를 통해 변경된 용량 제한이 정상적으로 반영되었는지 확인합니다.
상황별 판단 및 대응 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 대용량 파일 업로드 실패 | PHP 및 웹 서버의 용량 제한 설정 확인 | 설정 파일 백업 후 php.ini 및 웹 서버 설정 수정 |
| 설정 변경 후에도 제한 해제 안 됨 | 웹 서버별 추가 제한 지시어 누락 확인 | Apache(LimitRequestBody) 또는 Nginx(clientmaxbody_size) 설정 추가 |
| 설정 변경 후 서비스 오류 발생 | 설정 파일 문법 오류 또는 서비스 재시작 실패 | 백업본 복원 후 웹 서버 및 PHP-FPM 재시작 |
실전 FAQ
Q. 설정 변경 후 웹 서버가 정상적으로 기동되지 않습니다.
- 예외 상황: 설정 파일 내 문법 오류가 있거나, 서버 환경에 맞지 않는 재시작 명령어를 사용했을 때 발생합니다.
- 대안: 변경 전 백업해 둔 원본 파일을 복원한 뒤, 웹 서버와 PHP-FPM 서비스를 재시작하여 정상 상태로 되돌립니다.
Q. Ubuntu에서 PHP-FPM 재시작 시 유닛을 찾을 수 없다고 나옵니다.
- 막히는 지점:
service php-fpm restart명령어는 특정 PHP 버전을 명시하지 않아 발생할 수 있습니다. - 대안:
sudo service php7.2-fpm restart와 같이 현재 설치된 PHP 버전에 맞는 정확한 서비스명을 사용해야 합니다.
함께 보면 좋은 글
- 그누보드 스마트에디터 사진 업로드 용량 제한 설정 방법
- PHP 파일 업로드 보안 처리 가이드: is_uploaded_file 및 move_uploaded_file 사용
- php.ini 수정 없이 PHP 세션 지속 시간 동적 설정 및 관리 방법
참고자료
기타 참고자료
- 이전글그누보드4 게시판 자동등록방지 기능 제거 방법 26.09.13
- 다음글그누보드4 게시글 삭제 및 수정 시 생성된 썸네일 파일 자동 삭제 처리 방법 26.09.13
댓글목록
등록된 댓글이 없습니다.