Messaggio “Warning: is_readable(): open_basedir restriction in effect. File(/db/renamedclasses.php) is not within the allowed path(s)” aggiornando Moodle

Moodle, si sa, è uno strumento molto potente per sviluppare un sito di e-learning. Il suo aggiornamento, a differenza dei cms più comuni, non è così semplice e a volte può generare messaggi di errore come quello riportato nel titolo di questo articolo. Che fare?

Innanzitutto, se hai a disposizione un backup del sito effettuato prima dell’aggiornamento, puoi evitare di preoccuparti ed imprecare 🙂 Poi, se l’hosting provider ce lo permette, possiamo controllare il log errori di Apache ed è possibile che troveremo un messaggio come questo:

AH01071: Got error ‘PHP message: PHP Warning: is_readable(): open_basedir restriction in effect. File(/db/renamedclasses.php) is not within the allowed path(s): (/var/www/vhosts/dominio.ext/:/tmp/:/var/lib/php/session/:/dev/urandom) in /var/www/vhosts/dominio.ext/httpdocs/lib/classes/component.php on line 1206

Il messaggio sopra riportato indica che /db/renamedclasses.php non è all’interno dei percorsi consentiti ma, con pochi passaggi, potrai ovviare a questo evento. Come? Per fare questo dovrai:

  • Collegarti via SFTP al tuo dominio
  • Raggiungere la directory di pubblicazione del sito (httpdocs, htdocs, public_html)
  • Scendere nella directory “lib” e poi in “classes”
  • Apri il file component.php alla riga 1205 (il numero potrebbe cambiare in futuro)

A questo punto bisogna effettuare la modifica. La riga contiene:

$file = $fulldir . ‘db/renamedclasses.php’;

e bisogna sostituirla con:


$file = $fulldir . ‘../db/renamedclasses.php’;

Salvando il file, Moodle non andrà a cercare nella directory bloccata per sicurezza ma userà un puntamento relativo e raggiungerà il file renamedclasses.php.