티스토리 뷰

php상에서 파일을 업로드하게되면 제한된 용량때문에 큰 용량의 파일 업로드에 문제가 생기게 됩니다. 업로드 기본용량은 2M입니다. 너무 적죠. 그래서 설정파일(php.ini)에서 업로드 용량설정을 따로 늘려줄 필요가 있습니다.

 

php설정파일은 보통 /etc/php.ini 에 위치해있습니다.

 

# vi /etc/php.ini

 

 

* upload_max_filesize = 2M

php 파일 업로드 최대용량입니다. 기본 2M... 이걸 늘려주면 됩니다. 100M로..

 

 

* post_max_size = 8M

post 전송 최대용량입니다. 파일 업로드를 하게 되면 대부분 post 방식으로 서버에 전송됩니다.

이 용량이 부족하면 전송에 실패하기때문에 파일 업로드 용량과 더불어 변경이 필요합니다.

 

" 파일업로드 용량 + 나머지 데이터 용량(10M 정도) " 으로 설정하면 됩니다.

 

 

* max_execution_time = 30

php 실행시간입니다. (단위 : 초) 이 시간을 초과하면 php 실행이 중단됩니다. 

무한 루프에 빠지는 것을 막기위한 설정입니다.

 

대용량(1G이상)을 처리하기위해서는 긴 시간이 필요하므로 늘려주는 것이 좋습니다. 

 

 

* max_input_time = 60

get, post , 파일업로드 등의 입력 데이터를 받아드리는 최대시간입니다.

그러니까 파일 업로드의 실제 시간이 되겠죠.. 이것을 초과하면 파일업로드는 당연히 실패됩니다.

 

대용량(1G이상)을 첨부하기위해서는 -1(무제한)값으로 설정하는 것이 좋습니다.

 

 

* memory_limit = 128M

php의 메모리 사용량입니다. 파일 업로드시 업로드된 파일은 먼저 메모리에 적재되므로 메모리 사용량이 넉넉해야됩니다.

 

 

@ 결과적으로 post_max_size 값 > upload_max_filesize 값 >= memory_limit 값 이 성립해야 파일업로드가 실패되지않습니다. 따라서 memory_limit 값이 최대 업로드 가능 용량이 됩니다.

 

 

php.ini 설정완료에는 항상 php 서비스를 재시작 시켜줘야합니다.

 

php.ini 파일 편집하기

php.ini 파일에 접근할 수 있는 경우 다음 코드를 php.ini 파일에 추가합니다.

memory_limit = 64M upload_max_filesize = 64M post_max_size = 64M file_uploads = On max_execution_time = 300

공유 호스트를 이용하는 경우 루트 폴더에 php.ini 파일을 만들어 위의 코드를 추가하여 제대로 작동하는지 확인해보시기 바랍니다.

PC에서 Xampp와 같은 프로그램을 설치하여 워드프레스를 운영하는 경우 php.ini 파일의 위치는 다음과 같습니다(대부분 인터넷에서 확인한 것이라 부정확할 수 있습니다. 부정확한 경우 아래 댓글로 알려주시면 수정하도록 하겠습니다).

  • Windows용 Xampp - xampp\php\php.ini
  • 리눅스용 Xampp -  대부분의 배포판에서 /opt/lampp/ 아래에 있음, 그러므로 위치는 /opt/lampp/etc/php.ini
  • Autoset - 도구 > PHP 기본 경로 설정에서 설정(참고)
  • Bitnami - /installation_directory/php/etc/php.ini (예: /opt/bitnami/php/etc/php.ini)
  • Mamp (매킨토시용) - /Applications/MAMP/bin/php/php5.x.x/conf (이 글을 참고해보시기 바랍니다.)

.htaccess 파일 편집하기

.htaccess 파일의 맨 끝에 다음 라인을 추가해보도록 합니다.

php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 300 php_value max_input_time 300

위의 코드를 추가하면 호스팅 서버에 따라 오류가 날 수 있습니다. Bluehost에서 이 방법을 사용했을 때 오류가 나면 이 글 Bluehost에서 memory_limit 및 max_execution_time 설정 변경하기 부분에 나와 있는 방법을 참고해보시기 바랍니다.

위의 그림은 카페 24 호스팅을 이용하고 있는 워드프레스 사이트에서 시스템 정보를 확인해본 것입니다. 카페24의 경우 upload_max_filesize의 크기는 21MB로 설정되어 있습니다(이 설정은 추후에 카페24에 의해 상향 조정될 수 있을 것입니다). 파일 업로드 크기를 변경하려면 위의 코드를 .htaccess 파일에 추가한 후 테스트해보시기 바랍니다. 그래도 문제가 해결되지 않으면 카페24에 문의해보시기 바랍니다.

테마 함수 파일에 추가하기

테마 함수 파일에 다음 코드를 추가해봅니다.

@ini_set( 'upload_max_size' , '64M' ); @ini_set( 'post_max_size', '64M'); @ini_set( 'max_execution_time', '300' );

의외로 이 방법을 통해 쉽게 파일 업로드 크기가 변경될 수 있습니다.

서버 자체에서 파일 업로드 크기 제한이 적용되어 있는 경우 호스팅 업체에 문의하여 문제를 해결해야 합니다. Bluehost VPS 또는 Dedicated 플랜을 이용하는 경우 "wp_memory_limit 및 max_execution_time 설정 변경하기" 글을 참고해보시기 바랍니다.

추가: 다음과 같은 오류 메시지가 표시되는 경우에도 위의 내용을 참고로 메모리 크기를 늘려주시기 바랍니다(참고):

POST Content-Length of 10758911 bytes exceeds the limit of 8388608 byte

참고:

 

출처1 : https://www.thewordcracker.com/intermediate/how-to-increase-maximum-file-upload-size/

출처2 : https://conory.com/blog/44009

출처3 : https://webdir.tistory.com/378

댓글