Снятие ограничений на размер загружаемого файла
Чтобы настроить установку LAMP (Linux, Apache, MySQL, PHP), которая позволяет пользователю загружать большие файлы на свой сервер, необходимо сделать следующее:
Измените следующие переменные в php.ini
- memory_limit= 1000M - установить ограничение памяти на то, что доступно в системе
- post_max_size= 4G - убедитесь, что это значение больше или равно значению- upload_max_filesize
- upload_max_filesize= 4G - установите это на то, что вы хотите, чтобы максимум был
- upload_tmp_dir:- /mnt/raid10/Files/Temp- по умолчанию это отключено, что делает временное расположение на том же диске, где установлена ОС. В моем случае запускать все с Raspberry Pi, что делает его SD-картой. Чтобы иметь меньше ограничений, я установил вместо этого местоположение моего сетевого диска.
После выполнения вышеизложенного ограничение размера загружаемого файла - это физическая память, доступная для устройства, независимо от того, что установлено для memory_limit , и ограничения файловой системы (4 ГБ для файловой структуры FAT). В случае моего Raspberry Pi 3 это было 1 ГБ. 
Обход ограничения памяти для загрузки файла, превышающего объем доступной памяти
Единственный способ преодолеть ограничение памяти - разделить загрузку. После включения чанкинга во время загрузки происходит следующее:
- Загрузка начата на веб-странице.
- Данные из исходного файла передаются в память веб-сервера.
- Данные сбрасываются из памяти веб-сервера во временное местоположение файла.
- Как только временный файл достигает установленного размера порции, эти данные сбрасываются в файл конечного расположения и временный файл удаляется.
- Повторите шаг 2, пока файл не будет завершен.
Как использовать чанкинг
Если вы используете обработчик загрузки, похожий на этот (https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php), то доступно множество встроенных опций. 
В моем случае, когда объявлена #fileupload, я добавил строку для maxChunkSize:
$('#fileupload').fileupload({
    maxChunkSize: 10 * 1024 * 1024, // 10 MB <-----This is the line I added
    add: function (e, data) {
       blah blah blah
    }
    });
}
});
Какое бы значение здесь ни ставилось, будет использоваться размер чанка. Выбранный вами размер требует небольших экспериментов, так как небольшой размер значительно замедлит скорость загрузки, а слишком большой размер приведет к тому, что пользователь сайта не будет видеть прогресс на своей панели прогресса в течение достаточно долгого времени. Для меня 10МБ было счастливым носителем.  
* Обратите внимание, что индикатор выполнения для загрузки будет перемещаться только при запуске каждого чанка, поэтому он становится более изменчивым, чем приятный непрерывный индикатор выполнения, но я на самом деле с этим согласен.