Resolver problemas

Erro ao instalar módulos no PrestaShop, The file is missing

Revisto a 3 min de leitura módulos erros PrestaShop

Ao carregar manualmente o ZIP de um módulo a partir da administração pode aparecer:

Installation of module failed. The file is missing.

O PrestaShop mostra esta mensagem quando não recebe um ficheiro utilizável depois de verificar o tamanho do pedido. Comece pelo código de upload do PHP e pelo log do mesmo minuto. Se o programador instrumentar temporariamente o controlador, deve recolher apenas o código de $_FILES['file_uploaded']['error'] quando essa entrada existir, sem registar o conteúdo do ficheiro nem todo o pedido. UPLOAD_ERR_NO_FILE é normalmente convertido em null ao construir o pedido do Symfony.

Verifique depois, sem alterar várias variáveis ao mesmo tempo:

  • que o ZIP não ultrapassa upload_max_filesize, post_max_size nem um limite do servidor ou proxy;
  • que upload_tmp_dir existe, tem espaço e permite a escrita ao processo PHP;
  • que não aparece um erro de upload, antivírus ou ModSecurity nos registos;
  • que o problema se reproduz com o mesmo ficheiro e a mesma versão do PHP.

max_input_vars limita as variáveis de GET, POST e COOKIE; um valor alto não está documentado como causa da perda de $_FILES. Num caso concreto da Hostsuar, reduzi-lo coincidiu com o desaparecimento do sintoma, mas não se demonstrou o mecanismo nem uma condição de corrida. Trate-o apenas como um teste reversível se os dados anteriores não mostrarem outro erro: anote o valor, altere apenas essa diretiva, reinicie o mesmo runtime se for o caso e repita uma vez.

Se o resultado mudar, conserve as versões, os valores anterior e posterior e o código de upload; se não mudar, restaure a configuração. Não apresente essa correlação como uma falha geral do Symfony.

Consulte os erros oficiais de upload do PHP e a instalação oficial de módulos do PrestaShop.

Se o PHP não receber nenhum ficheiro

Quando o pedido ultrapassa post_max_size, o PHP pode deixar vazios tanto $_POST como $_FILES; nesse caso não existe um código de upload nessa entrada. Verifique o tamanho total do pedido, não apenas o ZIP, e correlacione-o com o registo do servidor ou do proxy. Um 413 pode ocorrer antes de o PrestaShop processar o formulário.

Não reduza max_input_vars às cegas: pode truncar outros formulários da administração. Se esse teste for acordado pelo antecedente descrito, verifique também um formulário representativo e restaure o valor se não trouxer uma melhoria reproduzível. Instale apenas um pacote oficial compatível e evite repetir o carregamento se uma instalação anterior continuar em curso.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.