Risolvere l’errore Failed to Open Stream di WordPress

In breve: L’errore «failed to open stream» significa che PHP non è riuscito a leggere o aprire un file che si aspettava di trovare. Le cause più comuni sono permessi dei file errati, un file mancante o eliminato, una restrizione open_basedir sul tuo host o un percorso assoluto codificato in modo fisso rimasto da una migrazione del sito. Usa la tabella decisionale qui sotto per saltare direttamente alla soluzione per il tuo messaggio di errore esatto.

L’errore WordPress «Failed to Open Stream» compare quando PHP non riesce ad aprire un file che il tuo sito si aspetta di trovare. Si manifesta come un avviso PHP nel tuo log degli errori e può impedire il corretto caricamento di pagine, plugin o temi.

Comprendere l’errore «WordPress Failed To Open Stream»

Quando WordPress o un plugin chiama fopen(), include() o require() di PHP su un percorso di file, PHP restituisce questo errore se non riesce a completare l’operazione. In WordPress 6.7 e versioni successive, l’errore è di solito accompagnato da uno stack trace in wp-content/debug.log quando WP_DEBUG_LOG è attivato.

La formulazione esatta dell’errore varia a seconda della causa, e il suffisso ti dice esattamente cosa è andato storto:

  • failed to open stream: No such file or directory — il file non esiste a quel percorso.
  • failed to open stream: Permission denied — il file esiste, ma PHP non ha l’accesso in lettura.
  • failed to open stream: Operation not permitted — una restrizione open_basedir a livello di server sta bloccando l’accesso.

Cosa causa l’errore Failed To Open Stream in WordPress?

Usa questa tabella per associare il tuo suffisso di errore esatto alla soluzione giusta:

Suffisso di errore Causa radice Salta a
No such file or directory File mancante o eliminato; percorso assoluto codificato dal vecchio server Metodo 4 o Metodo 6
Permission denied Permessi di file o directory troppo restrittivi Metodo 1
Operation not permitted Restrizione open_basedir sul tuo host Metodo 5
Nessun suffisso chiaro / generico Conflitto di plugin o tema Metodo 2 o Metodo 3

Cause radice comuni:

  • Permessi dei file errati: I file dovrebbero essere 644 e le directory 755. Impostazioni più restrittive impediscono a PHP di leggere i file di cui ha bisogno.
  • Conflitti di plugin o temi: Un plugin o tema che fa riferimento a un percorso che non esiste più, o due plugin che chiamano lo stesso file in modi incompatibili.
  • File mancanti o danneggiati: File eliminati durante un aggiornamento o rovinati da un caricamento parziale.
  • Restrizioni open_basedir: Alcuni host limitano a quali directory PHP può accedere. Qualsiasi chiamata fopen() o include() al di fuori del percorso consentito fallisce immediatamente.
  • Discrepanza di percorso assoluto dopo la migrazione: Se il tuo sito è stato migrato su un nuovo server, i vecchi percorsi assoluti memorizzati nel database (per esempio, un’opzione di un plugin che contiene /var/www/old-host/wp-content/...) fanno fallire sul nuovo server ogni require() che punta a essi.

6 soluzioni efficaci per superare l’errore

Nell’assistenza WP STAGING, il trigger più comune che vediamo sono permessi dei file errati o un plugin che mantiene un percorso di file obsoleto dopo una migrazione. Inizia con il metodo che corrisponde al tuo suffisso di errore qui sopra e procedi da lì.

Metodo 1: Controllare i permessi dei file

I file nella tua installazione WordPress dovrebbero essere 644 e le directory 755. Puoi verificare e regolare i permessi usando un client FTP o il Gestore file del tuo host. In WordPress 6.7+, puoi anche usare la schermata Salute del sito (Strumenti → Salute del sito → Info → Permessi del file system) per individuare directory con modalità inattese.

Directory di destinazione di FileZilla
Directory di destinazione di FileZilla

Metodo 2: Disabilitare i plugin

Quando incontri problemi con plugin specifici, disattivali uno alla volta per isolare il conflitto. Disattivare i plugin ti consente di identificare quello problematico senza compromettere il resto del tuo sito.

Ecco come puoi disabilitare i plugin:

Disabilitare il plugin

Metodo 3: Passare al tema predefinito

Passa a un tema WordPress predefinito (come Twenty Twenty-Five) per escludere un errore di percorso specifico del tema. Se l’errore scompare dopo il passaggio, il tuo tema attivo è l’origine del problema.

Ecco come fare:

Metodo 4: Reinstallare i file core di WordPress

Se la causa sono file core mancanti o danneggiati, reinstallare il core di WordPress li sostituisce in modo pulito. Esegui prima un backup del tuo sito, poi segui i passaggi qui sotto.

Ricorda: Prima di procedere con qualsiasi modifica, è fondamentale creare un backup completo del tuo sito web WordPress. Questo backup garantisce di avere una copia di tutti i tuoi file e database, offrendo una rete di sicurezza nel caso qualcosa vada storto durante il processo di reinstallazione.

Preparativi essenziali per reinstallare i file core di WordPress

Segui questi passaggi dettagliati per reinstallare i file core di WordPress e riprendere il controllo del tuo sito web:

Passaggio 1: Scaricare l’ultima versione di WordPress

Visita il sito ufficiale di WordPress (https://wordpress.org) e scarica l’ultima versione di WordPress. Salva il pacchetto di installazione sul tuo computer locale.

Passaggio 2: Estrarre il pacchetto di installazione di WordPress

Una volta completato il download, estrai il contenuto del pacchetto di installazione di WordPress sul tuo computer usando uno strumento di archiviazione come WinRAR o 7-Zip. Avrai ora una cartella contenente i file estratti.

Passaggio 3: Connettersi al tuo sito web via FTP

Per procedere con la reinstallazione, devi connetterti al server del tuo sito web usando l’FTP (File Transfer Protocol). Puoi usare un client FTP come FileZilla per stabilire la connessione. Se non hai a portata di mano le tue credenziali di accesso FTP, recuperale dal tuo provider di hosting.

FileZilla
Passaggio 4: Eliminare i file WordPress esistenti

Nella vista del server remoto del tuo client FTP, vai alla directory radice della tua installazione WordPress. Elimina tutti i file e le cartelle eccetto la cartella «wp-content» e il file «wp-config.php». Questo passaggio garantisce un punto di partenza pulito per il processo di reinstallazione.

Passaggio 5: Caricare i nuovi file WordPress

Nella vista locale del tuo client FTP, vai ai file WordPress estratti dal Passaggio 2. Seleziona tutti i file e le cartelle all’interno della cartella estratta e caricali nella directory radice della tua installazione WordPress sul server. Questo processo può richiedere un po’ di tempo, a seconda della velocità della tua connessione internet.

Passaggio 6: Eseguire lo script di installazione di WordPress

Una volta completato il trasferimento dei file, apri un browser web e visita il tuo sito web WordPress. Ti verrà mostrato lo script di installazione di WordPress. Segui le istruzioni per configurare le impostazioni del database, creare un account amministratore e completare il processo di installazione.

Passaggio 7: Verificare e testare

Dopo l’installazione, accedi alla tua bacheca di WordPress e verifica che tutti i contenuti, i temi e i plugin del tuo sito web siano intatti. Testa varie funzionalità per assicurarti che tutto funzioni senza intoppi.

Metodo 5: Risolvere le restrizioni open_basedir

Alcuni host web limitano a quali directory del file system PHP può accedere usando la direttiva open_basedir. Quando un plugin o il core di WordPress tenta di aprire un file al di fuori del percorso consentito, PHP solleva failed to open stream: Operation not permitted, a prescindere dal fatto che i permessi del file siano corretti.

Come risolverlo:

  1. Contatta il tuo host e chiedigli di ampliare l’impostazione open_basedir per includere il percorso che PHP sta cercando di raggiungere. Fornisci il percorso esatto dal tuo log degli errori.
  2. Sposta il file in un percorso che open_basedir consente già — per esempio, sposta gli script personalizzati in wp-content/ invece che in una directory al di sopra della root web.
  3. Se gestisci il tuo server, modifica la direttiva open_basedir in php.ini o nella tua configurazione per-vhost e riavvia PHP-FPM.

Metodo 6: Correggere le discrepanze di percorso assoluto dopo la migrazione del sito

Se hai migrato di recente il tuo sito WordPress su un nuovo server o provider di hosting, i vecchi percorsi assoluti memorizzati nel database possono causare questo errore. Un plugin potrebbe aver salvato il proprio percorso di file al momento dell’installazione — per esempio, /var/www/old-host/wp-content/... — e ogni require() o fopen() che punta a quel percorso fallisce sul nuovo server perché la directory lì non esiste più.

Come risolverlo:

  1. Attiva il logging di debug: aggiungi define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); a wp-config.php. Leggi wp-content/debug.log per trovare il percorso obsoleto esatto che PHP sta cercando di aprire.
  2. Usa uno strumento di cerca-e-sostituisci per aggiornare il percorso memorizzato in tutto il tuo database. Con WP-CLI (disponibile sulla maggior parte degli host gestiti) puoi eseguire: wp search-replace '/old/absolute/path' '/new/absolute/path' --all-tables. Eseguilo prima su una copia di staging.
  3. Svuota qualsiasi cache a oggetti dopo la sostituzione affinché i valori in cache contenenti il vecchio percorso vengano cancellati.

Cosa fare se nessuna delle soluzioni funziona

Se hai provato tutti e sei i metodi e l’errore persiste, lavora su questa lista di controllo:

  1. Leggi la riga di errore completa in debug.log — il percorso che PHP ha tentato di aprire ti dice quale metodo riprovare. Un percorso all’interno di wp-content/plugins/ punta al Metodo 2; un percorso che punta a una directory inesistente punta al Metodo 6.
  2. Disattiva tutti i plugin in una volta — non solo uno alla volta. Se l’errore si ferma, riattivali a coppie per restringere il conflitto più rapidamente.
  3. Passa a un tema predefinito — se non l’hai già fatto, passa a Twenty Twenty-Five per eliminare il tema come origine.
  4. Chiedi al tuo host — fornisci la riga di errore esatta da debug.log. Gli host possono confermare se la causa è una policy open_basedir o una modifica dei permessi lato server.
  5. Ripristina da un backup — se l’errore è iniziato dopo un aggiornamento o una modifica di configurazione, usa il flusso di ripristino di WP STAGING per tornare all’ultimo stato funzionante mentre indaghi sulla causa radice.

Conclusione

Per risolvere il «WordPress Failed to Open Stream Error», individua il suffisso di errore in wp-content/debug.log, poi applica la soluzione corrispondente: controlla i permessi dei file (Metodo 1), disabilita i plugin in conflitto (Metodo 2), cambia tema (Metodo 3), reinstalla i file core (Metodo 4), risolvi le restrizioni open_basedir (Metodo 5) o correggi le discrepanze di percorso assoluto dopo la migrazione (Metodo 6). Crea sempre un backup prima di apportare modifiche. PROVA WP STAGING GRATIS

Articoli correlati