Разное

Php max file size upload: How to Set the PHP Maximum Upload File Size

25.05.2023

Как установить максимальный размер загружаемого файла PHP

Как установить максимальный размер загружаемого файла PHP

В этой статье описывается, как изменить максимальный размер загружаемого файла для сценариев PHP с помощью директив upload_max_filesize и post_max_size  php.

Содержание
  • Изменение максимального размера загружаемого файла
  • Установка директив
  • Дополнительная информация
Изменение максимального размера загружаемого файла

По умолчанию максимальный размер загружаемого файла для сценариев PHP составляет 128 мегабайт. Однако вы можете изменить эти ограничения. Например, вы можете установить нижний предел, чтобы пользователи не могли загружать большие файлы на ваш сайт. Для этого измените директивы upload_max_filesize и post_max_size .

Чтобы обеспечить правильную загрузку файлов, директива post_max_size должна быть немного больше, чем upload_max_filesize .

Например, следующие настройки демонстрируют, как установить ограничение на загрузку файлов до 20 мегабайт:

 upload_max_filesize = 20M
post_max_size = 21M
 

Чтобы проверить текущее значение директивы upload_max_filesize и других директив, вы можете использовать функция phpinfo() . Для получения дополнительной информации см. эту статью.

Установка директив

Предпочтительным способом установки директив php является использование графических инструментов в панели управления.

Для учетных записей, использующих панель управления cPanel, см. эту статью.

Об учетных записях, использующих панель управления Plesk, см. в этой статье.

Многие учетные записи также позволяют использовать собственный файл php.ini. Инструкции по созданию пользовательского файла php.ini см. в этой статье.

Дополнительная информация
  • Чтобы просмотреть полный список директив php.ini , посетите http://www. php.net/manual/en/ini.list.php.
  • Для получения дополнительной информации о директиве upload_max_filesize
    посетите http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize.
  • Для получения дополнительной информации о директиве post_max_size посетите http://www.php.net/manual/en/ini.core.php#ini.post-max-size.

Детали статьи

  • Уровень: Продвинутый
Другие статьи в этой категории
  • Сообщения об ошибках PHP
  • Регистрация ошибок PHP
  • PHP часовые пояса
  • Максимальное время выполнения PHP
  • PHP директива allow_url_fopen
  • Директива PHP register_globals
  • Директива о магических кавычках PHP
  • PHP максимальный размер загружаемого файла
  • Ограничение памяти PHP-скрипта
  • PHP max_input_vars директива
  • PHP директива expose_php
  • PHP директива output_buffering
  • Директива PHP disable_functions

Показать больше

Статьи по теме
  • Изменение версий и настроек PHP с помощью PHP Selector
  • Пользовательские файлы php. ini
  • Использование директив php.ini
  • Переключение версий PHP в Plesk

Показать больше

Развивайте свой веб-бизнес

Подпишитесь, чтобы получать еженедельные советы, стратегии и новости, необходимые для развития вашей сети бизнес.

Бесплатно. Отписаться в любое время.

Была ли эта статья полезной для вас? Тогда вам понравится наша поддержка. Испытайте преимущества хостинга A2 уже сегодня и получите предварительно защищенный и предварительно оптимизированный веб-сайт. Ознакомьтесь с нашими планами веб-хостинга сегодня.

Загрузка больших файлов > 512 МБ — Последняя версия руководства по администрированию Nextcloud последняя документация

Максимальный размер файла для загрузки по умолчанию составляет 512 МБ. Вы можете увеличить это ограничить до того, что позволяет ваша файловая система и операционная система. Есть определенные жесткие ограничения, которые не могут быть превышены:

  • < 2 ГБ на 32-битной архитектуре ОС

  • < 2 ГБ с IE6 - IE8

  • < 4 ГБ с IE9 - IE11

64-битные файловые системы имеют гораздо более высокие ограничения; обратитесь к документации по вашему файловая система.

Примечание

На клиента синхронизации Nextcloud эти ограничения на загрузку не распространяются. так как он загружает файлы небольшими порциями. См. клиентскую документацию для получения дополнительной информации о параметрах конфигурации.

Конфигурация системы

  • Убедитесь, что установлена ​​последняя версия PHP

  • Отключение пользовательских квот, что делает их неограниченными

  • Ваш временный файл или раздел должен быть достаточно большим, чтобы вместить несколько параллельные загрузки от нескольких пользователей; например если максимальный размер загрузки составляет 10 ГБ и среднее количество пользователей, одновременно загружающих файлы, равно 100: временное пространство имеет вмещать не менее 10×100 ГБ

Настройка веб-сервера

Примечание

Nextcloud поставляется с собственным файлом nextcloud/.htaccess . Потому что php-fpm не могу прочитать настройки PHP в . htaccess

эти настройки должны быть установлены в файл nextcloud/.user.ini .

Установите следующие два параметра в соответствующем файле php.ini (см. Загруженный файл конфигурации раздел версии PHP и информация для поиска соответствующие файлы php.ini)

 php_value upload_max_filesize 16G
php_value post_max_size 16G
 

Параметры upload_max_filesize и post_max_size могут не применяться к загрузке файлов через запросы PUT одного файла WebDAV или загрузку файлов фрагментами Для них тайм-ауты PHP и веб-сервера являются ограничивающим фактором для размера загрузки.

Настройте эти значения в соответствии с вашими потребностями. Если вы видите тайм-ауты PHP в своих файлах журналов, увеличьте значения времени ожидания, которые указаны в секундах:

 php_value max_input_time 3600
php_value max_execution_time 3600
 

Модуль mod_reqtimeout Модуль Apache также может мешать завершению больших загрузок. Если вы используете это модуль и получить неудачную загрузку больших файлов либо отключить его в вашем Apache конфиг или поднять настроенный RequestReadTimeout тайм-аутов.

В конфигурации вашего веб-сервера также есть несколько других параметров конфигурации, которые может предотвратить загрузку больших файлов. См. руководство вашего веб-сервера. как правильно настроить эти значения:

Апач

  • Тело лимита запроса

  • SSLRenegBufferSize

  • Время ожидания

Апач с mod_fcgid

  • FcgidMaxRequestInMem

  • Фкгидмаксрекуестлен

Примечание

Если вы используете Apache/2.4 с mod_fcgid, по состоянию на февраль/март 2016 г. FcgidMaxRequestInMem по-прежнему необходимо значительно увеличить значение по умолчанию. чтобы избежать возникновения ошибок сегментации при загрузке больших файлов. это не обычный , но служит обходным путем для Apache с ошибкой mod_fcgid # 51747.

Параметр FcgidMaxRequestInMem значительно выше нормального больше не может быть необходимо, как только ошибка № 51747 будет исправлена.

Apache с mod_proxy_fcgi

  • Время ожидания прокси-сервера

нгинкс

  • client_max_body_size

  • fastcgi_read_timeout

  • client_body_temp_path

Начиная с nginx 1.7.11 новая опция конфигурации fastcgi_request_buffering доступен. Установка для этого параметра значения fastcgi_request_buffering off; в вашей конфигурации nginx может помочь с тайм-аутами во время загрузки. Кроме того, это помогает, если у вас заканчивается дисковое пространство в разделе tmp вашей системы.

Примечание

Убедитесь, что client_body_temp_path указывает на раздел с достаточно места для размера вашего загружаемого файла и на том же разделе, что и upload_tmp_dir или tempdirectory (см. ниже). Для оптимального производительности, поместите их на отдельный жесткий диск, предназначенный для подкачка и временное хранилище.

Если ваш сайт находится за внешним интерфейсом nginx (например, балансировщиком нагрузки):

По умолчанию загрузка будет ограничена 1 ГБ из-за proxy_buffering и proxy_max_temp_file_size на внешнем интерфейсе.

  • Если вы можете получить доступ к конфигурации внешнего интерфейса, отключите proxy_buffering или увеличьте размер proxy_max_temp_file_size по умолчанию с 1 ГБ.

  • Если у вас нет доступа к внешнему интерфейсу, установите для заголовка X-Accel-Buffering значение add_header X-Accel-Buffering no; на вашем внутреннем сервере.

Настройка PHP

Если вы не хотите использовать Nextcloud .htaccess или .user.ini , вы можете вместо этого настройте PHP. Обязательно закомментируйте все строки

.htaccess относящийся к размеру загрузки, если вы его ввели.

Если вы используете Nextcloud в 32-разрядной системе, любая директива open_basedir в файле php.ini необходимо закомментировать.

Установите следующие два параметра внутри php.ini , используя свои собственные настройки. значения размера файла:

 upload_max_filesize = 16G
post_max_size = 16G
 

Сообщите PHP, какой временный каталог вы хотите использовать:

 upload_tmp_dir = /var/big_temp_file/
 

Буферизация вывода должна быть отключена в .htaccess или .user.ini или php.ini или PHP вернет ошибки, связанные с памятью:

Настройка Nextcloud

В качестве альтернативы upload_tmp_dir PHP (например, если у вас нет доступа к php.ini ) вы также можете настроить временное место для загруженных файлов с помощью tempdirectory в вашем config.php (см. Параметры конфигурации).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *