“PHP Warning: move_uploaded_file“ è un errore tipico dei server web con Nginx e appare quando vogliamo caricare un file sul server. La maggior parte delle volte, quando dobbiamo caricare certificati o altri file che non appartengono “Media”, non vediamo l'errore nell'interfaccia di amministrazione del CMS.
In una forma più concreta, l'errore “PHP Warning: move_uploaded_file” lo troviamo dentro error.log sotto forma di:
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'
Perché si verifica l'errore “PHP Warning: move_uploaded_file“ e come lo risolviamo
Come ho detto sopra, l'errore appare quando proviamo a caricare alcuni file sul server web.
“FastCGI sent in stderr” è tipico per i server che hanno PHP-FPM e Nginx come software per il web. Quindi il problema è da qualche parte nella relazione dello script attraverso il quale vengono caricati i file.
“move_uploaded_file(): Unable to move” ci dice molto chiaramente che quei file non possono essere caricati e spostati in un'altra cartella sul server web dallo script che esegue l'operazione.
- Correggere l'errore nginx: non è possibile allocare una nuova sessione nella sessione SSL condivisa nella cache "le_nginx_sssl" durante la sua handshaking SSL
- Correggi [Errore HTTP] Client destinato a inviare un corpo troppo grande [caricamento multimediale WordPress]
Risoluzione di questo errore PHP il problema si risolve in modo molto semplice, impostando i corretti permessi sul server, sia per lo script di esecuzione, al quale l'utente più probabile: nginx non ha avuto accesso, sia per la cartella di destinazione.
Se i file del sito web non appartengono a un utente, come nel cPanel, VestaCP o altre piattaforme di gestione dell'hosting, quasi sicuramente la soluzione è fornire all'utente nginx l'accesso alla cartella di caricamento e allo script.
Per l'esempio di codice sopra, eseguiremo il seguente comando in SSH:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Riavvio il caricamento e tutto dovrebbe procedere senza l'errore “move_uploaded_file(): Unable to move“.
Se riscontri ancora problemi, puoi risolverli nei commenti di questo tutorial.
Bonjour,
Ho letto e riletto i tuoi articoli sull'argomento [move_upload_file].
Si scopre che mi trovo ad affrontare questo problema e ho cercato di uscirne per molti mesi senza successo.
Ho un sito personale in cui ho una pagina Form.html che funziona solo parzialmente e cioè: impossibile aprire il feed ecc...e ovviamente spostarlo in 'uploads'.
Sono andato in pensione dalle Arti Grafiche, tipografo a 13 anni, poi redattore offset, computer graphic designer, webmaster, insomma ho 84 anni in pensione e ho ancora la passione per il mio lavoro.
Se me la cavo con HTML e JavaScript, oggi faccio fatica con PHP.
Con i miei compagni veterani algerini faccio piccole gite e mi esibisco “rapporti” che metto nel mio Sito Personale a disposizione di chi fosse interessato; pertanto, vorrei ricevere dei documenti perché non posso fare tutto da solo per illustrare i miei punti, da qui l'idea del modulo PHP e dell'elaborazione.
Ho creato il mio sito con “Dreamweaver CC2020”, versione Mac ospitata a casa su un server DMS v. Synology “Ngnix”. 7.1 – PHP 8 (possibilità php 7.2, php 7.3, php 7.4). Certificato predefinito (No-Ip): TrustCor DV CA – G2RSA
Il modulo funziona correttamente per i campi "testo", ma rifiuta i campi multimediali.
Se vuoi puoi collegarti all'URL qui sopra, cliccare sulla figurina e siccome non ho attivato l'html di “ritorno”, potrai visualizzare il risultato nella pagina PHP. (Ho assegnato 10 Mb e 20 Mb) per i media.
E se ho ragione, il problema deriverebbe dal “FastCGI” dei server Nginx PHP-TPM che è il mio caso, quindi nel riquadro TPM ci sono molte caselle da selezionare o deselezionare, ma quali?
Ho notato il comando SSH:
chown -R nginx:nginx /srv/www/dominio.test/public/
chmod g+w file.file
Ma sarà adatto al mio server?
Grazie in anticipo per i vostri preziosi consigli.