2016-10-10 3 views
3

Я понимаю, что есть много вопросов по этому поводу, но я следил за ними и не могу найти никакой информации о том, как дальше отлаживать это, не работает.Невозможно загрузить файлы более 500 МБ, а upload_max_filesize - 1G

Я могу загрузить файл 490 МБ абсолютно нормально. Я не могу загрузить файл размером 562,8 МБ.

Я бегу PHP 7.0.11 с FPM, Nginx 1.11.3, убунту 16 и используя Laravel 5,1

Мой PHP INI настройки:

upload_max_filesize 1GB

post_max_size 1GB

memory_limit 1GB (это не должно быть фактически необходимо, но я попробовал это в любом случае)

Мои настройки Nginx:

client_max_body_size 1G

Я не нашел никаких ссылок на любые другие переменные, которые должны быть изменены или которые могут помешать.

Когда я загружаю $_FILES выглядит следующим образом:

["file"]=> 
    array(5) { 
    ["name"]=> string(36) "CSBgGvDIAaZtbC4lmliLevHf0bAnWiKM.rar" 
    ["type"]=> string(0) "" 
    ["tmp_name"]=> string(0) "" 
    ["error"]=> int(1) 
    ["size"]=> int(0) 
    } 

Там нет ничего в моем Nginx или ошибки, связанные журналах.

$_SERVER['content_length'] - 652844444, который является правильной длиной файла.

'error' указан как 1. Я не знаю, является ли это 1, как в true, или 1, как в соответствующем сообщении об ошибке. Документы php перечисляют сообщение об ошибке для 1 в документах как:

Загруженный файл превышает директиву upload_max_filesize в php.ini.

Но оба:

echo phpinfo(); 
echo ini_get('upload_max_filesize'); 

Показать 1 Гб, так что файл не должен превышать его, потому что это 562,8 MB.

Без дальнейших сообщений об ошибках и после каждой инструкции и руководства, которые я могу найти в Google, я полностью потеряю то, что может быть.

Я также использую Cloudflare, но он отключен для этого субдомена, и ограничения на Cloudflare равны 100 МБ, а не 500 МБ, поэтому я не думаю, что это как-то связано с этим.

Есть ли способ отладить это? На данный момент у меня полная потеря.

+0

http://php.net/manual/en/features.file-upload.errors.php в соответствии с этим в вашей конфигурации PHP INI не было. Если вы используете PHP-FPM, вам может потребоваться убедиться, что вы меняете правильные конфигурации. Это странно, когда дело доходит до того, что он читает. – apokryfos

+1

Вот что я цитировал? Можете ли вы объяснить, что вы имеете в виду? Если я делаю 'ini_get ('upload_max_filesize')' на той же странице, что и форма, то это те настройки php.ini, которые используются. – robjbrain

+0

Возможно, это что-то с таймаутом? Вы проверяете загрузку на локальном хосте или на внешнем сервере? Вы можете попробовать это: https://easyengine.io/tutorials/php/increase-script-execution-time/ –

ответ

0

Так что я решил это. На самом деле очень досадно. Проблема заключалась в том, что я набрал 1 ГБ вместо 1G в php.ini. Никаких сообщений об ошибках не было дано, и было совсем не ясно, что он не использует 1 гигабайт. Но php.ini не распознает такие вещи, как 1KB, 1MB или 1GB, которые вы должны использовать без B.

Извлеченный урок, много времени потрачено впустую.

0

Вы используете облачный/размещенный сервер? На многих размещенных серверах жесткие ограничения на максимальные загрузки файлов, которые они не позволяют вам переопределить даже с помощью ini-файла. Если вы используете размещенный сервер, вам может потребоваться обратиться к вашему провайдеру хостинга, чтобы переопределить лимит для вас.

+0

Это цифровая капелька с Ubuntu 16. Я не верю, что таких ограничений нет. Google ничего не принесла – robjbrain