PHP php.ini 설정으로 웹에서의 파일업로드 용량 변경
페이지 정보
본문
php.ini 파일이 어디있을까???
php를 컴파일할때 php.ini 파일이 적용되는 장소를 설정해주게됩니다.
Apache 일때
'--with-config-file-path=/usr/local/apache/conf'
1. php.ini 위치 찾기
웹페이지에서 <?php echo phpinfo(); ?> 를 실행하면
Apache 일때
Configuration File (php.ini) Path /usr/local/apache/conf/php.ini
Nginx 일때
Configuration File (php.ini) Path /etc/php/7.2/fpm
2. php.ini 수정하기
# vi php.ini 를 열어보면
file_uploads = On
파일 업로드를 허용할지 설정하는 부분으로 당연히 ON으로 되어 있어야 합니다.
upload_max_filesize = 100M
최대 업로드 파일 사이즈입니다.
post_max_size = 100M
Post방식으로 넘겨질 최대 데이터 사이즈입니다.
max_execution_time = 300
최대 실행시간입니다. 대용량 파일일수록 시간이 많이 걸리니 당연 실행시간을 늘려 주어야 합니다. 0으로 세팅하면 무한대이니 알아서 적당히 세팅해 주십시요
memory_limit = 128M
php에서 사용하는 메모리 사용량입니다.
php에서 많은 메모리를 할당받을 경우 서버의 부하가 심해지니 적정량 할당이 필요합니다.
3. Apache 또는 Nginx 설정 수정
3-1. Apache 일때
아파치 2.0 이상을 사용하고 php.ini 를 변경했으나 용량변경이 안될경우
아파치 2.0 버전에서부터 php.conf 파일의 LimitRequestBody 부분도 수정을 봐야 됩니다.
----------
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
LoadModule php4_module modules/libphp4.so
#
# Cause the PHP interpreter handle files with a .php extension.
#
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 20000000
</Files>
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
3-2. Nginx 일때
vi /etc/nginx/nginx.conf 에서 파일 업로드 크기 제한을 변경합니다.
http 블록에 내용을 추가합니다.
http { 아래에 추가합니다.
client_max_body_size 20M;
4. Apache 또는 Nginx 재실행
php.ini 설정을 변경한후 아파치(nginx)를 restart 합니다.
4-1. Apache 일때
# cd usr/local/apache/bin/
# ./apachectl restart
4-2. Nginx 일때
# sudo service php-fpm restart
# systemctl restart nginx
Ubuntu에서 service php-fpm restart 명령을 실행할 때 다음과 같은 오류가 발생하는 경우가 있습니다.
Failed to restart php-fpm.service: Unit php-fpm.service not found
이 경우 사용 중인 php-fpm의 버전에 따라 다음 명령 중 하나를 실행해야 합니다.
sudo service php5-fpm restart // php 5.x 버전
sudo service php7.0-fpm restart // php 7.0.x 버전
sudo service php7.1-fpm restart // php 7.1.x 버전
sudo service php7.2-fpm restart // php 7.2.x 버전
sudo service php8.1-fpm restart // php 8.1.x 버전
sudo service php8.2-fpm restart // php 8.2.x 버전
참고사이트
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=33202
http://blog.naver.com/bluesnoow/120023224967
http://cafe.naver.com/dungg/580
https://scbyun.com/entry/리눅스-NGINX-PHP-파일-업로드-크기-제한-변경
https://avada.tistory.com/782
php를 컴파일할때 php.ini 파일이 적용되는 장소를 설정해주게됩니다.
Apache 일때
'--with-config-file-path=/usr/local/apache/conf'
1. php.ini 위치 찾기
웹페이지에서 <?php echo phpinfo(); ?> 를 실행하면
Apache 일때
Configuration File (php.ini) Path /usr/local/apache/conf/php.ini
Nginx 일때
Configuration File (php.ini) Path /etc/php/7.2/fpm
2. php.ini 수정하기
# vi php.ini 를 열어보면
file_uploads = On
파일 업로드를 허용할지 설정하는 부분으로 당연히 ON으로 되어 있어야 합니다.
upload_max_filesize = 100M
최대 업로드 파일 사이즈입니다.
post_max_size = 100M
Post방식으로 넘겨질 최대 데이터 사이즈입니다.
max_execution_time = 300
최대 실행시간입니다. 대용량 파일일수록 시간이 많이 걸리니 당연 실행시간을 늘려 주어야 합니다. 0으로 세팅하면 무한대이니 알아서 적당히 세팅해 주십시요
memory_limit = 128M
php에서 사용하는 메모리 사용량입니다.
php에서 많은 메모리를 할당받을 경우 서버의 부하가 심해지니 적정량 할당이 필요합니다.
3. Apache 또는 Nginx 설정 수정
3-1. Apache 일때
아파치 2.0 이상을 사용하고 php.ini 를 변경했으나 용량변경이 안될경우
아파치 2.0 버전에서부터 php.conf 파일의 LimitRequestBody 부분도 수정을 봐야 됩니다.
----------
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
LoadModule php4_module modules/libphp4.so
#
# Cause the PHP interpreter handle files with a .php extension.
#
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 20000000
</Files>
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
3-2. Nginx 일때
vi /etc/nginx/nginx.conf 에서 파일 업로드 크기 제한을 변경합니다.
http 블록에 내용을 추가합니다.
http { 아래에 추가합니다.
client_max_body_size 20M;
4. Apache 또는 Nginx 재실행
php.ini 설정을 변경한후 아파치(nginx)를 restart 합니다.
4-1. Apache 일때
# cd usr/local/apache/bin/
# ./apachectl restart
4-2. Nginx 일때
# sudo service php-fpm restart
# systemctl restart nginx
Ubuntu에서 service php-fpm restart 명령을 실행할 때 다음과 같은 오류가 발생하는 경우가 있습니다.
Failed to restart php-fpm.service: Unit php-fpm.service not found
이 경우 사용 중인 php-fpm의 버전에 따라 다음 명령 중 하나를 실행해야 합니다.
sudo service php5-fpm restart // php 5.x 버전
sudo service php7.0-fpm restart // php 7.0.x 버전
sudo service php7.1-fpm restart // php 7.1.x 버전
sudo service php7.2-fpm restart // php 7.2.x 버전
sudo service php8.1-fpm restart // php 8.1.x 버전
sudo service php8.2-fpm restart // php 8.2.x 버전
참고사이트
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=33202
http://blog.naver.com/bluesnoow/120023224967
http://cafe.naver.com/dungg/580
https://scbyun.com/entry/리눅스-NGINX-PHP-파일-업로드-크기-제한-변경
https://avada.tistory.com/782
댓글목록
등록된 댓글이 없습니다.