J'ai récemment déplacé un site d'un hôte local vers un VPS. J'ai réussi à rendre les fichiers publics et privés accessibles en écriture; Cependant, je ne sais pas où trouver le dossier temporaire ni comment modifier les autorisations. Je continue à recevoir ce message:
Le fichier spécifié temporaire: // fichier3Hl91E n'a pas pu être copié car le répertoire de destination n'est pas configuré correctement. Cela peut être dû à un problème d'autorisations de fichier ou de répertoire. Plus d'informations sont disponibles dans le journal système.
J'utilise Virtualmin, Drupal 7 et un serveur Debian. Mon répertoire temporaire actuel est /tmp
.
Dans votre settings.php
Cela fonctionnera sur les systèmes Unix 99% du temps.
En règle générale, le répertoire / tmp existe sur les systèmes UNIX dotés d'autorisations ouvertes. Il existe spécifiquement pour les fichiers temporaires et est souvent configuré pour améliorer les performances.
Vous pouvez vérifier les autorisations en cours d' exécution
ls -al /tmp
sur la ligne de commande.Si vous souhaitez en savoir plus à ce sujet, voir https://en.wikipedia.org/wiki/Temporary_folder
la source
/tmp
ne disposez pas des autorisations appropriées. Cela va même à l’encontre de la réponse acceptée (qui n’est pas extraordinaire non plus).Il est important de comprendre qu’un problème d’autorisations peut exister à la fois dans votre répertoire temporaire spécifié (défini dans admin / config / media / système de fichiers) ET dans le dossier dans lequel ce fichier temporaire sera copié. J'ai vu cette erreur plusieurs fois et ce n'est généralement pas un problème avec le dossier temporaire, mais le dernier dossier dans lequel ce fichier est copié après avoir été placé dans le dossier temporaire.
Assurez-vous également que le chemin du système de fichiers public est défini correctement.
la source
J'ai eu ce problème exact et je me suis assuré d'utiliser un chemin relatif (sites / default / files / tmp) pour l'emplacement de mon dossier tmp comme suggéré et j'ai également modifié les autorisations sur le dossier tmp pour m'assurer qu'il était accessible en écriture par apache mais mon problème existait toujours. . J'ai donc décidé de vérifier les messages de journal (Rapports >> Messages de journal récents) pour voir si je pouvais avoir une meilleure compréhension du problème. En faisant cela, j'ai reçu un message plus spécifique:
Cela m'a incité à vérifier les autorisations sur le dossier js dans sites / default / files et comme il s'avère qu'apache ne pouvait pas y écrire, donc en modifiant les autorisations sur 775 pour ce dossier, je me suis débarrassé de mon message d'erreur. Je vous suggère donc de vérifier les autorisations pour tous les sous-dossiers des sites / default / files et pas seulement pour le dossier tmp si vous n'avez pas encore résolu votre problème. Je pensais que je partagerais cette information.
la source
sudo chgrp -R www-data /var/www/mysite
avec "changer les autorisations à 775" . Ce n'est pas nécessaire. Drupal n'a pas besoin d'écrire dans tous les dossiers. Seuls vos dossiers de fichiers publics, privés et tmp.vous pouvez trouver les paramètres du système de fichiers en le
admin/config/media/file-system
changeant en / tmpvous pouvez également vérifier admin / reports / status pour tout problème de paramètres
sur la permission / tmp vous pouvez lui donner 755 et vous la trouverez dans / public_html
la source
Le message d'erreur peut parfois être trompeur
S'il indique que le problème concerne le répertoire de destination, Apache ne dispose probablement pas des autorisations nécessaires pour écrire dans le sous-dossier sites / default / files que Drupal souhaite placer dans le fichier.
Une bonne solution consiste à faire de l'utilisateur apache le propriétaire de tous les fichiers et répertoires sous sites / default / files
Ou quelque chose de similaire devrait résoudre les problèmes de répertoire de destination. Vérifiez que le propriétaire dispose des autorisations d'écriture et d'exécution sur tous les sous-répertoires.
la source
chown -R www-data:www-data /var/www/html/sites/default/files/
Le répertoire de fichiers: Dépannage des serveurs Web basés sur Apache
Si les fichiers de répertoire ne sont pas "détenus" par le serveur Web, il existe deux façons de procéder. Ces instructions supposent que vous avez un accès shell au serveur Web. Si vous n’avez pas accès au shell, veuillez contacter votre fournisseur d’hébergement pour une assistance supplémentaire.
Idéalement, vous pourrez modifier le "propriétaire" des fichiers de répertoires pour qu'ils correspondent au nom du serveur Web. Sur un serveur Unix ou Linux, vous pouvez vérifier "qui" exécute le serveur Web en exécutant les commandes suivantes:
En fonction de votre serveur Web, l’une de ces commandes renverra une série de lignes comme celle-ci:
La première colonne du texte renvoyé est "l'utilisateur" sous lequel votre serveur Web fonctionne. Dans ce cas, l'utilisateur est www-data. Pour que votre répertoire de fichiers soit accessible en écriture au serveur Web, vous devez réaffecter sa propriété à l'aide de la commande suivante:
Si vous ne disposez pas des autorisations suffisantes sur votre serveur pour modifier la propriété du dossier, la meilleure option consiste à fournir un accès en écriture de groupe au dossier à l'aide de la commande suivante:
Vous devriez également pouvoir ajuster les autorisations du répertoire à l'aide d'un programme FTP, comme indiqué ci-dessus.
Une fois ces étapes terminées, confirmez que les autorisations appropriées ont été attribuées en accédant à Administrer -> Rapports -> Rapport d'état. Faites défiler jusqu'à la section intitulée «Système de fichiers» et vérifiez que vos paramètres sont maintenant corrects.
Source: Le répertoire de fichiers
la source
Une autre source d'erreur est qu'il ne peut pas écrire dans le dossier de fichiers. Dans mon cas, je l'ai résolu en utilisant:
la source
Dans certaines situations, cela peut être facilement résolu en supprimant les dossiers "ctools" et "js" dans default / files. Ces dossiers sont recréés par le système si nécessaire. Parfois, lors de la nouvelle installation d’un site existant, ces dossiers existants posent déjà des problèmes. De plus, si votre CSS ne fonctionne pas après la nouvelle installation d'un site existant, vous pouvez également le réparer en supprimant ces fichiers et en permettant à Drupal de les recréer.
la source
Mon ancienne et problématique configuration
Ma nouvelle configuration de travail
la source
Les autorisations correctes pour le dossier temporaire dépendent de la configuration de votre serveur Web.
Si vous utilisez Drupal avec PHP comme module de serveur Web, par exemple Apache, lorsque l'utilisateur défini dans le fichier de configuration du serveur Web principal à l'aide de la directive User doit y avoir accès en écriture.
% grep -i "utilisateur" /etc/httpd/conf/httpd.conf
Utilisateur apache
la source
J'ai eu le même problème après être passé d'un serveur à un autre.
J'ai essayé tout ce qui est suggéré ici, en plaçant les dossiers à 755, etc.
Mon dossier temporaire a été réglé sur "" tmp7zXhVVCO "et il a bien copié les fichiers d'installation, après chaque tentative, j'ai vu le fichier temporaire y être copié, mais l'installation a continué à échouer.
Le problème cependant, c’est le propriétaire, pas les droits, ce qui explique pourquoi 777 supprime cette erreur, mais nous savons tous que ce n’est pas une façon de procéder sur les sites de production.
la source
The directory ../temp2 does not exist and could not be created.
Je n'aime pas vraiment les réponses existantes, je vais donc en commencer une moi-même que je mettrai probablement à jour avec le temps. Principalement avec des commandes shell.
Pour l'instant, lancez ceci à partir de
sites/example.com
:la source
De Configuration -> Médias -> Système de fichiers J'ai supprimé le / temp-catalogue. Après cela, je n'ai eu aucun problème.
la source
J'ai eu le même problème sur une migration. J'ai chmod 777 tous les sites / default / files mais l'erreur se produit toujours. Je change l'autorisation 775 sur les sites / default / files et le message a disparu. Je n'étais pas un problème de chemin privé, le mien est / var / tmp mais l'autorisation 775.
la source
Si vous rencontrez ce problème lors de l'utilisation de Pantheon et continue à obtenir l'erreur après avoir défini le ou les chemins de répertoire de fichiers (temporaires), vous devrez peut-être également basculer le mode de connexion de votre tableau de bord d'instance de développement de Git à SFTP.
Votre site Drupal tente peut-être de sauvegarder des fichiers dans un répertoire géré par Git (par exemple, si vous modifiez les paramètres de présentation et autres dans un thème de thèmes adaptatifs). Pour ce faire, passez à SFTP. Une fois les fichiers sauvegardés, vous pouvez revenir à Git et le tableau de bord vous invitera à valider les modifications apportées sur le serveur.
la source
J'ai eu le même problème.
J'utilisais IIS dans Windows. Enfin, le problème concernait les autorisations du dossier sites / default / files et, bien entendu, de sites / default / files / tmp.
Enfin, j'ai redonné des autorisations complètes aux dossiers et cela a fonctionné.
Cordialement
la source