Представим, Что вы установили LAMP и настроили одну из CMS, например, WordPress. И вот, дело доходит до загрузки файлов на ваш свежесозданный сайт, и вы видите уведомление о том, что размер файла слишком велик для загрузки. Причина, по которой вы получаете такое уведомление – конфигурационные файлы PHP.
Давайте отредактируем файл php.ini и увеличим максимальный размер загружаемых файлов до 100 мегабайт.
Открываем файл с помощью nano:
# nano /etc/php/7.0/apache2/php.ini
ВАЖНО: директория, в которой будет располагаться конфигурационный файл может отличаться, в зависимости от используемой версии PHP на сервере и операционной системы. В данном примере мы рассматриваем PHP7.0, установленную на Debian 9.
Нас интересуют 5 переменных, которые мы и будем редактировать, а именно:
- max_execution_time – максимальное время, которое будет выполняться скрипт загрузки данных.
- max_input_time – максимальное время, в течении которого будет осуществляться передача данных
- upload_max_filesize – максимальный размер файла, доступный для загрузки. Данный пункт является для нас ключевым.
- post_max_size — максимальный размер отправляемых данных.
- memory_limit – лимит оперативной памяти.
Хотя пункт upload_max_filesize указан как ключевой пункт, изменение только его не является достаточным для изменения максимального размера загружаемых файлов.
Начнем по порядку с последнего пункта – лимит оперативной памяти — memorylimit. Значение данного пункта также накладывает ограничение на максимальный размер файла, поскольку каждый файл, загружаемый на сервер вначале полностью записывается в оперативную память, поэтому значение переменной memorylimit должно быть равно или превышать значение uploadmaxsize. В нашем примере мы поднимаем планку для максимального размера файла до 100 мегабайт, поэтому память мы ограничим с небольшим запасом – 128 мегабайт.
ВАЖНО: ограничение на загрузку файлов можно увеличивать сколь душе угодно, однако внимательно изучите конфигурацию вашего сервера. Если вы располагаете VDS с 4 гигабайтами оперативной памяти, то внимательно подумайте, прежде чем устанавливать значение для memory_limit и upload_max_filesize в 3,4 или более гигабайт. Это вряд ли приведет к чему-то хорошему.
Post_max_size – с этим пунктом все просто – делаем его такого же размера как и upload_max_filesize — 100 мегабайт.
Upload_max_filesize устанавливаем согласно задаче – 100 мегабайт.
Max_input_time – здесь устанавливаем время в секундах, необходимое для загрузки файлов. Этот пункт устанавливается в зависимости от максимального размера файла и скорости передачи данных. Сделаем эту переменную равной 1000 сек.
Max_execution_time – делаем равной предыдущей переменной. Нет никакого смысла скрипту загрузки выполняться, если файлы не передаются. Так же не стоит делать значение меньше, чем указано в max_input_time, поскольку тогда не удастся полностью загрузить файл.
Изменением этих 5 переменных мы подняли ограничение на загрузку файлов до 100 мегабайт. Как видите, это не так уж и сложно, однако в заключение хочу добавить, что нужно помнить несколько простых правил:
- Значения max_input_time и max_execution_time не должны разительно отличаться.
- Значение post_max_size должно быть больше или равно upload_max_filesize.
- Значение post_max_size должно быть меньше, чем указано в memory_limit.
На этом все, удачи в настройке!
If you liked my post, feel free to subscribe to my rss feeds