“PHP Warning: move_uploaded_file“ est une erreur de serveur Web typique avec Nginx et apparaît lorsque nous voulons télécharger un fichier sur le serveur. La plupart du temps, lorsque nous devons télécharger des certificats ou d'autres fichiers qui n'appartiennent pas à “Media”, nous ne voyons pas l'erreur dans l'interface d'administration du CMS.
Sous une forme plus concrète, l'erreur “PHP Warning: move_uploaded_file” on le retrouve dans error.log
comme:
FastCGI sent in stderr: "PHP message: PHP Warning: move_uploaded_file(/srv/www/domain.test/public/file.file): failed to open stream: Permission denied in /srv/www/domain.test/public/script.php on line 748 PHP message: PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpqAVtWy'
Pourquoi l'erreur se produit “PHP Warning: move_uploaded_file“ et comment nous le résolvons
Comme je l'ai dit ci-dessus, l'erreur se produit lorsque nous essayons de télécharger des fichiers sur le serveur Web.
"FastCGI sent in stderr
”Est typique pour les serveurs qui ont PHP-FPM et Nginx comme logiciel pour le web. Le problème se situe donc quelque part dans la relation du script par lequel les fichiers sont téléchargés.
"move_uploaded_file(): Unable to move
"Nous dit très clairement que ces fichiers ne peuvent pas être téléchargés et déplacés vers un autre dossier sur le serveur Web par le script qui effectue l'opération.
- Réparer NGINX Error: impossible d'allouer une nouvelle session dans SSL cache partagé de session "le_nginx_SSL" tandis que SSL poignée de main
- Corriger [HTTP Error] client destiné à envoyer un corps trop volumineux [Media Upload WordPress]
Résoudre cette erreur PHP il est résolu très simplement, en définissant les autorisations correctes sur le serveur, à la fois pour le script d'exécution, auquel l'utilisateur le plus probable : nginx n'a pas eu accès, et pour le dossier de destination.
Si les fichiers du site Web n'appartiennent pas à un utilisateur, comme c'est le cas sur cPanel, VestaCP ou d'autres plates-formes de gestion d'hébergement, la solution consiste presque certainement à donner à l'utilisateur nginx l'accès au dossier de téléchargement et au script.
Pour l'exemple de code ci-dessus, nous allons exécuter la commande suivante en SSH :
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Nous reprenons le téléchargement et tout devrait fonctionner sans erreur “move_uploaded_file(): Unable to move“.
Si vous rencontrez toujours des problèmes, cela peut être résolu dans les commentaires de ce tutoriel.
Bonjour,
J'ai lu et relu vos articles sur le sujet [move_upload_file].
Il se trouve que je suis conforme avec ce problème et que je cherche depuis moult mois de m'en sortir sans succès.
J'ai un site perso dans lequel j'ai une page Formaire.html qui ne fonctionne que partiellement, à savoir : il est impossible d'ouvrir les flux etc... et il est prudent de les déplacer en 'uploads'.
Je suis retraité des Arts graphiques, typographe à 13 ans, puis monteur offset, infographiste, webmaster, bref j'ai 84 ans retraité et je suis toujours et encore passionné par mon métier.
Si je me débrouille avec le html et le JavaScript, je me heurte aujourd'hui au PHP.
Je fais avec mes collègues anciens combattants d'Algérie, de petites sorties et réalise des "reportages" que je mets sur mon site Perso à dispo pour ceux qui sont regardés; donc, je désire recevoir des docs car je ne pas tout faire moi même pour illustrer mes propos, d'où l'idée du Formulaire et traitement PHP.
J'ai créé mon site avec "Dreamweaver CC2020", version Mac héberger chez moi sur un serveur Synology « Ngnix » DMS v. 7.1 – PHP 8 (possibilité php 7.2, php 7.3, php 7.4). Certificat par défaut (No-Ip) : TrustCor DV CA – G2 RSA
Le formulaire fonctionne correctement pour les champs "texte", mais refuse les champs "média".
Si vous le souhaitez, vous pouvez vous connecter à l'URL ci-dessus, cliquer sur la figurine et comme je n'ai pas à activer le "retour" html, vous pouvez visualiser le résultat dans la page PHP. (j'ai alloué 10 Mo et 20 Mo) pour les médias.
Et si je vous suis bien, le soucis viendrait du "FastCGI" des serveurs Nginx PHP-TPM ce qui est mon cas, alors dans le volet TPM, il existe bien moult cas à cocher ou décocher, mais les quoi ?
J'ai remarqué la commande SSH :
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w fichier.fichier
Mais conviendra-t-elle à mon serveur ?
Merci par avance de vos précieux conseils