Tags

, , , , , ,

Recentemente tive um pequeno trabalho para configurar o tamanho do limite de anexo no Expresso Livre, então resolvi compartilhar essa dica, vamos as configurações:

Ajustar as variáveis do PHP:

  • memory_limit = 256M (Define o tamanho máximo de memória disponível para ser utilizada pelo PHP);
  • upload_max_filesize = 25M (Define o tamanho máximo de um arquivo para upload);
  • post_max_size = 25M (Define o tamanho máximo de dados em uma requisição POST);

Obs: O tamanho das variáveis upload_max_filesize e post_max_size reflete diretamente na variável memory_limit, pois o PHP necessita de mais memória para trabalhar com volumes de dados maiores. Ex: upload_max_filesize = 50M, post_max_size = 50M e memory_limit = 512M.

No meu caso, utilizo virtualhost no apache, segue minha configuração:

<VirtualHost *:80>
 ServerAdmin suporte@domain.org.br
 ServerName expresso.domain.org.br
 DocumentRoot /var/www/html/expresso.domain.org.br

 HostnameLookups Off
 UseCanonicalName Off
 ServerSignature Off

 <IfModule prefork.c>
 php_value memory_limit 256M
 php_value upload_max_filesize 25M
 php_value post_max_size 25M
 </IfModule>

RewriteEngine on
 RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
 RewriteRule .* - [F]

 # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
 LogLevel warn
 ErrorLog /var/log/httpd/expresso-error_log
 CustomLog /var/log/httpd/expresso-access_log combined
</VirtualHost>

Ajustar o tamanho de anexo no Postfix:

No arquivo /etc/postfix/main.cf procure por message_size_limit, altere para o tamanho em bytes desejado. Ex:

# Tamanho maximo de anexo
message_size_limit = 35651584

Carregando as novas configurações dos serviços:

/etc/init.d/httpd reload
/etc/init.d/postfix reload

Configurar o tamanho limite de anexo no Expresso Livre:

Clique no ícone Administrador e depois altere o campo Tamanho máximo de anexos, no meu caso 25Mb.

O tamanho do anexo no Expresso Livre é diferente do tamanho real do anexo:

Segue a justificativa da diferença, de acordo com algumas pesquisas o PHP utiliza codificação base64 para os arquivos anexados.

A codificação de base 64 foi definida originalmente para anexos do correio electrónico: RFC 2045: “Multipurpose Internet Mail Extensions”.

A codificação de base 64 usa o sub-conjunto de 65 caracteres do US-ASCII que são os caracteres mais “universais”, ou seja, caracteres que são iguais em practicamente todos os códigos: A-Z, a-z, 0-9, +, / = pad.

24 bits são representados em 4 caracteres
6 bits úteis por caracter
Aumenta tamanho do conteúdo em 33%, por causa dos 2 bits “desperdiçados”.

Ou seja, um arquivo de “5Mb” anexado no Expresso Livre, será exibido como “6.8Mb”.

Anúncios