ГлавнаяРазноеКак увеличить максимальный размер файлов в WordPress

Как увеличить максимальный размер файлов в WordPress

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

Максимальный размер файлов в WordPress может быть установлен на разных уровнях — на уровне конфигурации WordPress, на уровне конфигурации интерпретатора PHP, и даже на уровне веб-сервера.

Максимальный размер файла в WordPress

Максимальный размер файла в WordPress

Директива upload_max_filesize в php.ini

В конфигурационном файле php.ini с помощью директивы upload_max_filesize установлен максимальный размер загружаемых файлов на сервер. Если у вас есть доступ к файлу php.ini на вашей хостинг-площадке, вы можете изменить это значение:

upload_max_filesize = 20M

Учтите, что в PHP так же установлен максимальный размер POST запросов с помощью директивы post_max_size, который должен быть больше или равен максимальному размеру загружаемых файлов:

post_max_size = 20M

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

Директивы PHP через .htaccess

Если у вас нет доступа к файлу конфигурации PHP, вы можете попробовать установить значения с помощью файла .htaccess веб-сервера Apache. Если вы работаете с Apache, то в корневой директории с вашим сайтом WordPress наверняка уже есть файл .htaccess, в который вы можете добавить следующие значения:

php_value upload_max_filesize 20M
php_value post_max_size 20M

Изменения в файлы .htaccess как правило вступают в силу сразу после сохранения.

Директивы PHP через nginx.conf

Для веб-сервера nginx к сожалению нет возможности использовать файл .htaccess, но если вы ищите возможность изменять значения php.ini с помощью конфигурационного файла nginx, это делается через директиву fastcgi_param (в случае если PHP настроен как FastCGI клиент):

fastcgi_param PHP_VALUE upload_max_filesize=20M;
fastcgi_param PHP_VALUE post_max_size=20M;

Кстати в nginx есть директива client_max_body_size, которая отвечает за максимальный размер данных передаваемых в HTTP запросах. Она тоже влияет на максимальный размер загружаемых файлов. Для вступления в силу изменений конфигурационного файла nginx, веб-сервер необходимо перезагрузить.

С помощью функции ini_set()

Директивы upload_max_filesize и post_max_size можно так же изменить с помощью PHP функции ini_set() в файле wp-config.php или с помощью плагина, если это разрешено в настройке интерпретатора:

ini_set( 'upload_max_size' , '20M' );
ini_set( 'post_max_size', '20M');

Фильтр upload_size_limit

В WordPress есть специальный фильтр upload_size_limit используемый в функции wp_max_upload_size(). Этот фильтр отвечает за максимальный размер загружаемых файлов. Значение по умолчанию — наименьшее из upload_max_filesize и post_max_size из файла php.ini, и использовать данный фильтр, можно только в пределах этого значения.

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

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

function my_upload_size_limit( $limit ) {
add_filter( 'upload_size_limit', 'my_upload_size_limit' );
    return wp_convert_hr_to_bytes( '5M' );
}

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

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!

  • Почему всё так сложно? Ведь это есть где-то в обычном меню консоли. Как найду, обязательно поставлю вас в известность. С наступающими праздниками! :)

    • В режиме сети (multisite) можно установить максимальный размер загружаемых файлов для каждого сайта в сети в настройках, но это лишь возможность поставить огранение, но не снять его. Если ограничение стоит на сервере, то в настройках никак его не превысить.

      • Да, я уже это понял. Что означает оранжевая чёрточка слева от аватарки в DISQUS?

        • Оранжевой полоской выделяется тот комментарий на который ссылается страница (#comment-1188999131).

          • Игорь

            Подскажите,что делать если ничего из вышеописанного не помогло?

          • В этом случае проще всего обратиться в тех. поддержку вашего хостинг провайдера.

    • В обычном меню консоли? Был бы очень благодарен… Перепробовал все способы увеличения — все равно остается 8М. Сервер на Ubuntu + nginx (как фронт-энд для отдачи статики) + Apache (как бэк-энд для обработки php) + php 5.5.x + xcache.
      Сore:
      post_max_size 8M
      upload_max_filesize2048 M

      Загрузить файлы более 8 М — невозможно. Вроде все пересмотрел, опытным путем менял размеры — безрезультатно…

      • Попробуйте увеличить post_max_size так же до 2048M? Еще в директиве upload_max_filesize у вас пробел стоит после 2048, а надо до.

        • Благодарю за оперативность!
          Только что снова попробовал увеличить через .htaccess — все получилось. Хотя, еще несколько часов назад именно с этого способа и начал менять размер. Может, по запарке не сохранил просто…
          А с пробелами это я просто в комментарии неправильно написал.

  • Вася

    Ну и где искать етот ебаный файл пхп ини хер написал даун

  • спамер

    абхкидабракарчляляля

  • спамер

    какогохуянеработаетэтотдерьмоспозоп, сыйткласснояспамиртакоезаконэсорянчег

  • В разделе «Фильтр upload_size_limit» вы пропустили, собственно, строку как вызвать функцию my_upload_size_limit (куда, кстати, передаётся размер загружаемого файла).

    к примеру, этот код, в идеале, должен выглядеть следующим образом:

    function my_upload_size_limit() {
    add_filter( ‘upload_size_limit’, ‘my_upload_size_limit’ );
    return wp_convert_hr_to_bytes( ’24M’ );
    }
    my_upload_size_limit();

    Но в итоге, при загрузке файла размером в 4 мегабайта (не смотря на то, что висит предупреждение — «Максимальный размер файла: 24 MB.»), у меня все равно вылетает ошибка:

    Warning: Cannot modify header information — headers already sent by (output started at /wp-content/themes/farida/functions.php:599) in /wp-admin/async-upload.php on line 35

    ЗакрытьФайл «DSC_0703.JPG» не удалось загрузить из-за ошибки
    Размер загруженного файла превышает значение upload_max_filesize, установленное в файле php.ini.