BOARD

문제 해결

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 0회 작성일 26-09-13 11:32

본문

파일 업로드 용량 제한 문제와 증상

그누보드에서 게시판이나 1:1 문의 등을 통해 대용량 파일을 업로드할 때 서버에서 설정한 크기 제한을 넘어서면 업로드가 실패하거나 오류 메시지가 발생할 수 있습니다.

원인 및 사전 백업 안내

파일 업로드 실패는 php.ini의 용량 제한 설정(upload_max_filesize, post_max_size)뿐만 아니라 웹 서버 자체의 요청 본문 크기 제한(Apache LimitRequestBody, Nginx client_max_body_size)이 부족할 때 발생합니다. 설정을 변경하기 전 기존 설정 파일을 반드시 백업하여 원상복구할 수 있도록 준비해야 합니다.

php.ini 파일 위치 확인 및 주요 설정 변경

웹페이지에서 phpinfo() 함수를 실행하면 현재 적용 중인 php.ini 파일의 경로를 확인할 수 있습니다. Apache 환경에서는 대개 설정 경로에 위치하며 Nginx 및 PHP-FPM 환경에서는 /etc/php/7.2/fpm 경로 등을 통해 확인할 수 있습니다.

php.ini 파일을 열어 다음 항목들을 환경에 맞게 수정합니다.

file_uploads = On
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
memory_limit = 128M

각 설정의 역할은 다음과 같습니다.

  • file_uploads: 파일 업로드 허용 여부를 설정합니다.
  • upload_max_filesize: 최대 업로드 파일 크기를 지정합니다.
  • post_max_size: POST 방식으로 전달되는 최대 데이터 크기를 지정합니다.
  • max_execution_time: 대용량 파일 처리에 필요한 최대 실행 시간을 지정합니다.
  • memory_limit: PHP가 사용하는 최대 메모리 양을 지정합니다.

웹 서버별 추가 설정 조정

php.ini를 수정했음에도 용량 제한이 해제되지 않는다면 사용하는 웹 서버별 추가 설정을 확인해야 합니다.

Apache 환경

아파치 2.0 이상 버전을 사용하는 경우 php.conf 파일의 LimitRequestBody 항목을 함께 수정해야 합니다.

<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 20000000
</Files>

Nginx 환경

nginx.conf 파일의 http 블록 내에 client_max_body_size 지시어를 추가하여 파일 업로드 크기 제한을 변경합니다.

http {
client_max_body_size 20M;
}

웹 서버 및 PHP-FPM 재시작

설정 변경 후에는 반드시 웹 서버나 PHP-FPM 서비스를 재시작해야 적용됩니다.

Apache 재시작

cd usr/local/apache/bin/
./apachectl restart

Nginx 및 PHP-FPM 재시작

Ubuntu 환경에서 service php-fpm restart 실행 시 유닛을 찾을 수 없는 오류가 발생할 수 있으므로, 사용 중인 PHP 버전에 맞는 명령어를 실행해야 합니다.

sudo service php7.2-fpm restart
systemctl restart nginx

복구 및 적용 후 확인

설정 변경 후 문제가 발생하거나 웹 서버가 정상 기동되지 않을 경우, 변경 전에 백업해 둔 설정 파일 원본을 복원하고 웹 서버를 재시작하여 원래 상태로 되돌립니다. 적용 후에는 phpinfo() 또는 실제 파일 업로드 테스트를 통해 변경된 용량 제한이 정상적으로 반영되었는지 확인합니다.

함께 보면 좋은 글

댓글목록

등록된 댓글이 없습니다.