In breve: l’errore WordPress “Manca una cartella temporanea” corrisponde normalmente all’errore PHP UPLOAD_ERR_NO_TMP_DIR . PHP non riesce a usare la directory temporanea necessaria per ricevere il file prima che WordPress lo sposti nella Libreria media. Non è lo stesso problema di una cartella wp-content/uploads non scrivibile.
Indice dei contenuti
Come funziona l’upload
Quando carichi un’immagine, un tema o un plugin:
- il web server passa la richiesta a PHP;
- PHP salva temporaneamente il file nella directory definita da
upload_tmp_diroppure nella directory temporanea di sistema; - WordPress verifica il file e lo sposta nella destinazione definitiva.
Se PHP non dispone della directory temporanea, il processo si interrompe prima che WordPress possa gestire il file. Il codice PHP associato è il numero 6, UPLOAD_ERR_NO_TMP_DIR.
Cause più comuni
upload_tmp_dirindica una cartella inesistente;- la directory esiste ma non è scrivibile dal processo PHP;
- la directory di sistema non è consentita da
open_basedir; - spazio disco o inode dell’account/server sono esauriti;
- la configurazione è cambiata dopo una migrazione o un cambio di versione/gestore PHP;
- il sito usa una versione PHP diversa da quella controllata.
Controlli da eseguire
- Ripeti un upload piccolo. Verifica se l’errore riguarda ogni file o soltanto una funzione.
- Controlla spazio e inode. In cPanel consulta l’utilizzo delle risorse e dello spazio. Se il limite è raggiunto, elimina o sposta soltanto file identificati e non più necessari.
- Conferma la versione PHP. Apri Select PHP Version e verifica quella effettivamente usata dal dominio.
- Leggi il valore attivo. Controlla
upload_tmp_dirnelle informazioni PHP dell’applicazione o in una pagina diagnostica temporanea e protetta. - Controlla i log. Cerca messaggi su directory inesistente, permessi,
open_basedir, spazio o impossibilità di scrittura. - Rimuovi la diagnostica. Se hai creato una pagina con informazioni PHP, cancellala subito dopo il controllo.
La direttiva upload_tmp_dir è di tipo INI_SYSTEM: non può essere corretta in modo affidabile con ini_set() dentro WordPress. Sui server LiteSpeed/CloudLinux il punto di configurazione dipende dal gestore PHP, quindi non aggiungere percorsi casuali a .user.ini o .htaccess.
Perché WP_TEMP_DIR non basta
La costante WordPress WP_TEMP_DIR può indicare una directory temporanea usata da alcune operazioni di WordPress, per esempio download e aggiornamenti. Non sostituisce la directory nella quale PHP deve ricevere il file HTTP: quando compare UPLOAD_ERR_NO_TMP_DIR, PHP ha già fallito prima.
Se invece il messaggio è “Impossibile creare la directory” oppure “Impossibile spostare il file caricato”, controlla wp-content/uploads, percorso, proprietario e permessi: è un problema diverso.
Cosa non fare
- Non creare una cartella
/tmpnella document root e non renderla pubblica. - Non impostare permessi
777. - Non inserire
ini_set('upload_tmp_dir', ...)in un plugin: l’upload è già avvenuto quando il codice viene eseguito. - Non modificare contemporaneamente
upload_tmp_dir,open_basedire i permessi. - Non lasciare online file
phpinfo().
Quando contattare l’assistenza Xlogic
Questo errore richiede spesso un controllo lato server. Apri un ticket se spazio e inode sono disponibili ma PHP continua a segnalare la cartella temporanea mancante. Indica dominio, data e ora, versione PHP, tipo e dimensione del file, valore letto per upload_tmp_dir, messaggio completo e operazioni recenti come migrazione o cambio PHP. Non inviare password.
Guide Xlogic correlate
- WordPress: Missing a temporary folder
- upload_max_filesize exceeded
- WordPress non può creare la directory uploads
Domande frequenti
La cartella temporanea è wp-content/uploads?
No. PHP usa prima una directory temporanea per ricevere il file; WordPress lo sposta in uploads soltanto dopo. I due percorsi possono generare errori diversi.
Posso risolvere aggiungendo WP_TEMP_DIR a wp-config.php?
Non per l’errore PHP UPLOAD_ERR_NO_TMP_DIR. WP_TEMP_DIR riguarda operazioni temporanee di WordPress, mentre la ricezione dell’upload dipende da upload_tmp_dir o dalla directory di sistema.
Perché ini_set non cambia upload_tmp_dir?
upload_tmp_dir è una direttiva INI_SYSTEM e deve essere disponibile prima che PHP elabori lo script. Quando WordPress esegue ini_set, il caricamento è già iniziato o fallito.
Spazio disco esaurito può mostrare questo errore?
Sì, spazio o inode esauriti possono impedire la creazione del file temporaneo. Controllali in cPanel prima di modificare la configurazione PHP.
Fonti
- PHP Manual: codici di errore dell’upload
- PHP Manual: upload_tmp_dir e direttive principali
- cPanel Support: configurazione di upload_tmp_dir