“PHP Warning: move_uploaded_file“ è un tipico errore del server web con Nginx e appare quando vogliamo caricare un file sul server. Il più delle volte, quando dobbiamo caricare certificati o altri file che non ci appartengono “Media”, non vediamo l'errore nell'interfaccia di adminRegistrazione CMS.
In una forma più concreta, l'errore “PHP Warning: move_uploaded_file” lo troviamo dentro error.log
come:
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 si verifica quando proviamo a caricare file sul server web.
"FastCGI sent in stderr
”È tipico per i server che hanno PHP-FPM e Nginx come software 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.
Risolvi questo errore PHP si risolve molto semplicemente, impostando i permessi corretti sul server, sia per lo script di esecuzione, a cui l'utente più probabile: nginx non aveva accesso, sia per la cartella di destinazione.
Se i file del sito Web non appartengono a un utente, come su cPanel, VestaCP o altre piattaforme di gestione dell'hosting, quasi sicuramente la soluzione è dare 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
Riprendiamo il caricamento e tutto dovrebbe funzionare senza errori “move_uploaded_file(): Unable to move“.
Se hai ancora problemi, puoi risolverli nei commenti di questo tutorial.