Vous glissez une image dans la Médiathèque. La barre de téléversement se remplit. Puis elle s’arrête. Une erreur rouge apparaît :
« Unable to create directory. Is its parent directory writable by the server? »
Vos téléversements média sont cassés. Les nouvelles images, PDF et fichiers ne passent pas. Les anciens médias fonctionnent encore — mais rien de nouveau.
Cette erreur est frustrante, mais elle a un petit nombre de causes connues. Ce guide vous montre exactement comment la corriger.
WordPress organise les téléversements par année et par mois. Lorsque vous téléversez un fichier, il essaie de créer un dossier comme :
/wp-content/uploads/2024/03/
L’erreur « Unable to create directory » signifie que WordPress ne peut pas créer le dossier de ce mois.
Ce que WordPress essaie de faire :
/wp-content/uploads/ existe/wp-content/uploads/2024/ existe/wp-content/uploads/2024/03/ existeLe serveur dit : « Je n’ai pas la permission de créer ce dossier. »
| Cause | Probabilité | Test rapide |
|---|---|---|
| Mauvaises permissions de dossier | ÉLEVÉE | Le dossier de téléversement n’est pas accessible en écriture |
| Mauvais propriétaire des dossiers | MOYENNE | Le propriétaire ≠ utilisateur du serveur web |
| Espace disque saturé | MOYENNE | L’hébergement indique que le stockage est plein |
| Dossier uploads manquant | FAIBLE | /uploads/ n’existe pas du tout |
| Création de répertoire PHP désactivée | TRÈS FAIBLE | Restriction d’hébergement rare |
Suivez-les dans l’ordre. Testez après chaque étape.
WordPress a besoin que le dossier /wp-content/uploads/ ait les bonnes permissions.
Permissions correctes :
755644Comment vérifier via FTP (FileZilla, etc.) :
/wp-content/uploads → Permissions des fichiers755Ensuite, corrigez les permissions des fichiers à l’intérieur :
uploads → Permissions des fichiers644Via le Gestionnaire de fichiers de l’hébergement (cPanel, etc.) :
public_html/wp-content/uploads → Changer les permissions755 pour les dossiers et 644 pour les fichiers (la plupart des gestionnaires de fichiers ont une option récursive)Pourquoi 755 ? Le serveur web a besoin d’un accès en écriture pour créer de nouveaux dossiers. 755 donne au propriétaire (le serveur) un contrôle total, et aux autres un accès en lecture/exécution.
Les permissions peuvent être correctes, mais si le mauvais utilisateur possède les fichiers, le serveur web ne peut toujours pas écrire.
Comment vérifier (si vous avez un accès SSH) :
bash
ls -la /chemin/vers/wp-content/
Cherchez le propriétaire et le groupe du dossier uploads. Ils doivent correspondre à l’utilisateur qui exécute le serveur web (souvent www-data, nobody ou votre nom d’utilisateur d’hébergement).
Comment corriger (SSH) :
bash
cd /chemin/vers/wp-content/ chown -R www-data:www-data uploads/
(Remplacez www-data:www-data par le bon utilisateur:groupe de votre serveur.)
Pas d’accès SSH ? Contactez votre support d’hébergement. Demandez-leur :
« Mon dossier de téléversement WordPress n’est pas accessible en écriture. Pouvez-vous vérifier la propriété de
/wp-content/uploads/et vous assurer que l’utilisateur du serveur web en est le propriétaire ? »
Si votre compte d’hébergement n’a plus d’espace, WordPress ne peut pas créer de nouveaux dossiers ou fichiers.
Comment vérifier :
Comment libérer de l’espace :
SQL rapide pour compter les révisions (à titre indicatif) :
sql
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';
Parfois, le dossier /uploads/ n’existe pas du tout (après une migration ou une installation fraîche).
Comment corriger via FTP :
/wp-content/uploads755uploads, créez le dossier de l’année en cours (ex : 2024)75506 pour juin)755Ou laissez WordPress réessayer :
Créez simplement le dossier uploads vide avec les permissions 755. WordPress créera automatiquement les sous-dossiers année/mois lors du prochain téléversement.
Si vous avez tout essayé et que vous ne pouvez toujours pas corriger les permissions, vous pouvez demander à WordPress d’arrêter d’organiser les téléversements dans des dossiers par année/mois.
Ajoutez ceci à wp-config.php (avant la ligne « arrêtez de modifier ») :
php
define('UPLOADS', 'wp-content/uploads');
add_filter('upload_dir', function($uploads) {
$uploads['subdir'] = '';
$uploads['path'] = $uploads['basedir'];
$uploads['url'] = $uploads['baseurl'];
return $uploads;
});
Attention : Ceci est une solution de contournement, pas une véritable correction. Tous les nouveaux téléversements iront directement dans /uploads/, ce qui peut devenir désordonné. Utilisez-la uniquement si votre hébergeur refuse de corriger correctement les permissions.
Certains hébergements gérés ont des comportements particuliers.
Kinsta :
WP Engine :
Cloudways :
Développement local (XAMPP/MAMP/Local by Flywheel) :
Définissez les bonnes permissions à l’installation
Lors de la première installation de WordPress, assurez-vous que /wp-content/uploads/ est créé avec les permissions 755. La plupart des hébergeurs le font automatiquement.
Surveillez l’espace disque
Configurez des alertes pour lorsque vous atteignez 80 %, 90 % et 95 % de votre limite de stockage. La plupart des hébergements gérés offrent cette fonction.
Ne déplacez ni ne renommez manuellement les téléversements via FTP
Déplacer des dossiers via FTP peut réinitialiser la propriété et les permissions. Utilisez plutôt la Médiathèque WordPress pour la gestion.
Utilisez une extensionUn logiciel qui ajoute des fonctionnalités spécifiques à ... More de sauvegardeUne copie des fichiers et de la base de données de votre si... More qui stocke hors serveur
Si vous utilisez une extensionUn logiciel qui ajoute des fonctionnalités spécifiques à ... More de sauvegardeUne copie des fichiers et de la base de données de votre si... More (UpdraftPlus, etc.), stockez les sauvegardes dans le cloud (Google Drive, Dropbox, S3), pas sur le même serveur.
Calendrier de nettoyage régulier
Une fois par mois :
L’erreur « Unable to create directory » a une cause simple : le serveur web ne peut pas créer de dossier. La solution consiste presque toujours à corriger les permissions ou à libérer de l’espace disque.
Rappelez-vous :
/uploads/ doit être en 755Cette erreur est agaçante, mais ce n’est presque jamais un bug de WordPress. C’est un problème de configuration du serveur — et cela signifie qu’il est corrigeable.