Avviso:file_exists() [function.file-exists]:restrizione open_basedir in vigore. Il file(/home/user_name/public_html/wp-content/uploads/2006/12/picture.jpg) non è all'interno dei percorsi consentiti:(/home/user_name:/usr/lib/php:/usr/local /lib/php:/tmp) in /home/user_name/public_html/wp-admin/inline-uploading.php alla riga 226
Il messaggio di errore sopra viene visualizzato su un registro degli errori del server Web Apache httpd (error_log) che ospita un blog WordPress. Tuttavia, il problema potrebbe verificarsi in tutti i sistemi o siti Web che utilizzano PHP come linguaggio di scripting.
La soluzione o la soluzione al problema della restrizione open_basedir è disabilitare del tutto la protezione PHP open_basedir o escludere la protezione per determinati account utente privilegiati o consentire l'accesso alla directory aggiuntiva per gli script PHP.
Se stai utilizzando cPanel WebHost Manager (WHM), puoi facilmente disabilitare la protezione PHP open_basedir o escludere determinati utenti dalla protezione con WHM. Basta andare su "Modifica sicurezza" nella sezione "Sicurezza", quindi selezionare il collegamento "Configura" per "Php open_basedir Tweak". Al suo interno, puoi abilitare o disabilitare php open_basedir Protection, oppure escludere e includere host dalla protezione.
Se stai utilizzando il pannello di controllo dell'hosting Plesk, potresti dover modificare manualmente il file di configurazione Apache di vhost.conf e vhost_ssl.conf e aggiungere o modificare le seguenti righe php_admin_value open_basedir alle seguenti:
<Directory /full/path/to/the/directory/httpdocs> php_admin_value open_basedir none </Directory> <Directory /full/path/to/the/directory/httpdocs> php_admin_value open_basedir /full/path/to/dir:/full/path/to/directory/httpdocs:/tmp </Directory>
Nota:per gli host SSL nel file vhost_ssl.conf, il percorso della directory terminerà con "httpsdocs" anziché "httpdocs".
I percorsi (sopra è solo un esempio e da sostituire con il percorso reale) che dietro open_basedir sono le directory che hanno specificamente consentito l'accesso agli script PHP nell'account del dominio vhost, quindi puoi aggiungere più directory a cui i file sono stati archiviati e necessari da aprire con PHP, ciascuno separato da un colore “:”. Ma fai attenzione perché potrebbe esporre il tuo sistema a frodi alla sicurezza.
Una volta terminato, esegui il comando seguente per rendere effettive le modifiche, quindi riavvia il server Web Apache httpd (apache2ctl restart o httpd restart):
$PRODUCT_ROOT_D/admin/sbin/websrvmng -v -a
Se devi modificare manualmente il file di configurazione di Apache per disabilitare la protezione open_basedir di PHP, apri semplicemente il file httpd.conf e cerca le righe che iniziano con i seguenti caratteri:
php_admin_value open_basedir …..
Sostituisci l'intera riga sotto l'host virtuale per l'account utente di dominio di cui desideri disabilitare la protezione con la seguente riga per disabilitarla:
php_admin_value open_basedir none
Puoi anche scegliere di consentire ai tuoi script PHP di accedere a directory aggiuntive senza disabilitare la protezione. È possibile aggiungere ulteriori directory alla riga, separate da un colore “:”. Ad esempio, per aggiungere /nuova_directory all'elenco di autorizzazioni:
php_admin_value open_basedir "/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp"
php_admin_value open_basedir "/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp:/new_directory"
Riavvia l'Apache al termine della modifica. Si noti che la limitazione dell'elenco delle directory consentite sopra è in realtà un prefisso, non un nome di directory. Ciò significa che "open_basedir =/dir/incl" consente anche l'accesso a "/dir/include" e "/dir/incls" se esistono. Quando vuoi limitare l'accesso solo alla directory specificata, termina con una barra. Ad esempio:"open_basedir =/dir/incl/".