Impossible d’ajouter une pièce jointe sur phpBB : image invalide, upload bloqué ou fichier introuvable

Statut : Sans réponse

Guides pratiques, solutions et procédures détaillées pour résoudre les problèmes courants, corriger les erreurs et mieux administrer votre forum phpBB.


phpBB-Lab
Fondateur
Messages : 43
Enregistré le : dim. 6 sept. 2026 00:22
Localisation : Liège Belgique

Impossible d’ajouter une pièce jointe sur phpBB : image invalide, upload bloqué ou fichier introuvable

Message par phpBB-Lab »

Impossible d’ajouter une pièce jointe sur phpBB : image invalide, upload bloqué ou fichier introuvable

Vous essayez d’ajouter une image, un PDF, une archive ou un autre fichier à un message phpBB, mais le téléversement échoue ?

Selon les cas, phpBB peut afficher un message comme :

Code : Tout sélectionner


Le fichier image que vous avez essayé de joindre n’est pas valide.

ou :

Code : Tout sélectionner


Le dossier temporaire est introuvable ou n’est pas accessible en écriture.

Vous pouvez également rencontrer d’autres symptômes :

  • le fichier semble se téléverser puis disparaît ;

  • la barre de progression reste bloquée ;

  • une petite image fonctionne mais une grande échoue ;

  • les PDF fonctionnent mais pas les images ;

  • les pièces jointes fonctionnent dans certains forums mais pas dans d’autres ;

  • un administrateur peut joindre des fichiers mais pas un membre normal ;

  • les anciennes pièces jointes ne s’affichent plus après une migration ;

  • les fichiers existent dans le dossier

    Code : Tout sélectionner

    files/

    mais phpBB ne les retrouve pas ;

  • la base de données contient les pièces jointes mais les téléchargements renvoient une erreur ;

  • le problème est apparu après un changement de serveur, de version PHP ou d’hébergeur.

La difficulté vient du fait qu’une pièce jointe traverse plusieurs couches avant d’être réellement disponible dans un message.

Un échec peut provenir :

  • des permissions phpBB ;

  • du type de fichier autorisé ;

  • de la taille maximale configurée dans phpBB ;

  • de la configuration PHP ;

  • du dossier temporaire PHP ;

  • du dossier

    Code : Tout sélectionner

    files/

    ;

  • des droits du système de fichiers ;

  • de l’espace disque ;

  • d’une limite Apache, Nginx ou du proxy ;

  • d’une migration incomplète ;

  • d’un fichier corrompu ;

  • d’une extension phpBB ;

  • ou de plusieurs limites différentes qui se superposent.

L’objectif de ce guide est de déterminer précisément à quelle étape l’envoi échoue, sans modifier le serveur ou la base de données au hasard.

1. Commencez par identifier exactement le symptôme

Avant de modifier quoi que ce soit, effectuez plusieurs tests simples.

Préparez par exemple :

  • une petite image JPEG ;

  • une petite image PNG ;

  • un petit fichier PDF ;

  • un fichier plus volumineux du même type que celui qui échoue.

Notez ensuite les résultats.

Par exemple :

Code : Tout sélectionner


JPEG 100 Ko : fonctionne

PNG 150 Ko : fonctionne

PDF 200 Ko : fonctionne

JPEG 4 Mo : échoue

PDF 4 Mo : échoue

Ce résultat oriente immédiatement vers une limite de taille.

Autre exemple :

Code : Tout sélectionner


JPEG : échoue

PNG : échoue

PDF : fonctionne

ZIP : fonctionne

Ici, la taille n’est probablement pas le premier suspect.

Il faut plutôt examiner la gestion des images, leur validation, leur type MIME, leur extension ou la configuration PHP utilisée pour analyser les images.

Autre possibilité :

Code : Tout sélectionner

 Administrateur : fonctionne

Utilisateur normal : échoue

Dans ce cas, commencez par les permissions phpBB avant de toucher à PHP ou au serveur.

Le premier diagnostic consiste donc à comparer, pas à modifier.

2. Le bouton permettant de joindre un fichier est-il présent ?

Il faut distinguer deux situations très différentes.

Situation A :

L’utilisateur ne voit même pas la possibilité d’ajouter une pièce jointe.

Cela peut être un problème de permissions phpBB.

Situation B :

Le formulaire de pièce jointe est bien présent, le fichier peut être sélectionné, mais son envoi produit une erreur.

Dans ce deuxième cas, le problème se situe probablement plus loin dans la chaîne de traitement.

Si votre problème concerne les permissions générales de phpBB, consultez également :

Comprendre enfin les permissions phpBB : groupes, rôles, Oui, Non et Jamais

3. Vérifiez les permissions phpBB liées aux pièces jointes

phpBB distingue notamment le droit :

  • de joindre un fichier ;

  • de télécharger un fichier.

Un utilisateur peut donc parfaitement avoir le droit de publier un message sans avoir le droit d’y joindre un fichier.

Inversement, il peut être autorisé à voir un sujet mais pas à télécharger les pièces jointes qu’il contient.

Vérifiez les permissions du groupe et du forum concernés.

Ne faites pas uniquement le test avec votre compte Fondateur ou administrateur.

Testez également avec un compte utilisateur normal.

Un test effectué uniquement avec le compte le plus privilégié du forum peut masquer un problème de permissions affectant tous les autres membres.

4. Vérifiez que le type de fichier est réellement autorisé

phpBB ne permet pas nécessairement l’envoi de n’importe quelle extension de fichier.

Dans le PCA, recherchez la gestion des :

Extensions

et des :

Groupes d’extensions

Les libellés exacts peuvent légèrement varier selon la traduction utilisée.

Vous pouvez par exemple avoir des extensions comme :

Code : Tout sélectionner


jpg

jpeg

png

gif

pdf

zip

txt

Chaque extension peut appartenir à un groupe possédant ses propres règles.

Vérifiez :

  • que l’extension existe dans phpBB ;

  • qu’elle appartient au bon groupe ;

  • que ce groupe est autorisé ;

  • qu’il est autorisé dans le forum concerné ;

  • qu’il est autorisé dans les messages privés si votre test concerne un MP ;

  • que sa limite de taille n’est pas inférieure à celle que vous pensez avoir configurée ailleurs.

Un détail important :

une extension autorisée globalement peut encore être limitée par les réglages de son groupe.

5. Ne confondez jamais extension du fichier et contenu réel

Renommer simplement :

Code : Tout sélectionner


document.exe

en :

Code : Tout sélectionner


document.jpg

ne transforme évidemment pas le fichier en image JPEG.

phpBB et PHP peuvent vérifier davantage que les quelques lettres situées après le point.

Pour une image, le serveur peut notamment tenter de déterminer si le contenu correspond réellement à un format d’image valide.

Ainsi, un fichier nommé :

Code : Tout sélectionner


photo.jpg

peut être refusé s’il est :

  • corrompu ;

  • incomplet ;

  • mal transféré ;

  • dans un autre format malgré son extension ;

  • illisible par les fonctions PHP utilisées pour l’analyser.

Si une image précise échoue, essayez une autre image connue comme valide avant de conclure que phpBB est défectueux.

6. « Le fichier image n’est pas valide » ne signifie pas forcément que l’image est mauvaise

Ce message peut effectivement apparaître avec un fichier corrompu.

Mais il peut également être la conséquence d’un problème plus général.

Par exemple :

  • fichier temporaire PHP inaccessible ;

  • téléversement incomplet ;

  • limite PHP ;

  • configuration PHP incorrecte ;

  • problème apparu après un changement de version PHP ;

  • fichier altéré pendant une migration ou un transfert FTP.

Ne passez donc pas plusieurs heures à convertir votre image dix fois si toutes les images échouent simultanément.

Posez-vous plutôt cette question :

Est-ce ce fichier précis qui est refusé, ou est-ce l’ensemble du système d’upload d’images qui ne fonctionne plus ?

7. Vérifiez les limites configurées dans phpBB

phpBB possède ses propres limites concernant les pièces jointes.

Vérifiez notamment :

  • la taille maximale d’une pièce jointe ;

  • le quota total consacré aux pièces jointes ;

  • la taille maximale définie pour le groupe d’extensions concerné ;

  • le nombre maximal de pièces jointes par message.

Une erreur classique consiste à augmenter uniquement la limite générale.

Imaginez :

Code : Tout sélectionner


Limite générale phpBB : 20 Mo

Limite du groupe Images : 2 Mo

Fichier envoyé : 5 Mo

Le fichier peut encore être refusé.

La limite réellement applicable est celle résultant de l’ensemble des règles concernées.

8. phpBB n’est pas la seule couche qui limite la taille

Même si phpBB accepte théoriquement un fichier de 20 Mo, PHP peut refuser la requête avant que phpBB ne reçoive réellement le fichier.

Parmi les paramètres PHP importants figurent notamment :

Code : Tout sélectionner


upload_max_filesize

post_max_size

max_file_uploads

upload_tmp_dir

memory_limit

max_execution_time

Les deux valeurs les plus fréquemment rencontrées lors d’un problème de taille sont :

Code : Tout sélectionner


upload_max_filesize

post_max_size

Exemple :

Code : Tout sélectionner


phpBB : 20 Mo

upload_max_filesize : 8 Mo

post_max_size : 8 Mo

Dans cette situation, augmenter phpBB à 20 Mo ne permet pas réellement d’envoyer un fichier de 20 Mo.

PHP continue à imposer une limite plus basse.

9. La règle à retenir : la plus petite limite gagne

Un téléversement peut traverser plusieurs limites.

Par exemple :

Code : Tout sélectionner


phpBB : 50 Mo

Groupe d’extensions : 10 Mo

PHP upload_max_filesize : 8 Mo

PHP post_max_size : 16 Mo

Serveur Web : 20 Mo

Proxy : 100 Mo

Le fichier de 9 Mo échoue malgré la configuration générale de phpBB à 50 Mo.

Pourquoi ?

Parce que :

Code : Tout sélectionner


upload_max_filesize = 8 Mo

est ici la limite la plus basse.

Vous pouvez retenir cette règle :

la taille réellement possible est limitée par la couche la plus restrictive.

10. Attention : post_max_size concerne toute la requête

Le paramètre :

Code : Tout sélectionner


post_max_size

ne concerne pas uniquement le fichier lui-même.

La requête peut également contenir :

  • le texte du message ;

  • les données du formulaire ;

  • plusieurs fichiers ;

  • d’autres champs.

Il est donc préférable que :

Code : Tout sélectionner


post_max_size

soit suffisamment supérieur à la taille maximale du fichier que vous souhaitez autoriser.

Évitez de configurer plusieurs limites exactement à la même valeur sans tenir compte du reste de la requête.

11. Vérifiez la version PHP réellement utilisée par le site

Un changement de version PHP peut résoudre un problème, mais il peut également en révéler un autre.

Commencez par déterminer la version réellement utilisée par votre forum.

Si vous disposez de SSH :

Code : Tout sélectionner


php -v

peut vous donner une première indication.

Mais attention :

la version PHP utilisée en ligne de commande peut être différente de celle utilisée par le site Web.

Votre serveur peut par exemple utiliser :

Code : Tout sélectionner


PHP CLI : 8.3

PHP-FPM du site : 8.2

Ne concluez donc pas trop rapidement :

php -v indique la bonne version, donc Apache utilise forcément la même.

Sur un hébergement mutualisé, vérifiez également la version PHP sélectionnée dans le panneau de l’hébergeur.

Dans le PCA, les informations PHP disponibles peuvent aussi aider à connaître la configuration réellement utilisée par le site.

12. Le dossier temporaire PHP est une étape essentielle

Lorsqu’un navigateur téléverse un fichier, celui-ci n’est pas nécessairement envoyé directement dans :

Code : Tout sélectionner


files/

PHP le reçoit d’abord comme fichier temporaire.

Le paramètre :

Code : Tout sélectionner


upload_tmp_dir

peut définir l’emplacement utilisé.

Si aucun chemin spécifique n’est défini, PHP peut utiliser le dossier temporaire du système.

Le problème apparaît lorsque ce dossier :

  • n’existe plus ;

  • n’est pas accessible ;

  • n’est pas accessible en écriture pour PHP ;

  • se trouve sur une partition pleine ;

  • possède une configuration incorrecte.

Vous pouvez alors obtenir un message concernant un dossier temporaire introuvable ou non accessible en écriture.

13. Ne créez pas un dossier /tmp au hasard dans votre site

Si phpBB vous parle d’un dossier temporaire, ne supposez pas immédiatement qu’il faut créer :

Code : Tout sélectionner


public_html/tmp/

ou :

Code : Tout sélectionner


forum/tmp/

Le dossier temporaire utilisé par PHP dépend de la configuration du serveur.

Sur un hébergement mutualisé, cette partie peut être entièrement gérée par l’hébergeur.

Si la configuration PHP indique un dossier temporaire inaccessible, contactez votre hébergeur avec le message d’erreur exact plutôt que de créer plusieurs dossiers au hasard dans votre espace Web.

14. Vérifiez le dossier files/ de phpBB

Par défaut, les pièces jointes phpBB sont stockées dans un dossier prévu à cet effet, généralement :

Code : Tout sélectionner


files/

Ce dossier doit pouvoir être utilisé en écriture par le processus Web qui exécute phpBB.

Après :

  • une migration ;

  • une restauration ;

  • un changement de serveur ;

  • une copie effectuée avec root ;

  • un transfert depuis un autre hébergement ;

les propriétaires et permissions peuvent changer.

Le dossier peut parfaitement exister sans que PHP soit autorisé à y créer des fichiers.

15. Ne mettez pas tout le forum en 777

Un problème de droits système ne doit pas être corrigé en rendant toute l’installation accessible en écriture à tout le monde.

Évitez :

Code : Tout sélectionner


chmod -R 777 .

Ce n’est pas une méthode de diagnostic.

Selon votre serveur, le bon fonctionnement dépend notamment :

  • du propriétaire des fichiers ;

  • du groupe ;

  • de l’utilisateur qui exécute PHP ou le serveur Web ;

  • des permissions Unix ;

  • d’éventuelles ACL système.

Le besoin réel est simple :

le processus Web doit pouvoir écrire dans les dossiers qui doivent être inscriptibles.

La manière correcte d’obtenir ce résultat dépend de votre hébergement.

Sur un VPS, examinez d’abord les propriétaires et groupes.

Par exemple :

Code : Tout sélectionner


ls -ld files

Ne changez pas ensuite les permissions au hasard sans savoir quel utilisateur exécute réellement PHP.

16. Vérifiez l’espace disque

Un serveur dont le disque est plein peut produire des symptômes surprenants.

Sur un VPS :

Code : Tout sélectionner


df -h

permet d’obtenir une première vue de l’espace disponible.

Vous pourriez par exemple découvrir :

Code : Tout sélectionner


Filesystem      Size  Used Avail Use%

/dev/...         40G   40G     0 100%

Dans cette situation, le problème n’est pas la limite configurée dans phpBB.

Le serveur n’a tout simplement plus d’espace pour écrire le fichier.

17. Vérifiez également les inodes

Un disque peut encore disposer de plusieurs gigaoctets libres et malgré tout être incapable de créer de nouveaux fichiers.

Sur certains systèmes de fichiers, le nombre d’inodes disponibles peut être épuisé.

Vous pouvez vérifier avec :

Code : Tout sélectionner


df -i

Si le nombre d’inodes disponibles est nul, le serveur ne pourra plus créer normalement de nouveaux fichiers, même si la commande :

Code : Tout sélectionner


df -h

semble indiquer qu’il reste de la place.

C’est une cause moins connue, mais importante sur les serveurs contenant énormément de petits fichiers.

18. L’hébergeur peut également imposer son propre quota

Sur un hébergement mutualisé, vous pouvez rencontrer :

  • un quota global d’espace disque ;

  • un quota de fichiers ;

  • un quota spécifique au compte ;

  • une limite de taille de requête ;

  • une limitation PHP que vous ne pouvez pas modifier vous-même.

Dans ce cas, phpBB ne peut pas dépasser les limites imposées par l’environnement qui l’héberge.

Avant d’accuser phpBB, consultez donc également le panneau de votre hébergeur.

19. Apache, Nginx ou un proxy peuvent ajouter une limite supplémentaire

Même si :

  • phpBB accepte la taille ;

  • PHP accepte la taille ;

  • le disque possède suffisamment d’espace ;

le serveur Web ou un proxy placé devant le forum peut encore refuser la requête.

Selon l’infrastructure, une limite peut exister dans :

  • Apache ;

  • Nginx ;

  • un reverse proxy ;

  • un CDN ;

  • un panneau d’hébergement ;

  • un service intermédiaire.

Le symptôme peut alors être différent d’une erreur phpBB classique.

Vous pouvez par exemple obtenir :

  • une erreur HTTP ;

  • une page générée par le serveur Web ;

  • une connexion interrompue ;

  • une réponse trop volumineuse ;

  • un message provenant directement du proxy.

Si la page d’erreur n’a même plus l’apparence de votre forum, envisagez sérieusement qu’elle soit produite avant phpBB.

20. Comparez un petit fichier et un gros fichier

C’est l’un des tests les plus efficaces.

Essayez par exemple :

Code : Tout sélectionner


image.jpg : 100 Ko

image.jpg : 1 Mo

image.jpg : 5 Mo

image.jpg : 10 Mo

Si tout fonctionne jusqu’à une certaine taille puis échoue systématiquement au-delà, vous avez probablement affaire à une limite.

Cherchez alors la plus petite valeur parmi :

Code : Tout sélectionner


phpBB

groupe d’extensions

PHP

serveur Web

proxy

hébergeur

21. Comparez plusieurs types de fichiers

Testez également plusieurs formats.

Exemple :

Code : Tout sélectionner


JPG 200 Ko : erreur

PNG 200 Ko : erreur

PDF 200 Ko : fonctionne

ZIP 200 Ko : fonctionne

Cette situation est très différente de :

Code : Tout sélectionner


JPG 200 Ko : erreur

PNG 200 Ko : erreur

PDF 200 Ko : erreur

ZIP 200 Ko : erreur

Dans le deuxième cas, le problème semble beaucoup plus général.

Dans le premier, examinez en priorité les règles et traitements spécifiques aux images.

22. Comparez plusieurs forums

Une pièce jointe peut être autorisée dans un forum et interdite dans un autre.

Testez donc le même compte et le même fichier dans deux forums différents.

Par exemple :

Code : Tout sélectionner


Forum A : fonctionne

Forum B : échoue

Cela peut orienter le diagnostic vers :

  • les permissions du forum ;

  • les groupes d’extensions autorisés dans ce forum ;

  • une configuration spécifique.

Si le même fichier échoue partout, cherchez plutôt une cause globale.

23. Comparez plusieurs utilisateurs

Autre test :

Code : Tout sélectionner


Compte administrateur : fonctionne

Compte utilisateur : échoue

Cela oriente vers les permissions.

Mais :

Code : Tout sélectionner


Compte administrateur : échoue

Compte utilisateur : échoue

rend un problème général beaucoup plus probable.

Ne testez pas uniquement avec votre propre compte.

24. Le dossier files/ ne ressemble pas à une collection normale de photos

Un administrateur qui ouvre le dossier :

Code : Tout sélectionner


files/

pour la première fois peut être surpris.

Il ne faut pas nécessairement s’attendre à y trouver :

Code : Tout sélectionner


vacances.jpg

facture.pdf

manuel.zip

phpBB gère ses pièces jointes avec des noms physiques utilisés en interne et conserve dans la base de données les informations permettant de retrouver le nom original et les métadonnées correspondantes.

Vous pouvez donc rencontrer des fichiers dont le nom physique ne ressemble absolument pas au nom affiché aux utilisateurs.

Ne renommez pas manuellement les fichiers de files/ pour essayer de les réparer.

Vous casseriez la correspondance attendue par phpBB.

25. La base de données et files/ fonctionnent ensemble

Pour comprendre une migration de pièces jointes, imaginez deux parties.

Partie 1 : les fichiers physiques

Ils se trouvent dans :

Code : Tout sélectionner


files/

Partie 2 : les informations de la base de données

Elles permettent notamment à phpBB de savoir :

  • à quel message appartient la pièce jointe ;

  • son nom original ;

  • son nom physique ;

  • sa taille ;

  • son type ;

  • ses informations associées.

Les deux éléments sont nécessaires.

Copier uniquement la base de données ne suffit donc pas.

Copier uniquement le dossier

Code : Tout sélectionner

files/

ne recrée pas non plus automatiquement toutes les relations avec les messages.

26. Après une migration : anciennes pièces jointes absentes

Supposons que votre ancien forum contienne :

Code : Tout sélectionner


25 000 pièces jointes

Vous exportez correctement la base de données.

Vous installez phpBB sur un nouveau serveur.

Vous importez la base.

Les sujets sont présents.

Les messages sont présents.

Mais toutes les images jointes sont manquantes.

La première question à poser est :

Le dossier files/ de l’ancienne installation a-t-il également été transféré intégralement ?

La base de données ne contient pas nécessairement elle-même les fichiers binaires correspondant à toutes vos pièces jointes.

Votre sauvegarde doit donc inclure les données physiques nécessaires.

Pour une procédure générale de sauvegarde et de mise à jour, consultez également :
Mettre à jour phpBB sans perdre son forum : méthode sûre, sauvegarde et retour arrière

27. Attention au mode de transfert FTP

Cette partie est particulièrement importante lors d’une migration.

Les pièces jointes sont des fichiers binaires.

Un client FTP mal configuré peut tenter de traiter certains fichiers comme du texte.

Le risque devient particulièrement trompeur lorsque les noms physiques utilisés dans :

Code : Tout sélectionner


files/

ne possèdent pas une extension classique permettant au logiciel FTP d’identifier facilement leur type.

Pour le dossier contenant les pièces jointes, utilisez un mode de transfert adapté aux fichiers binaires ou un mode automatique fiable.

Ne forcez pas un transfert ASCII du contenu de files/.

Un fichier peut être présent sur le nouveau serveur, avoir un nom correct et malgré tout être corrompu parce que son contenu a été altéré pendant le transfert.

28. Comment reconnaître une corruption après transfert ?

Situation typique :

  • la base semble correcte ;

  • le fichier existe dans

    Code : Tout sélectionner

    files/

    ;

  • sa taille paraît plausible ;

  • phpBB tente de le servir ;

  • mais l’image est illisible ou le fichier téléchargé est inutilisable.

Dans ce cas, comparez le fichier source et le fichier copié.

Sur un VPS, vous pouvez par exemple calculer une empreinte :

Code : Tout sélectionner


sha256sum nom_du_fichier

sur l’ancien serveur et le nouveau serveur.

Si les deux fichiers sont censés être identiques mais produisent des SHA-256 différents, le transfert mérite d’être examiné.

Attention à ne pas comparer deux fichiers différents uniquement parce qu’ils possèdent un nom similaire.

29. Ne déplacez pas files/ sans comprendre la configuration

Le dossier de téléversement des pièces jointes fait partie de la configuration de phpBB.

Ne décidez pas de déplacer manuellement :

Code : Tout sélectionner


files/

vers un autre emplacement simplement pour « faire plus propre ».

Si phpBB continue à chercher les fichiers dans l’ancien emplacement, les téléchargements échoueront.

De même, ne modifiez pas le cœur de phpBB pour changer un chemin lorsqu’un réglage prévu par le système permet de gérer le stockage.

L’objectif est de conserver une installation maintenable et compatible avec les mises à jour.

30. Une extension peut-elle casser les pièces jointes ?

Oui.

Une extension peut intervenir :

  • sur le formulaire de publication ;

  • sur la validation d’un fichier ;

  • sur l’affichage des messages ;

  • sur le téléchargement ;

  • sur les images ;

  • sur la sécurité ;

  • sur le stockage.

Si le problème est apparu immédiatement après l’installation ou la mise à jour d’une extension, ajoutez cette information à votre diagnostic.

Mais ne désactivez pas vingt extensions simultanément.

Procédez progressivement.

Par exemple :

Code : Tout sélectionner


Extension active : upload impossible

Extension désactivée : upload fonctionne

Extension réactivée : upload impossible

Ce test reproductible est beaucoup plus utile qu’un changement massif dont vous ne connaissez plus l’effet exact.

31. Vérifiez les logs

Un message générique affiché dans le navigateur peut cacher une erreur beaucoup plus précise dans les journaux.

Consultez :

  • le journal d’erreurs de phpBB ;

  • les logs PHP ;

  • les logs PHP-FPM ;

  • les logs Apache ou Nginx ;

  • les journaux de votre hébergeur ;

  • les éventuels logs du proxy.

Cherchez particulièrement ce qui apparaît au moment exact du test.

Exemples de termes pouvant être utiles :

Code : Tout sélectionner


upload

temporary

permission denied

files

failed to open stream

write

disk

quota

memory

POST

request entity too large

file size

Ne copiez pas cinq années de logs dans votre demande d’aide.

Reproduisez le problème une fois puis récupérez les lignes correspondantes.

32. Si le problème est apparu après une mise à jour PHP

Notez précisément :

Code : Tout sélectionner


Ancienne version PHP :

Nouvelle version PHP :

Version phpBB :

Date d’apparition du problème :

Vérifiez également que votre version phpBB est compatible avec la version PHP réellement utilisée.

Une installation peut sembler fonctionner correctement sur l’accueil tout en rencontrant des problèmes uniquement sur certaines fonctions.

Une incompatibilité n’entraîne pas nécessairement une page blanche immédiate sur toutes les pages.

33. Si le problème est apparu après une migration

Contrôlez au minimum :

  • la base de données ;

  • le dossier

    Code : Tout sélectionner

    files/

    ;

  • les propriétaires et permissions ;

  • la configuration PHP ;

  • le dossier temporaire ;

  • l’espace disque ;

  • la version PHP ;

  • les limites de téléversement ;

  • le mode utilisé pour transférer les fichiers.

Une migration ne consiste pas uniquement à faire :

Code : Tout sélectionner


export SQL

import SQL

Les pièces jointes sont précisément l’un des exemples montrant pourquoi les fichiers de l’installation doivent également être sauvegardés et transférés correctement.

34. Si seules les anciennes pièces jointes sont cassées

Cas très intéressant :

Code : Tout sélectionner


Nouvelle pièce jointe : fonctionne

Ancienne pièce jointe : erreur

Dans ce cas, le système d’upload actuel fonctionne probablement.

Cherchez plutôt :

  • une migration incomplète ;

  • des fichiers anciens absents ;

  • des fichiers anciens corrompus ;

  • un ancien dossier de stockage différent ;

  • une incohérence entre la base restaurée et les fichiers copiés.

Ne perdez pas du temps à augmenter :

Code : Tout sélectionner


upload_max_filesize

si les nouveaux fichiers fonctionnent parfaitement.

Le symptôme indique déjà que le problème concerne probablement les données historiques.

35. Si les nouvelles pièces jointes échouent mais les anciennes fonctionnent

Situation inverse :

Code : Tout sélectionner


Anciennes pièces jointes : téléchargement correct

Nouvel upload : impossible

Le dossier historique est donc au moins lisible.

Il faut chercher ce qui empêche l’écriture de nouvelles données.

Priorités :

  1. permissions d’écriture de

    Code : Tout sélectionner

    files/

    ;

  2. dossier temporaire PHP ;

  3. limites PHP ;

  4. quota disque ;

  5. quota phpBB ;

  6. type de fichier ;

  7. configuration serveur ;

  8. extension récente.

36. Si le fichier est envoyé mais impossible à télécharger

Autre situation :

Code : Tout sélectionner


Upload : fonctionne

Message : publié

Pièce jointe : visible

Téléchargement : erreur

Le téléversement lui-même n’est alors peut-être pas responsable.

Examinez plutôt :

  • la présence réelle du fichier physique ;

  • la correspondance avec la base ;

  • les permissions de lecture ;

  • les permissions phpBB de téléchargement ;

  • le chemin configuré ;

  • une extension intervenant sur le téléchargement ;

  • les logs générés lors de la tentative.

37. Si seules les images échouent

Utilisez une image très simple et connue comme valide.

Par exemple :

Code : Tout sélectionner


JPEG standard

petite taille

dimensions raisonnables

Puis essayez un PNG.

Si :

Code : Tout sélectionner


JPG : erreur

PNG : erreur

PDF : fonctionne

vérifiez notamment :

  • la validation d’image ;

  • la version PHP ;

  • les modules PHP liés au traitement d’images lorsque votre configuration en utilise ;

  • les dimensions autorisées ;

  • la taille ;

  • la corruption éventuelle du fichier temporaire.

N’utilisez pas immédiatement une image de 20 000 pixels de large comme unique fichier de test.

38. Construisez un diagnostic reproductible

Un bon rapport ressemble à ceci :

Code : Tout sélectionner


phpBB : 3.3.x

PHP : 8.x

Hébergement : VPS

JPEG 100 Ko : fonctionne

JPEG 3 Mo : échoue

PDF 100 Ko : fonctionne

PDF 3 Mo : échoue

Limite phpBB : 10 Mo

Limite groupe : 10 Mo

upload_max_filesize : 2 Mo

post_max_size : 8 Mo

La cause probable devient immédiatement visible.

Un mauvais rapport ressemble à ceci :

Les images ne marchent plus, j’ai tout vérifié.

Personne ne sait ce que signifie « tout ».

39. Méthode de diagnostic recommandée

Procédez dans cet ordre.

  1. Vérifiez si l’option de pièce jointe est visible.

  2. Testez avec un compte administrateur et un compte utilisateur.

  3. Testez une petite image valide.

  4. Testez un petit fichier non image autorisé.

  5. Testez le même fichier dans plusieurs forums.

  6. Vérifiez les extensions et groupes d’extensions phpBB.

  7. Vérifiez les limites de taille phpBB.

  8. Vérifiez les limites PHP.

  9. Vérifiez le dossier temporaire PHP.

  10. Vérifiez que

    Code : Tout sélectionner

    files/

    est accessible en écriture.

  11. Vérifiez l’espace disque.

  12. Vérifiez les éventuels quotas de l’hébergeur.

  13. Vérifiez les limites du serveur Web ou du proxy.

  14. Consultez les logs.

  15. Si le problème suit une migration, vérifiez l’intégrité de

    Code : Tout sélectionner

    files/

    .

  16. Si nécessaire, testez les extensions une par une.

Cette méthode permet d’éliminer progressivement les causes sans casser une installation qui fonctionnait encore partiellement.

40. Ce qu’il ne faut pas faire

Évitez les réactions suivantes :

  • mettre toute l’installation en 777 ;

  • renommer les fichiers physiques présents dans

    Code : Tout sélectionner

    files/

    ;

  • vider une table SQL parce que son nom contient « attachments » ;

  • supprimer

    Code : Tout sélectionner

    files/

    pour « repartir proprement » ;

  • réinstaller phpBB avant d’avoir lu les logs ;

  • augmenter toutes les limites à plusieurs gigaoctets ;

  • désactiver toutes les protections de fichiers ;

  • modifier le cœur de phpBB ;

  • changer dix paramètres en même temps ;

  • écraser le dossier

    Code : Tout sélectionner

    files/

    avec un dossier vide lors d’une mise à jour.

Une correction efficace doit résoudre la cause sans introduire un nouveau problème de sécurité ou de données.

41. Informations à fournir lorsque vous demandez de l’aide

Pour qu’un diagnostic puisse commencer rapidement, indiquez :

Versions

Code : Tout sélectionner


Version phpBB :

Version PHP :

MariaDB ou MySQL :

Hébergement

Code : Tout sélectionner


Mutualisé / VPS / dédié :

Apache / Nginx / autre si connu :

Proxy ou CDN : oui/non/inconnu

Symptôme exact

Copiez le message complet affiché par phpBB.

Tests

Code : Tout sélectionner


Petite image JPG :

Petite image PNG :

Petit PDF :

Gros fichier :

Utilisateurs

Code : Tout sélectionner


Administrateur :

Utilisateur enregistré :

Forums

Code : Tout sélectionner


Tous les forums concernés : oui/non

Messages privés concernés : oui/non/non testé

Configuration

Si vous les connaissez :

Code : Tout sélectionner


Limite phpBB :

Limite groupe d’extensions :

upload_max_filesize :

post_max_size :

upload_tmp_dir :

Contexte

Précisez si le problème est apparu après :

  • une mise à jour phpBB ;

  • une mise à jour PHP ;

  • un changement d’hébergeur ;

  • une migration ;

  • une restauration ;

  • l’installation d’une extension ;

  • un changement de permissions serveur.

Logs

Ajoutez uniquement les erreurs correspondant au test.

Ne publiez jamais :

  • mot de passe FTP ;

  • mot de passe SSH ;

  • mot de passe MariaDB/MySQL ;

  • contenu complet de

    Code : Tout sélectionner

    config.php

    ;

  • clé privée ;

  • secret ;

  • jeton d’accès.

42. Checklist rapide

  • L’utilisateur possède le droit de joindre des fichiers.

  • L’extension du fichier est autorisée.

  • Le groupe d’extensions est activé.

  • Le groupe est autorisé dans le forum concerné.

  • La taille respecte la limite du groupe.

  • La taille respecte la limite générale de phpBB.

  • La taille respecte

    Code : Tout sélectionner

    upload_max_filesize

    .

  • Code : Tout sélectionner

    post_max_size

    est suffisamment élevé.

  • Le dossier temporaire PHP fonctionne.

  • Code : Tout sélectionner

    files/

    est accessible en écriture par le serveur Web.

  • Le disque n’est pas plein.

  • Les inodes ne sont pas épuisés.

  • Le quota de l’hébergeur n’est pas dépassé.

  • Le serveur Web ou proxy n’impose pas une limite inférieure.

  • La version PHP utilisée par le Web est connue.

  • Les logs ont été consultés.

  • Le test a été effectué avec plusieurs fichiers.

  • Le test a été effectué avec plusieurs utilisateurs.

  • Le test a été effectué dans plusieurs forums.

  • Après une migration,

    Code : Tout sélectionner

    files/

    a bien été transféré.

  • Les fichiers n’ont pas été corrompus par un transfert ASCII.

  • Aucun fichier physique de

    Code : Tout sélectionner

    files/

    n’a été renommé manuellement.

  • Aucune donnée SQL n’a été supprimée au hasard.

À retenir

Lorsqu’une pièce jointe phpBB ne fonctionne plus, ne commencez pas par modifier les permissions du serveur, PHP et la base de données simultanément.

Commencez par déterminer :

Code : Tout sélectionner


Quel fichier échoue ?

Quelle taille ?

Quel type ?

Quel utilisateur ?

Quel forum ?

Depuis quand ?

Après quel changement ?

Puis suivez la chaîne réelle :

Code : Tout sélectionner


Permissions phpBB

Types autorisés

Limites phpBB

Limites PHP

Dossier temporaire

Dossier files/

Espace disque

Serveur Web

Proxy

Base de données

Fichiers physiques

Retenez également un point essentiel lors des migrations :

les pièces jointes ne vivent pas uniquement dans la base de données.

La base contient les informations permettant à phpBB de les retrouver.

Le dossier :

Code : Tout sélectionner


files/

contient les fichiers physiques correspondants.

Les deux doivent rester cohérents.

Enfin :

ne renommez pas les fichiers de files/ à la main ;
ne forcez pas leur transfert en mode ASCII ;

ne mettez pas tout le forum en 777 ;

et ne supprimez aucune donnée avant d’avoir identifié précisément la cause.

Un diagnostic progressif permet presque toujours de déterminer si le blocage vient de phpBB, de PHP, du système de fichiers, de l’hébergement ou de la migration.