Résoudre les problèmes

Erreur lors de l'installation de modules dans PrestaShop, The file is missing

Vérifié le 4 min de lecture modules erreurs PrestaShop

Lorsque vous chargez manuellement le ZIP d'un module depuis l'administration, ce message peut apparaître :

Installation of module failed. The file is missing.

PrestaShop affiche ce message lorsqu'il ne reçoit pas de fichier exploitable après avoir vérifié la taille de la requête. Commencez par le code d'envoi de PHP et le journal de la même minute. Si le développeur instrumente temporairement le contrôleur, il doit relever uniquement le code de $_FILES['file_uploaded']['error'] lorsque cette entrée existe, sans enregistrer le contenu du fichier ni toute la requête. UPLOAD_ERR_NO_FILE devient normalement null lors de la construction de la requête Symfony.

Vérifiez ensuite, sans modifier plusieurs variables à la fois :

  • que le ZIP ne dépasse pas upload_max_filesize, post_max_size ni une limite du serveur ou du proxy ;
  • que upload_tmp_dir existe, dispose d'espace et autorise l'écriture au processus PHP ;
  • qu'aucune erreur d'envoi, d'antivirus ou de ModSecurity n'apparaît dans les journaux ;
  • que le problème se reproduit avec le même fichier et la même version de PHP.

max_input_vars limite les variables GET, POST et COOKIE ; une valeur élevée n'est pas documentée comme cause de la perte de $_FILES. Dans un cas précis chez Hostsuar, la réduire a coïncidé avec la disparition du symptôme, mais ni le mécanisme ni une situation de concurrence n'ont été démontrés. Traitez-le uniquement comme un test réversible si les éléments précédents ne révèlent pas d'autre erreur : notez la valeur, modifiez uniquement cette directive, redémarrez le même runtime si nécessaire et réessayez une fois.

Si le résultat change, conservez les versions, les valeurs avant et après et le code d'envoi ; s'il ne change pas, rétablissez la configuration. Ne présentez pas cette corrélation comme un défaut général de Symfony.

Consultez les erreurs officielles d'envoi de fichiers de PHP et l'installation officielle des modules de PrestaShop.

Si PHP ne reçoit aucun fichier

Lorsque la requête dépasse post_max_size, PHP peut laisser vides à la fois $_POST et $_FILES ; dans ce cas, il n'existe pas de code d'envoi pour cette entrée. Vérifiez la taille totale de la requête, pas seulement celle du ZIP, et rapprochez-la du journal du serveur ou du proxy. Une erreur 413 peut se produire avant que PrestaShop ne traite le formulaire.

Ne réduisez pas max_input_vars à l'aveugle : cela peut tronquer d'autres formulaires de l'administration. Si ce test est décidé en raison de l'antécédent décrit, vérifiez aussi un formulaire représentatif et rétablissez la valeur si elle n'apporte pas d'amélioration reproductible. N'installez qu'un paquet officiel compatible et évitez de relancer le chargement si une installation précédente est encore en cours.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.