리눅스서버

php.ini 업로드 용량 설정

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 서비스를 재시작 시켜줘야합니다.


# systemctl restart php-fpm


  • ?
    ㄷㅌㄹㅁ 2019.02.01 12:05:33
    참고로 php.ini 위치를 찾고 싶으면 find / -name php.ini 하시면..
  • ?
    초보자 2021.12.14 10:44:15
    정말 감사합니다. 깔끔하게 정리해주셔서 많은 도움이 되었어요.
?