BOARD

문제 해결

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

페이지 정보

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

본문

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 버전에 맞는 정확한 서비스명을 사용해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.