Come risolvere l’errore di restrizione open_basedir

Quando crei un sito di staging con il plugin gratuito WP STAGING, PHP può interrompere il processo con un errore di restrizione open_basedir. Il messaggio indica che PHP è configurato per leggere e scrivere solo all’interno di un elenco fisso di directory e che la cartella in cui WP STAGING vuole creare la copia di staging non è presente in quell’elenco. La soluzione è aggiungere la tua directory WordPress alla riga open_basedir nel file php.ini (o nelle impostazioni PHP del tuo host) e riavviare PHP. Questa guida ti mostra come trovare il file che PHP carica davvero, modificarlo in sicurezza e cosa controllare se l’errore non scompare.

Nota: se provi a creare un sito di staging con WP Staging Pro e ricevi questo errore durante la creazione di un sito di staging predefinito, puoi usare le impostazioni avanzate per creare il sito di staging in una sottocartella di ‘wp-content’. Allora puoi smettere di leggere qui.

Come si presenta l’errore di restrizione open_basedir

open_basedir è un’impostazione di sicurezza di PHP che limita l’accesso ai file a un elenco approvato di directory. Quando uno script qualsiasi, incluso WP STAGING, cerca di accedere a un percorso esterno a quell’elenco, PHP rifiuta e registra un avviso. Nel log del tuo server o nel log di debug di WordPress si presenta di solito così:

Warning: open_basedir restriction in effect.
File(/var/www/html/staging) is not within the allowed path(s):
(/var/www/html/) in /var/www/html/... on line ...

Potresti arrivare a questa pagina anche a partire da un messaggio di WP STAGING che segnala di non essere riuscito a includere un file di bootstrap e indica open_basedir come possibile causa. Entrambi rimandano allo stesso problema di fondo: la directory di cui WP STAGING ha bisogno è esterna ai percorsi consentiti. Il percorso esatto del file indicato nel messaggio ti dice quale directory deve essere aggiunta all’elenco consentito.

Perché open_basedir blocca WP STAGING

La direttiva open_basedir è impostata nel file php.ini e limita l’accesso ai file di PHP alle directory che indichi. Per impostazione predefinita, WP STAGING crea il sito di staging in una sottocartella della root di WordPress. Se quella root, o la sottocartella in cui vuole scrivere, non è coperta da open_basedir, PHP blocca la scrittura e il sito di staging non può essere creato. Aggiungere la directory WordPress all’elenco consentito rimuove il blocco senza disattivare l’impostazione di sicurezza.

Come risolvere l’errore di restrizione open_basedir

Per risolvere l’errore di restrizione open_basedir e creare con successo un sito di staging con WP STAGING, segui questi passaggi in ordine.

Passo 1: trova il file php.ini che PHP carica davvero

Il file php.ini è il file di configurazione di PHP e la sua posizione varia a seconda dell’ambiente di hosting. Un server può avere più di un php.ini, quindi modificare quello sbagliato è il motivo più comune per cui una correzione sembra non avere effetto. Per trovare il file realmente in uso, crea un piccolo file chiamato phpinfo.php nella root di WordPress con questo contenuto, aprilo nel browser e leggi il valore di Loaded Configuration File:

<?php phpinfo(); ?>

Se hai accesso alla shell, php --ini stampa lo stesso percorso dalla riga di comando. Elimina il file phpinfo.php una volta ottenuto il percorso, perché espone dettagli del server. Se non riesci proprio a trovare o modificare php.ini, passa alla sezione sugli host senza accesso diretto a php.ini più avanti.

Passo 2: modifica la direttiva open_basedir

Una volta individuato il file php.ini, devi modificarlo per includere la directory in cui vuoi creare il tuo sito di staging. Apri il file php.ini in un editor di testo e trova la riga che inizia con open_basedir. Vorrai aggiungere il percorso completo della tua directory root WordPress (e delle sue sottocartelle) all’elenco esistente. Separa più percorsi con due punti : su Linux o un punto e virgola ; su Windows.

Ad esempio, se WordPress è installato in /var/www/html/wordpress e la riga di configurazione open_basedir nel php.ini attualmente recita:

ShellScript
open_basedir = "/var/www/html/"

Devi modificarla per includere la directory WordPress:

ShellScript
open_basedir = "/var/www/html/:/var/www/html/wordpress/"

Mantieni i percorsi che erano già presenti. Rimuovere un percorso esistente per fare spazio può compromettere altre parti del tuo sito che dipendono da esso.

Passo 3: riavvia il web server o PHP-FPM

Dopo aver salvato le modifiche al file php.ini, devi riavviare PHP affinché le modifiche abbiano effetto. Se il tuo sito esegue PHP tramite il modulo integrato di Apache, riavviare Apache è sufficiente. Se invece usa PHP-FPM (comune su Nginx e su molti host gestiti), devi riavviare anche il servizio PHP-FPM, non solo il web server, altrimenti la vecchia configurazione resta in memoria. Usa il pannello di controllo del tuo hosting o la documentazione del tuo host per il comando di riavvio esatto.

Passo 4: riprova a creare il tuo sito di staging

Una volta riavviato PHP, prova di nuovo a creare il tuo sito di staging con WP STAGING. L’errore di restrizione open_basedir dovrebbe ora essere risolto, permettendo al processo di creazione di procedere senza problemi. Per confermare che la nuova impostazione sia attiva, ricarica la pagina phpinfo() del Passo 1 e verifica che il valore open_basedir includa ora la tua directory WordPress.

Quando non puoi modificare php.ini direttamente

Sull’hosting condiviso e gestito spesso non hai accesso diretto a php.ini. In questo caso, cerca un pannello delle impostazioni PHP nel pannello di controllo del tuo hosting (ad esempio una schermata "MultiPHP INI Editor" o "Select PHP Version" in cPanel) e imposta lì open_basedir, oppure chiedi al tuo host di aggiungere il percorso di WordPress all’elenco consentito. Se preferisci non toccare affatto le impostazioni del server, WP STAGING può creare il sito di staging in una cartella già scrivibile, come spiega la nota all’inizio di questo articolo.

Se l’errore open_basedir continua a comparire

Se l’errore persiste dopo aver modificato php.ini e riavviato PHP, esamina queste cause comuni:

  • Hai modificato un php.ini che PHP non carica. Ricontrolla Loaded Configuration File del Passo 1 e modifica esattamente quel file.
  • Hai riavviato il web server ma non PHP-FPM. Riavvia anche il servizio PHP-FPM.
  • Il separatore di percorso è sbagliato. Usa i due punti su Linux e il punto e virgola su Windows, e non lasciare un separatore finale con una voce vuota.
  • Il tuo host applica open_basedir a livello centrale e ignora le tue modifiche. Contatta il supporto e chiedi di aggiungere il percorso.
  • Come scorciatoia, usa l’impostazione avanzata di WP STAGING per creare il sito di staging in una sottocartella di wp-content, che è già scrivibile.

Conclusione

La restrizione open_basedir è una funzionalità di sicurezza che, sebbene importante, può a volte interferire con operazioni legittime come la creazione di un ambiente di staging per il tuo sito WordPress. Modificando il file php.ini che PHP carica davvero, aggiungendo la tua directory WordPress all’elenco consentito e riavviando PHP, puoi eliminare l’errore senza indebolire la sicurezza del tuo server. Fai sempre un backup del file php.ini prima di apportare qualsiasi modifica e consulta il tuo provider di hosting se non sei sicuro di modificarlo da solo.

Articoli correlati

Updated on Luglio 28, 2026

Rene Hermenau

Autore: Rene Hermenau

Informazioni sull'autore: René Hermenau è il fondatore di WP STAGING. Si occupa di backup WordPress, staging, migrazioni, gestione dei database e flussi di deployment sicuri.