17 min de leitura · Guia técnico
Upload de arquivo falhando no cPanel ocorre quando os limites de PHP configurados no servidor são menores que o tamanho do arquivo enviado, quando o tempo de execução expira durante a transferência, ou quando permissões de diretório impedem a gravação. Para corrigir o problema, siga este checklist:
- Identifique o erro exato no log de erros do PHP ou no Gerenciador de Arquivos do cPanel.
- Verifique os valores atuais de
upload_max_filesize,post_max_sizeemax_execution_timevia phpinfo ou MultiPHP INI Editor. - Ajuste os limites pelo MultiPHP INI Editor do cPanel ou pelo arquivo
.htaccessdo domínio. - Confirme as permissões do diretório de destino (deve ser
755para pastas e644para arquivos). - Teste o upload novamente e valide o resultado no log de erros.
- Para arquivos grandes, use FTP ou SFTP como alternativa definitiva ao upload via HTTP.
Pré-requisitos para corrigir upload falhando no cPanel
- Acesso ao cPanel do domínio afetado (usuário e senha da conta de hospedagem).
- Permissão para editar arquivos
.htaccessou acesso ao MultiPHP INI Editor. - Conhecimento do tamanho máximo do arquivo que precisa ser enviado.
- Acesso ao Gerenciador de Arquivos do cPanel ou a um cliente FTP como o FileZilla.
- Plano de hospedagem ativo na AviraHost com PHP 7.4, 8.1, 8.2 ou 8.3 configurado para o domínio.
Checklist de upload falhando no cPanel: diagnóstico inicial
Antes de alterar qualquer configuração, é essencial identificar a causa raiz do upload falhando no cPanel. Existem três origens principais: limites de PHP, permissões de diretório e restrições do servidor web. Cada uma produz sintomas distintos que guiam a correção correta.
O primeiro passo é acessar o log de erros do PHP. No cPanel, vá em Logs de Erros (seção Métricas) ou acesse diretamente o arquivo de log em /home/usuario/logs/. Erros típicos incluem:
PHP Warning: POST Content-Length of 52428800 bytes exceeds the limit of 8388608 bytes
PHP Warning: upload_max_filesize = 8M, file size = 48M
O segundo passo é criar um arquivo de diagnóstico temporário para ver os valores PHP ativos no seu domínio. Acesse o Gerenciador de Arquivos, navegue até a raiz pública do domínio (public_html) e crie o arquivo phpinfo.php:
<?php phpinfo(); ?>
Acesse https://seudominio.com.br/phpinfo.php pelo navegador e procure pelas seguintes linhas na saída:
upload_max_filesize 8M 8M
post_max_size 8M 8M
max_execution_time 30 30
max_input_time 60 60
memory_limit 128M 128M
Atenção: remova o arquivo phpinfo.php imediatamente após a verificação. Deixá-lo acessível expõe informações sensíveis do servidor, como versão do PHP, módulos carregados e caminhos internos.
O terceiro passo é verificar as permissões do diretório de destino. No Gerenciador de Arquivos do cPanel, clique com o botão direito na pasta onde o upload falha e selecione Alterar Permissões. O valor correto para diretórios é 755. Se estiver como 700 ou 444, o PHP não conseguirá gravar o arquivo mesmo que os limites estejam corretos.
Como ajustar os limites de upload pelo MultiPHP INI Editor
O MultiPHP INI Editor é a forma mais segura de aumentar o limite de upload no cPanel sem precisar de acesso root ou SSH. Ele permite editar diretivas do php.ini diretamente pelo painel, com efeito imediato para o domínio selecionado.
- Faça login no cPanel e localize a seção Software.
- Clique em MultiPHP INI Editor.
- Na aba Basic Mode, selecione o domínio afetado no menu suspenso.
- Localize os campos abaixo e ajuste os valores conforme o tamanho máximo necessário:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
- Clique em Aplicar e aguarde a confirmação de sucesso.
- Repita o teste de upload para confirmar que o problema foi resolvido.
Uma regra importante: post_max_size deve ser sempre maior ou igual a upload_max_filesize. Se upload_max_filesize for 64M mas post_max_size permanecer em 8M, o upload ainda falhará porque o corpo da requisição HTTP excede o limite do POST antes mesmo de o PHP processar o arquivo.
Para verificar se as alterações foram aplicadas, acesse novamente o arquivo phpinfo.php (se ainda não o removeu) ou use o MultiPHP INI Editor na aba Editor Mode, que exibe o conteúdo completo do php.ini ativo para o domínio.
Como corrigir upload falhando no cPanel via arquivo .htaccess
Quando o MultiPHP INI Editor não está disponível ou você precisa aplicar configurações específicas por diretório, o arquivo .htaccess é a alternativa correta para ajustar limites de upload sem acesso root. Esta abordagem funciona em servidores com Apache e PHP rodando como módulo ou via CGI/FastCGI.
Acesse o Gerenciador de Arquivos do cPanel, navegue até public_html e abra o arquivo .htaccess para edição. Se ele não existir, crie um novo arquivo com esse nome exato. Adicione as seguintes diretivas:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
php_value memory_limit 256M
Salve o arquivo e teste o upload novamente. Se o servidor retornar erro 500 Internal Server Error após salvar o .htaccess, significa que o PHP está rodando em modo CGI ou FastCGI, onde as diretivas php_value não são permitidas no .htaccess. Nesse caso, use o MultiPHP INI Editor conforme descrito na seção anterior.
Atenção: nunca defina memory_limit acima do limite real de memória do seu plano de hospedagem. Valores excessivos podem causar erros de alocação de memória e derrubar outros processos PHP em execução no mesmo domínio.
Para aplicações WordPress, o arquivo wp-config.php também aceita a diretiva define('WP_MEMORY_LIMIT', '256M');, que aumenta o limite de memória especificamente para o WordPress sem afetar outros scripts PHP do domínio.
Corrigindo permissões de diretório que bloqueiam o upload
Permissões incorretas são uma causa frequente de falha silenciosa no upload: o PHP processa o arquivo sem erro de limite, mas não consegue gravá-lo no disco. O sintoma típico é o upload parecer concluído na interface, mas o arquivo não aparecer no diretório de destino.
Para verificar e corrigir permissões via Gerenciador de Arquivos do cPanel:
- Navegue até o diretório onde o upload deveria ser salvo.
- Clique com o botão direito na pasta e selecione Alterar Permissões.
- Defina o valor como
755para diretórios (leitura e execução para grupo e outros, escrita apenas para o dono). - Marque a opção Recurse into subdirectories se o problema afetar subpastas também.
- Clique em Alterar Permissões para aplicar.
Se você tiver acesso SSH ao servidor, pode corrigir permissões de forma mais precisa com os seguintes comandos:
find /home/usuario/public_html/uploads -type d -exec chmod 755 {} \;
find /home/usuario/public_html/uploads -type f -exec chmod 644 {} \;
Output esperado: nenhuma saída indica que os comandos foram executados com sucesso. Para confirmar, liste as permissões:
ls -la /home/usuario/public_html/uploads/
drwxr-xr-x 2 usuario usuario 4096 jan 15 10:30 uploads
-rw-r--r-- 1 usuario usuario 2048 jan 15 10:30 arquivo.jpg
O proprietário do diretório deve ser o mesmo usuário cPanel do domínio. Se aparecer root como dono, o PHP não conseguirá gravar arquivos mesmo com permissão 777, pois o processo PHP roda sob o usuário da conta de hospedagem.
Usando FTP como alternativa definitiva para uploads grandes
Para arquivos que excedem os limites práticos do upload via HTTP, o FTP e o SFTP são as alternativas recomendadas. Transferências via FTP não passam pelo PHP e, portanto, não sofrem restrições de upload_max_filesize, post_max_size ou max_execution_time. O limite é apenas a velocidade da conexão e o espaço em disco disponível.
O FileZilla como software FTP da sua hospedagem é a opção mais acessível para usuários sem experiência em linha de comando. Configure-o com os dados FTP disponíveis no cPanel em Contas FTP e transfira arquivos de qualquer tamanho sem restrições de PHP.
Para ambientes que exigem mais segurança, o SFTP (FTP sobre SSH) é preferível ao FTP tradicional, pois criptografa a transferência. As credenciais SFTP são as mesmas do SSH: usuário e senha da conta cPanel, porta 22.
Comparação prática entre os métodos de upload disponíveis no cPanel:
- Gerenciador de Arquivos (HTTP): limitado pelos valores de PHP, ideal para arquivos pequenos até 64 MB.
- FTP com FileZilla: sem limite de PHP, recomendado para arquivos entre 64 MB e vários GB.
- SFTP: sem limite de PHP, transferência criptografada, recomendado para ambientes de produção.
- Importação via MySQL/phpMyAdmin: específico para bancos de dados, sujeito a limites próprios de upload do phpMyAdmin.
Problemas comuns e como resolver
Sintoma: upload falha com erro "413 Request Entity Too Large"
Causa: Este erro é gerado pelo servidor web (Nginx ou Apache), não pelo PHP. Indica que o corpo da requisição HTTP excede o limite configurado no servidor web, independentemente dos valores do PHP.
Solução: Em servidores com Nginx, o parâmetro client_max_body_size precisa ser aumentado no arquivo de configuração do virtual host. Em servidores Apache com cPanel, verifique se há uma diretiva LimitRequestBody ativa. Se você não tem acesso root, abra um chamado de suporte informando o erro 413 e o tamanho do arquivo que precisa enviar, pois essa configuração requer acesso ao servidor.
Sintoma: upload parece concluir mas o arquivo não aparece no diretório
Causa: O arquivo foi recebido pelo PHP mas não pôde ser gravado no disco por permissão insuficiente no diretório de destino, ou o diretório temporário do PHP (upload_tmp_dir) está cheio ou inacessível.
Solução: Verifique as permissões do diretório de destino (deve ser 755 com o usuário cPanel como dono). Verifique também o espaço em disco disponível no cPanel em Estatísticas. Se o disco estiver cheio, o PHP não consegue criar o arquivo temporário durante o upload, mesmo que o diretório de destino tenha permissão correta.
Sintoma: upload de imagens funciona mas upload de arquivos ZIP ou SQL falha
Causa: Alguns servidores têm regras de segurança no ModSecurity (WAF) que bloqueiam uploads de tipos específicos de arquivo, como .sql, .php ou arquivos compactados com conteúdo suspeito. O erro aparece no log como ModSecurity: Access denied with code 403.
Solução: Acesse o cPanel e procure por ModSecurity na seção Segurança. Você pode desativar temporariamente o ModSecurity para o domínio específico, realizar o upload e reativá-lo em seguida. Para uma solução permanente, crie uma regra de exceção para o tipo de arquivo necessário ou use FTP para transferir arquivos que o ModSecurity bloqueia via HTTP.
Sintoma: erro "O arquivo enviado excede a diretiva upload_max_filesize no php.ini" no WordPress
Causa: O WordPress exibe esta mensagem quando o arquivo enviado pela biblioteca de mídia ou por um plugin excede o valor de upload_max_filesize definido no PHP. Mesmo que você tenha editado o .htaccess, o valor pode não ter sido aplicado se o PHP estiver rodando em modo FastCGI.
Solução: Use o MultiPHP INI Editor do cPanel para garantir que o valor foi aplicado corretamente. Após ajustar, acesse Ferramentas no painel do WordPress e verifique o tamanho máximo de upload exibido na página de mídia. Se ainda mostrar o valor antigo, limpe o cache do servidor e do navegador antes de testar novamente.
Sintoma: upload via Gerenciador de Arquivos do cPanel trava e não conclui
Causa: O Gerenciador de Arquivos do cPanel usa upload via HTTP com JavaScript. Se o max_execution_time for muito baixo (padrão de 30 segundos), uploads de arquivos maiores que alguns megabytes podem expirar antes de concluir, especialmente em conexões lentas.
Solução: Aumente max_execution_time para 300 segundos e max_input_time para 300 segundos no MultiPHP INI Editor. Para arquivos grandes, o FTP com FileZilla é mais confiável que o Gerenciador de Arquivos, pois não depende de timeout de PHP para completar a transferência.
Perguntas frequentes sobre upload falhando no cPanel
Por que o upload de arquivo falha no cPanel mesmo com espaço em disco disponível?
O upload pode falhar por limites de PHP como upload_max_filesize e post_max_size configurados abaixo do tamanho do arquivo enviado, mesmo que o disco tenha espaço livre. Verifique o php.ini ou o arquivo .htaccess do seu domínio e ajuste os valores conforme o tamanho máximo necessário. Outra causa comum é o limite de tempo de execução (max_execution_time) expirar durante uploads grandes, interrompendo a transferência antes de ela ser concluída.
Como aumentar o limite de upload no cPanel sem acesso root?
Sem acesso root, você pode criar ou editar o arquivo .htaccess na raiz do domínio e adicionar as diretivas php_value upload_max_filesize, php_value post_max_size e php_value max_execution_time. Alternativamente, o cPanel oferece a opção MultiPHP INI Editor onde é possível ajustar esses valores diretamente pelo painel, sem precisar de acesso SSH. O MultiPHP INI Editor é o método mais confiável, pois funciona independentemente do modo de execução do PHP configurado no servidor.
Qual é o erro exibido quando o upload ultrapassa o limite do PHP?
O PHP retorna o código de erro UPLOAD_ERR_INI_SIZE (valor 1) quando o arquivo excede upload_max_filesize, e UPLOAD_ERR_FORM_SIZE (valor 2) quando excede o limite definido no formulário HTML. No WordPress, isso geralmente aparece como "O arquivo enviado excede a diretiva upload_max_filesize no php.ini". Verificar o log de erros do PHP em /home/usuario/logs/ ou via cPanel em Logs de Erros confirma a causa exata e o nome do arquivo que causou o problema.
O limite de upload no cPanel afeta o Gerenciador de Arquivos e o FTP da mesma forma?
Não. Os limites de PHP (upload_max_filesize, post_max_size) afetam apenas uploads feitos via HTTP, como formulários web, WordPress e o Gerenciador de Arquivos do cPanel. Transferências via FTP ou SFTP não passam pelo PHP e não sofrem essas restrições, sendo a alternativa recomendada para arquivos grandes. Para uploads via FTP, consulte o guia Como usar o FileZilla como software FTP da minha hospedagem disponível na base de conhecimento da AviraHost.
Como verificar qual limite de PHP está ativo no meu domínio no cPanel?
Crie um arquivo phpinfo.php na raiz do domínio com o conteúdo <?php phpinfo(); ?> e acesse-o pelo navegador. Procure pelas linhas upload_max_filesize, post_max_size e max_execution_time para ver os valores ativos. Após verificar, remova o arquivo imediatamente para não expor informações do servidor. Outra forma é usar o MultiPHP INI Editor no cPanel, que exibe e permite editar os valores sem criar arquivos temporários expostos publicamente.
Conclusão
Seguir este checklist garante que você identifique e corrija a causa real do upload falhando no cPanel, sem tentativas cegas de configuração. Os pontos mais importantes para resolver o problema definitivamente:
- Diagnostique antes de ajustar: verifique o log de erros do PHP e o phpinfo para identificar qual limite está bloqueando o upload antes de alterar qualquer configuração.
- Use o MultiPHP INI Editor como primeira opção: é o método mais confiável para ajustar
upload_max_filesize,post_max_sizeemax_execution_timesem acesso root, funcionando independentemente do modo PHP. - Adote FTP para arquivos grandes: uploads acima de 64 MB são mais estáveis via FTP ou SFTP com o FileZilla, eliminando completamente as restrições de PHP e timeout de execução.
Leia também
- Solucionar erro de conexão FTP no cPanel: passo a passo definitivo
- Guia para configurar subdomínio no cPanel do jeito certo
- Passo a passo para limpar inodes no cPanel: evitando limites críticos
Precisa de ajuda com upload e configurações do cPanel?
Se os ajustes descritos neste checklist não resolverem o problema no seu ambiente, pode haver restrições específicas do plano de hospedagem ou configurações de servidor que exigem intervenção técnica. A equipe da AviraHost pode verificar os logs do servidor e ajustar as configurações necessárias para o seu domínio.
Conheça os planos de hospedagem da AviraHost com suporte técnico especializado