Correggere l’errore PHP "open_basedir restriction in effect" su LWS Panel

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.

Prima di iniziare

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.

Comprendere il messaggio di errore

Il messaggio può assomigliare a questo esempio :

Codice
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 24

Contiene 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.

Trovare l’errore nei log PHP

Se il vostro sito mostra solo una pagina bianca o un errore 500, consultate i log dell’hosting :

  1. Aprite lo strumento Log Apache / PHP.
  2. Riproducete l’azione che provoca il problema sul vostro sito.
  3. Aggiornate i log e cercate la riga contenente open_basedir restriction in effect.
  4. Annotate il percorso rifiutato e il file PHP indicato alla fine del messaggio.

Le righe più recenti si trovano generalmente alla fine del log.

Correggere il percorso utilizzato dal sito

1. Verificate la posizione reale del file

Su LWS Panel, i file pubblici di un sito sono generalmente collocati in una cartella di questo tipo :

Codice
/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.

2. Recuperate il vecchio percorso

Il percorso errato può essere registrato :

  • in un file di configurazione ;
  • in uno script PHP personalizzato ;
  • nei parametri di un’estensione o di un tema ;
  • nella configurazione di una cartella di cache, di importazione, di backup o di file temporanei ;
  • in dati conservati dopo una migrazione.

Cercate in primo luogo la parte caratteristica del vecchio percorso, per esempio :

Codice
/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.

3. Sostituite il percorso errato

Sostituite il vecchio percorso con il percorso reale del file sul vostro hosting LWS.

Ad esempio :

Codice
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 :

Codice
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.

4. Svuotate la cache dell’applicazione

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.

Verificare che tutto funzioni

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.

Problemi frequenti

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.

help.lws.net/a/765
Questo articolo ti è stato utile?

Sì

No

Letto 19 675 volte

Grazie! Non esitare a porre domande sulla nostra documentazione se desideri maggiori informazioni e aiutarci a migliorarla.

Articoli simili

Una domanda su questo articolo?

Ponila al team LWS e alla community. La risposta viene pubblicata dopo la moderazione.

Fate una domanda al team LWS e alla sua comunità

GDPR: Titolare: LWS-Ligne Web Services. Finalità: moderazione e pubblicazione della tua domanda, eventuale notifica di una risposta. Base giuridica: consenso (art. 6.1.a GDPR). Conservazione delle e-mail: 90 giorni dopo la notifica, massimo 12 mesi senza risposta. Per esercitare i tuoi diritti, consulta la sezione GDPR delle nostre condizioni generali.