최대 업로드 파일 크기 변경


513

액세스 할 수없는 PC에 호스팅 된 웹 사이트가 있습니다. 사람들이 최대 30MB의 mp3 파일을 업로드 할 수있는 업로드 양식이 있습니다. 내 서버 측 스크립트는 PHP로 수행됩니다.

파일을 업로드하려고 할 때마다 파일이 허용 된 최대 크기를 초과한다는 오류 메시지가 표시되므로 크기를 늘려야합니다. 웹에 대한 나의 연구에 따르면 .htaccess내가 액세스 할 수없는 파일을 변경하면 작동하지 않습니다. 다른 사람들은 php.ini작동하지 않는 루트에 사용자 정의 파일을 추가해야한다고 제안했습니다 . 다른 제안?

답변:


877

당신의 값으로 설정해야 upload_max_filesize하고 post_max_sizephp.ini 파일의를 :

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

php.ini 파일을 수정 한 후 새 구성을 사용하려면 HTTP 서버를 다시 시작해야합니다.

php.ini를 변경할 수 없다면 운이 없습니다. 런타임시이 값을 변경할 수 없습니다. php.ini에 지정된 값보다 큰 파일을 업로드하면 호출이에 도달 할 때까지 실패했습니다 ini_set.

핵심 php.ini 지시문 설명을 참조하십시오 .


4
php.ini 파일이 저장된 기본 경로를 알고 있습니까?
Yo Momma

1
Linux에서는 일반적으로 / etc / php / 또는 그 라인을 따라 있습니다. 공유 서버에 있다면 호스팅 제공 업체가 사용자 별 php.ini 파일을 제공 할만큼 관대하지 않으면 운이 나빠집니다.
Johannes Gorset

4
Windows에서 WAMP를 사용하는 경우 WAMP 아이콘> PHP-> php.ini를 클릭하여 편집 할 수 있습니다. 데비안에서 설정 파일은 / etc / php5 / apache2에 있습니다.
meagar

19
에 더 큰 크기를 설정하는 것이 좋습니다 post_max_size. 게시 된 필드의 전체 크기가 파일 크기보다 클 수 있으므로 누군가 40MB 파일을 업로드하는 경우가 많을 경우 초과하여 실패 post_max_size합니다.
acme

2
memory_limit도 업로드 크기를 제한합니다.
Daniel

151

.htaccess파일을 통해 변경할 수 있습니다 .

.htaccess파일은 파일과 동일한 디렉토리에 저장 .php됩니다. 해당 폴더와 모든 하위 폴더의 구성을 수정합니다. .htaccess선택한 디렉토리에 파일 을 작성 하거나 사용하는 경우 수정하면됩니다.

다음은 업로드 제한을 늘릴 수있게합니다 (서버 제공자가을 통해 PHP 구성 변경을 허용하는 경우 .htaccess).

php_value upload_max_filesize 40M
php_value post_max_size 42M

3
항상 작동하지는 않는 것 같습니다. 내 dev 컴퓨터에서 .htaccess에 적절한 값을 설정하면 작업을 수행했습니다. 그러나 공유 호스팅에서이 설정이 작동하지 않지만 허용되는 최대 업로드 크기가 .htaccess에 설정 한 값이라는 오류 메시지가 표시됩니다. 따라서 매우 심각한 상황이 발생합니다.
Eugeniu Torica

5
.htaccess에 이것을 추가하는 것은 Apache를 실행하는 경우에만 작동합니다. 그것을 시도하고 나에게 잘 작동합니다.
AngelGris

php.ini에서이 두 줄의 주석 처리가 없으면 작동하지 않습니다.; 사용자 정의 php.ini (.htaccess) 파일의 이름입니다. 기본값은 ".user.ini"입니다 ;user_ini.filename = ".user.ini" . 이 기능을 비활성화하려면이 옵션을 빈 값으로 설정하십시오;user_ini.filename =
Alan Deep

아파치 CGI 또는 Fast CGI를 사용하는 경우 500 오류가 발생합니다. 이것을 <IfModule mod_php7.c> </ IfModule> 안에 넣으십시오
Shardj

59

나는 같은 문제가 있었고 .user.ini 파일을 만들고 업로드 스크립트가있는 디렉토리에 넣었습니다. 해당 파일 내부 에서이 두 값을 설정했습니다.

  upload_max_filesize = 40M

  post_max_size = 40M

그리고 그것은 나를 위해 잘 작동했습니다!


2
큰. fastcgi가 활성화 된 상태에서도 작동합니다. PHP5.3 이상이 필요합니다.
Ciantic

1
좋아, 이것은 아무것도 작동하지 않을 때 공유 서버에서 작동했습니다. 좋은 발견.
Edward Potter

55

ini_set 함수를 사용할 수도 있습니다 (5.3 이하의 PHP 버전 만 해당).

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');

@acme이 말했듯이, PHP 5.3 이상 에서이 설정은 PHP_INI_PERDIR 지시어이므로 ini_set을 사용하여 설정할 수 없습니다. 대신 user.ini를 사용할 수 있습니다.


38
최근 PHP 버전에서 이러한 ini-settings는 PHP_INI_PERDIR 에만 해당되므로 스크립트에서 설정할 수 없습니다. 자세한 내용은 여기 를 참조하십시오.
acme

46

ini 파일을 찾으려면 먼저 다음을 실행하십시오.

php -i | grep -i "loaded configuration file"

그런 다음 파일을 열고 변경하십시오.

upload_max_filesize = 2M
post_max_size = 2M

2M을 원하는 크기 (예 : 100M)로 바꿉니다.

나는 조금 더 많은 정보를 가진 블로그 게시물을 가지고있다 . 워드 프레스 용 파일


5
파일을 표시 /etc/php5/cli/php.ini하지만 내 구성 파일은 /etc/php5/apache2/php.ini입니다. 오해의 소지가 있습니다.
Fredrick Gauss

2 개의 php.ini 파일이 있습니다 ... 그리고 그 명령에 대한 답으로, 어느 것을 사용하고 있는지 보여줍니다! 따라서 적용하려면 변경이 필요합니다!
lewis4u

40

나는 과거에 같은 문제가 .. 그리고 나는 .htaccess파일 을 통해 그것을 고쳤다

PHP 구성을 변경할 때 내부 서버 오류 가 발생 하는 것을 제외하고 .htaccess구성을 IfModule태그에 넣어야 합니다.

이것은 예입니다, 그것은 나를 위해 잘 작동합니다 :

<IfModule mod_php5.c>
   php_value upload_max_filesize 40M
   php_value post_max_size 40M
</IfModule>

더 많은 것을 이해하려면 PHP 참조입니다. http://php.net/manual/en/configuration.changes.php


5
대체 기능이 제공되었습니다.
AbsoluteƵERØ

3
PHP.7을 지원하려면 <IfModule mod_php7.c>와 같은 블록을 추가하십시오
Mostafa

16

.user.iniPHP 파일 스크립트가있는 디렉토리에서 파일을 생성하여이 문제를 해결했습니다 (이 디렉토리의 모든 PHP 스크립트가 새로운 파일 크기 제한을 가짐을 의미합니다)

내용은 다음 .user.ini과 같습니다.

upload_max_filesize = 40M
post_max_size = 40M

2
이것이 나를위한 해결책입니다. 잘 작동합니다. codeignitor와 같은 프레임 워크를 사용하는 경우 ".user.ini"는 index.php와 같은 위치에 있어야합니다
The Dude

감사. 그것은 나를 위해 작동합니다. php.ini에 액세스 할 수없는 공유 호스팅에 이상적입니다. 난 그냥 PHP 이후 사용할 수 있음 5.3 추가 할
yacsha

6

나는 같은 문제가 있었다. 나는 일반적으로 제안 된 세 가지 방법을 시도했습니다.

  1. functions.php
  2. php.ini
  3. .htaccess

내 문제를 해결 한 경우 없음. 나는 godaddy를 사용하고 제안 된 해결책을 찾았습니다.

  1. 웹 호스팅에 도착한 다음 관리
  2. 에서 소프트웨어 선택 을 선택 PHP 버전을
  3. 표의 오른쪽 상단에있는 글꼴 로 PHP 옵션으로 전환을 선택하십시오 : 파랑
  4. 맨 아래에는 아마도 upload_max_filesize = 2M 이 될 것입니다
  5. 이제 자유롭게 변경하십시오
  6. 저장 버튼 을 클릭 하십시오 !
  7. 이제 wp-admin 패널로 이동하여 Media를 선택한 다음 Add를 선택 하십시오.

짜잔! 이제 다른 최대 업로드 파일 크기가 있습니다 :)


6

여러 번 사이트 위트 공유 호스팅이 php.ini 파일의 설정을 변경할 수 없다는 것을 알았습니다. 또한 .htaaccess 파일을 전혀 크레이트 할 수 없습니다. 그러한 상황에서 우리는 다음과 같은 것들을 시도 할 수 있습니다

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

6

답은 약간 불완전하고, 당신이해야 할 3 가지

php 설치의 php.ini에서 (참고 : CLI, 아파치 또는 nginx에 대해 원하는 경우 조작 할 올바른 php.ini를 찾으십시오. nginx의 경우 일반적으로 /etc/php/7.1/fpm버전이 7.1에 따라 다릅니다. /etc/php/7.1/apache2)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

또는 다른 값을 설정하십시오. 아파치를 설치 한 경우 아파치를 다시 시작 / 재로드하거나 nginx를 사용하는 경우 nginx의 경우 php-fpm 입니다.


5

글쎄, 여기에 2 센트를 추가하고 싶습니다.

공유 웹 호스팅을 사용하고 있으며이 문제를 여러 번 해결하고 직접 해결하려고했지만 아무 소용이 없습니다. 마지막으로 다양한 웹 소스를 확인하고 호스팅 서비스 제공 업체에 문의하여 문제를 해결했습니다. 내 질문은 " memory_limit공유 웹 호스팅에서 PHP 값 을 어떻게 변경할 수 upload_max_filesize있습니까?", " max_input_vars공유 웹 호스팅에서 PHP 값 을 어떻게 바꿀 수 있습니까?", "공유 웹 호스팅에서 PHP 값 을 어떻게 바꿀 수 있습니까?", "어떻게 PHP 값 max_execution_time을 바꿀 수 있습니까? 공유 웹 호스팅? "," max_input_time공유 웹 호스팅에서 PHP 값 을 어떻게 변경할 수 있습니까? " php.ini 또는 .htaccess파일 을 구성하거나 변경하여 더 많은 것 . 나는 그것들을 바꾸려고 노력했지만 문제가 생겼다. 마지막으로 호스팅 제공 업체에 연락하여 PHP를 기본으로 설정하고 PHP 5.6으로 변경 한 것으로 나타났습니다.

"PHP는 '네이티브'모드로 설정되어있어이 값을 무시할 수 없습니다. 나는 단지 '5.6'으로 변경했기 때문에 잘 가야합니다."

ftp Filezilla를 통해 내 웹 사이트를 연결 한 후에는 .htaccess파일이 로컬 랩톱 및 웹 사이트에 숨겨져 있기 때문에 ftp 서비스를 사용하여 숨겨진 파일을 표시하고 로컬 컴퓨터에서 그렇게하는 것을 잊지 마십시오 . public_html 폴더에서 사용할 수 있었고 방금 다운로드하여 파일 끝에 다음 코드를 추가 한 다음 서버에 다시 업로드했습니다.

php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

모든 것이 당분간 제대로 작동하고 있습니다. 어떤 문제로 극복 한 사람이 있으면 여기에 쓰고 위의 코드를 변경할 수 있도록 경고하십시오. 그건 그렇고, 나는 또한 변화를 보여주는 사진을 업로드합니다.

공유 웹 호스팅 서비스에서 ZipArchive 설치에 대해 언급하는 것을 거의 잊어 버린 한 가지 더, 나는 cpanel을 통해 PHP 설정으로 이동하여 PHP 선택기 확장을 클릭 한 다음 zip 섹션을 선택하여 해당 요구 사항을 관리했습니다.

감사.

추신 : 나는 좋은 관행에 개방적이며, 여기에 나쁜 관행이 있으면 알려주십시오. 변경하려고합니다. 감사.


4

아마도 이것은 @ seanb123과 @Fredrick Gauss에게 자신의 의견에 대해 언급해야하지만 Drupal 8.1에서 PHP 7로 수정 해야하는 파일은 다음과 같습니다.

/etc/php/7.0/apache2/php.ini

내 시스템이 "Loaded Configuration File"( php -i | grep -i "loaded configuration file") 이라는 파일 과 info.php 페이지에있는 파일을 포함하여 다른 4 개의 php.ini 파일을 수정했을 것입니다 . 올바른 경로를 발견하는 열쇠는 2012 년부터 사이트에서 발견되었습니다. 그들은 경로 "/etc/php5/apache2/php.ini"가 BACK THEN에서도 더 이상 사용되지 않는다고 말 했지만 어디에서 찾을 수 있는지 실마리를 얻었습니다. PHP7의 경우 PHP5와 약간 다르지만 개념은 동일합니다.

어쩌면 이것은 나처럼 무력한 schmuck을 도울 것입니다.

즉, 필자의 경우 OP에 대한 대답은 상자에 대한 관리자 권한이있는 사람이해야 할 것입니다.

나를 도와 준 사이트 : http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/

이것은 또한 여기에 언급되어 가져 오기 파일 크기 제한을 phpMyAdmin을에

편집 : 내 메모의 전체 텍스트 :

최대 업로드 크기를 변경하려면 /etc/php/7.0/apache2/php.ini (또는 이전 버전 : /etc/php5/apache2/php.ini)에서 upload_max_filesize 및 [필요한 경우] post_max_size를 편집하십시오.

/etc/init.d/apache2 restart

다시 편집 : 큰 파일을 가져 오기 때문에 파일 처리를 위해 시간 제한을 변경해야 할 수도 있습니다. 필자의 경우 "config.default.php"라는 파일을 가져 와서 가져 오기 위해 /usr/share/phpmyadmin/libraries/config.default.php변수 $cfg['ExecTimeLimit'] = 300;를 900으로 변경했습니다. 나중에 아파치를 다시 시작해야합니다


3

그 해결책 중 하나가 저에게 효과적이지 않습니다! (기본적으로 이미 32M으로 설정되어 있습니다.) 문제는 대부분의 경우입니다max_allowed_packet

localhost에서 작업 중이며을 사용하고 MAMP있습니다.

해결책은 다음과 같습니다.

1.없는 경우 my.ini

더하다

--max_allowed_packet=168435456

...\MAMP\bin\startMysql.sh

2. my.ini가있는 경우

아래에

[mysqld]

더하다

max_allowed_packet=100M

끝난!


php.ini와 .user.ini 모두에 max_allowed_packet = 128M을 추가했으며 저에게 도움이되었습니다!
Molasar

2

세 가지 확인해야합니다.

upload_max_filesize, memory_limit그리고 post_max_sizephp.ini의 구성 파일에 정확히.

이 세 가지 설정 모두 PHP가 제출하고 처리 할 수있는 최대 데이터 크기를 제한합니다.

일반적으로 post_max_size하고 memory_limit필요보다 큰합니다 upload_max_filesize.


따라서 세 가지 변수는 총체적 으로 확실하게 확인해야합니다.


2

함께 WAMP꽤 쉽게 전부

WAMP 아이콘> PHP> PHP 설정> upload_max_filesize = nM> n = (2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M, 512M 또는 (사용자 정의) 선택).

서비스가 자동으로 다시로드됩니다.

그러나 서버에 실제로 액세스 할 수 없는 경우 chunkingAPI 작성을 탐색 할 수 있습니다 .


0

또한이 문제가 있었고이 설정을 설정하여 수정했습니다. /etc/nginx/nginx.conf

client_max_body_size 0;

무제한에서와 같이 0입니다.

또한 nginx로 실행되는 리버스 프록시가있는 경우 해당 서버 에도이 설정이 있어야합니다 (이것이 나를 버렸습니다)


0

올바른 php.ini 파일을 편집하고 Apache 또는 Nginx를 다시 시작했지만 여전히 작동하지 않으면 php-fpm 도 다시 시작해야합니다 .

sudo service php-fpm restart 

0

전 세계적으로 변경하는 것이 다소 위험하므로 단일 스크립트의 최대 업로드 값을 늘리려 고했습니다 big_file_upload.php. 어떤 이유로 ini_set도움이되지 않았습니다. 몇 가지 재조사 후에 나는 이것을 생각해 냈습니다. 에 넣어 .htaccess(이름을 통해 변경하지 않는 한 AccessFileName)

<If "%{REQUEST_URI} == '/subfolder/big_file_upload.php'" >
php_value upload_max_filesize 200M
php_value post_max_size 200M
</If>
<Else>
php_value upload_max_filesize 1M
php_value post_max_size 1M
</Else>

나를 위해 일했다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.