Procédure
Servizio interessato : hosting web condiviso LWS Panel
Pannello interessato : LWS Panel
Livello : intermedio
L’errore open_basedir restriction in effect appare quando uno script PHP tenta di accedere a un file o a una cartella situati al di fuori dello spazio autorizzato sul vostro hosting.
Può verificarsi in particolare dopo la migrazione di un sito, a causa di un vecchio percorso salvato nella configurazione, di un’estensione configurata in modo errato o di uno script personalizzato.
Conservate una copia del file prima di modificarlo. Dovete inoltre disporre del messaggio di errore completo per identificare il percorso rifiutato e il file PHP all’origine del problema.
Il messaggio può assomigliare a questo esempio :
Warning: include(): open_basedir restriction in effect.
File(/home/ancien-hebergeur/public_html/config.php)
is not within the allowed path(s):
(/var/www/exemple.com/htdocs/:/tmp/)
in /var/www/exemple.com/htdocs/index.php on line 24Contiene diverse informazioni utili :
/home/ancien-hebergeur/public_html/config.php è il file a cui lo script tenta di accedere ;/var/www/exemple.com/htdocs/ corrisponde allo spazio in cui i file del vostro sito possono essere utilizzati ;/var/www/exemple.com/htdocs/index.php è lo script che ha tentato di aprire il file ;line 24 indica la riga interessata in questo script.In questo esempio, il sito utilizza ancora un percorso proveniente da un vecchio hosting. PHP blocca quindi l’accesso al file.
Se il vostro sito mostra solo una pagina bianca o un errore 500, consultate i log dell’hosting :
open_basedir restriction in effect.Le righe più recenti si trovano generalmente alla fine del log.
Su LWS Panel, i file pubblici di un sito sono generalmente collocati in una cartella di questo tipo :
/var/www/votre-domaine.fr/htdocs/Sostituite votre-domaine.fr con il nome di dominio interessato.
Verificate quindi, dal gestore file o via FTP, che il file cercato si trovi effettivamente in questa cartella o in una delle sue sottocartelle.
Il percorso errato può essere registrato :
Cercate in primo luogo la parte caratteristica del vecchio percorso, per esempio :
/home/ancien-hebergeur/Non modificate a caso i file interni di WordPress, PrestaShop o di un’altra applicazione. Iniziate verificando la configurazione dell’estensione o del modulo indicato nel messaggio di errore.
Sostituite il vecchio percorso con il percorso reale del file sul vostro hosting LWS.
Ad esempio :
Vecchio percorso :
/home/ancien-hebergeur/public_html/cache/
Nuovo percorso :
/var/www/votre-domaine.fr/htdocs/cache/In uno script PHP personalizzato, è spesso preferibile costruire il percorso a partire dalla cartella dello script piuttosto che salvare il percorso completo del server.
Ad esempio :
require __DIR__ . '/config.php';Questa sintassi consente allo script di cercare config.php nella propria cartella.
La direttiva open_basedir non può essere modificata o disattivata da un file .user.ini su LWS Panel.
Questa protezione non deve essere aggirata. Dovete correggere il percorso utilizzato dal sito, dallo script o dall’estensione.
Dopo aver corretto il percorso, svuotate la cache dall’interfaccia del vostro CMS o della vostra applicazione.
Un vecchio percorso può rimanere registrato in un file di cache, anche dopo la modifica della configurazione.
Riproducete con precisione l’azione che provocava l’errore : aprite la pagina interessata, inviate il modulo o riavviate l’operazione interrotta.
Consultate poi nuovamente i log PHP. Non deve comparire alcuna nuova riga open_basedir restriction in effect.
La correzione è terminata quando la pagina o la funzionalità interessata funziona di nuovo e non appare alcun nuovo errore open_basedir nei log PHP.
Vedo solo un errore 500 o una pagina bianca
Il messaggio completo è probabilmente registrato nei log PHP. Aprite lo strumento Log Apache / PHP dal LWS Panel, quindi riproducete l’errore prima di aggiornare il log.
Il percorso indicato corrisponde al mio vecchio hosting
Un percorso assoluto non è stato aggiornato durante la migrazione. Cercate questo percorso nei file di configurazione, nei parametri delle estensioni e negli script personalizzati.
Sostituitelo con il percorso attuale del vostro sito su LWS Panel.
Non trovo dove è registrato il percorso
Guardate il nome del file PHP mostrato alla fine del messaggio di errore. Spesso permette di identificare l’applicazione, il tema, l’estensione o lo script interessato.
Per un’estensione, verificate prima le sue impostazioni di cache, di importazione, di backup o di file temporanei.
Il file si trova nella cartella htdocs, ma l’errore continua
Verificate che il percorso utilizzato dallo script corrisponda esattamente alla posizione reale del file.
Un link simbolico può anche sembrare puntare a un file del sito pur indirizzando PHP verso una posizione esterna allo spazio autorizzato. In questo caso, sostituite il link con un accesso diretto a un file situato nella cartella del sito.
L’errore ritorna dopo la modifica
Svuotate la cache della vostra applicazione, poi riproducete il problema. Verificate inoltre che il percorso non sia registrato in più punti.
Ponila al team LWS e alla community. La risposta viene pubblicata dopo la moderazione.