Page 1 of 1

Загрузка файлов больше 500 мб

Posted: Thu Aug 13, 2015 6:26 pm
by sag-sag
Здравствуйте.
При попытке загрузить на форум файлы размером больше чем 500 мб, пишет: Загруженный файл пустой.
php.ini

Code: Select all

post_max_size = 1000M
upload_max_filesize = 2000M
nginx.conf

Code: Select all

http {
    # Main settings
    sendfile                        on;
    tcp_nopush                      on;
    tcp_nodelay                     on;
    client_header_timeout           1m;
    client_body_timeout             1m;
    client_header_buffer_size       2k;
    client_body_buffer_size         256k;
    client_max_body_size            1000m;
    large_client_header_buffers     4   8k;
    send_timeout                    30;
    keepalive_timeout               60 60;
    reset_timedout_connection       on;
    server_tokens                   off;
    server_name_in_redirect         off;
    server_names_hash_max_size      512;
    server_names_hash_bucket_size   512;
Мне подсказали, что у меня на сайте вначале стоит апач, а не nginx.
То есть насколько я понял мне надо в apache2.conf прописать что-то. Параметр: LimitRequestBody у меня не стоит

Я с этой проблемой боюсь вторую неделю. У меня стоит Debian + VestaCP.

Вот мой: apache2.conf
SpoilerShow

Code: Select all

# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
#	/etc/apache2/
#	|-- apache2.conf
#	|	`--  ports.conf
#	|-- mods-enabled
#	|	|-- *.load
#	|	`-- *.conf
#	|-- conf.d
#	|	`-- *

# Global configuration
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 30
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 10

<IfModule mpm_prefork_module>
    StartServers          8
    MinSpareServers       5
    MaxSpareServers      20
    ServerLimit         256
    MaxClients          200
    MaxRequestsPerChild 4000
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          200
    MaxRequestsPerChild 4000
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          200
    MaxRequestsPerChild 4000
</IfModule>

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
#User www-data
#Group www-data

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

DefaultType None
HostnameLookups Off

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

# Include module configuration:
Include mods-enabled/*.load
Include mods-enabled/*.conf

# Include list of ports to listen on and which to use for name based vhosts
Include ports.conf

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogFormat "%b" bytes

Include conf.d/

# Include the virtual host configurations:
#Include sites-enabled/
Не пойму в какую сторону копать...

Re: Загрузка файлов больше 500 мб

Posted: Fri Aug 14, 2015 11:39 am
by sag-sag
Проблему наконец-то решил:
Бывает, что нужно указать для параметра upload_tmp_dir место с достаточным объёмом. Так как по умолчанию идет запись во временный каталог, обычно в /tmp, а он обычно является tmpfs, т.е. находится в оперативной памяти, которой видимо и не хватает.
Чтоб это исправить дописываем:

Code: Select all

upload_tmp_dir = /var/tmp

Re: Загрузка файлов больше 500 мб

Posted: Fri Aug 14, 2015 3:58 pm
by skurudo
Как вариант, имеет смысл поработать с параметром sendfile в nginx -> off.