Поддержка Проблемы и решения Не загружаются медиафайлы

  • Решено nekronez

    (@nekronez)


    При попытке загрузить zip файл размером 3мб
    Вылазит ошибка: «От сервера получен неожиданные ответ. Файл возможно не был загружен корректно. Перезагрузите страницу или проверьте медиатеку.»
    В консоли браузера выводится: POST 413 (Request Entity Too Large)
    При выборе файла сайт пишет: «Максимальный размер файла: 12 MB.»

    Пробовал:
    1) Указывать размер в .htaccess
    php_value upload_max_filesize 12M
    php_value post_max_size 12M
    php_value max_execution_time 300
    php_value max_input_time 300
    На сайте при загрузке файла отображается измененное значение, но результат тот же

    2) Указать размер в functions.php с помощью
    @ini_set( ‘upload_max_size’ , ’12M’ );
    @ini_set( ‘post_max_size’, ’12M’);
    @ini_set( ‘max_execution_time’, ‘300’ );
    Результат тот же

    3) Пробовал указать максимальный размер с помощью плагина
    Результат тот же

    4) Пробовал изменить права на 777 у папок wp-content и wp-content/uploads
    Результат тот же

    В логах ничего ошибок нет касательно этой проблемы

    Как решить данную проблему?

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Модератор Юрий

    (@yube)

    При выборе файла сайт пишет: «Максимальный размер файла: 12 MB.»

    PHP может писать только то, что знает PHP — upload_max_size. Но она ничего не знает об ограничениях, установленных до нее: в конфигах nginx, apache, и т.п. Стоит посмотреть там.

    В настройках nginx указаний на размер файл не установлено.
    В настройках apache так же, пробовал указать сам «LimitRequestBody 33554432» (32МБ), но безуспешно.

    • Ответ изменён 1 неделя назад пользователем nekronez.
    Модератор Yui

    (@fierevere)

    ゆい

    В настройках nginx указаний на размер файл не установлено.

    а должно быть указано

    client_max_body_size

    есть вот такая директива для nginx,
    вероятно как раз у вас он и стоит.

    Добавьте в nginx.conf (или в файл конфигурации вашего сайта)
    в контекст server {

    client_max_body_size=256M;

    Пробовал:
    1) Указывать размер в .htaccess

    Вроде nginx не работает с файлом .htaccess .

    Лучше бы использовать сервер под управлением apache или litespeed, они более предсказуемые и используемые.

    Модератор Yui

    (@fierevere)

    ゆい

    Вроде nginx не работает с файлом .htaccess .

    не работает. зато он может работать «в паре» с apache,
    тогда приходится думать о конфигурации обоих вебсерверов.

    Лучше бы использовать сервер под управлением apache

    а перед ним поставить nginx, как реверс-прокси, ага 🙂

    litespeed, они более предсказуемые и используемые.

    рекламы насмотрелись/начитались? LiteSpeed никогда не попадал в «используемые», к тому же .htaccess там поддерживается только в платной версии.

    На моем хостинге litespeed и сайты летают, сбои крайне редко случаются.

    Модератор Yui

    (@fierevere)

    ゆい

    странно, если бы на хорошем хостинге все работало плохо.

    Но на хостинге есть сисадмин, так ведь?

    А у автора темы определенно VDS или что-то своё, т.е. он сам сисадмин, хотите ему рекомендовать купить LiteSpeed?

    Вот мой конфиг, директивы «client_max_body_size» в ней нет.
    Давайте попробую добавить, ток я не совсем понял куда именно нужно писать эту директиву
    Просто добавить перед http как раздел?

    server {
       client_max_body_size=256M;
    }

    КОНФИГ:

    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    include /etc/nginx/modules-enabled/*.conf;
    
    events {
    	worker_connections 4096;
    	# multi_accept on;
    }
    
    http {
    
    	##
    	# Basic Settings
    	##
    
    	sendfile on;
    	tcp_nopush on;
    	tcp_nodelay on;
    	keepalive_timeout 65;
    	types_hash_max_size 2048;
    	# server_tokens off;
    
    	# server_names_hash_bucket_size 64;
    	# server_name_in_redirect off;
    
    	include /etc/nginx/mime.types;
    	default_type application/octet-stream;
    
    	##
    	# SSL Settings
    	##
    
    	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    	ssl_prefer_server_ciphers on;
    
    	##
    	# Logging Settings
    	##
    
    	access_log /var/log/nginx/access.log;
    	error_log /var/log/nginx/error.log;
    
    	##
    	# Gzip Settings
    	##
    
    	gzip on;
    
    	# gzip_vary on;
    	# gzip_proxied any;
    	# gzip_comp_level 6;
    	# gzip_buffers 16 8k;
    	# gzip_http_version 1.1;
    	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    
    	##
    	# Virtual Host Configs
    	##
    
    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;
    }
    
    #mail {
    #	# See sample authentication script at:
    #	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
    # 
    #	# auth_http localhost/auth.php;
    #	# pop3_capabilities "TOP" "USER";
    #	# imap_capabilities "IMAP4rev1" "UIDPLUS";
    # 
    #	server {
    #		listen     localhost:110;
    #		protocol   pop3;
    #		proxy      on;
    #	}
    # 
    #	server {
    #		listen     localhost:143;
    #		protocol   imap;
    #		proxy      on;
    #	}
    #}
    • Ответ изменён 1 неделя назад пользователем nekronez.

    Любой проект предполагает капиталовложения. Ради сайта, который приносит прибыль, можно и купить. Хотя, есть и бесплатные, например FreeBSD.

    Модератор Yui

    (@fierevere)

    ゆい

    server {
    это директива уровня виртуального сервера.
    Вероятно она у вас где-то в файлах включенных директивами

    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;

    но если не найдете, то можете и добавить после

    
    http {
    
    	##
    	# Basic Settings
    	##

    тогда это будет работать для всех виртуальных серверов nginx.

    256M желательно ограничить максимальным размером загружаемого файла, если вам не нужны такие большие файлы в принципе.

    • Ответ изменён 1 неделя назад пользователем Yui.
    Модератор Yui

    (@fierevere)

    ゆい

    Любой проект предполагает капиталовложения. Ради сайта, который приносит прибыль, можно и купить. Хотя, есть и бесплатные, например FreeBSD.

    @alexander70 как все запущено….
    FreeBSD это (для вас) что? Как она относится к обсуждаемой теме?

    хотите ему рекомендовать купить LiteSpeed?

    Хотя, есть и бесплатные, например FreeBSD.

    https://www.youtube.com/watch?v=d1vRLfuF-wM

    СПАСИБО БОЛЬШОЕ @fierevere
    Решение:
    добавить client_max_body_size=256M; в раздел http конфига nginx

Просмотр 13 ответов — с 1 по 13 (всего 13)