Procédure
Servicio afectado : alojamiento web compartido LWS Panel
Panel afectado : LWS Panel
Nivel : intermedio
El error open_basedir restriction in effect aparece cuando un script PHP intenta acceder a un archivo o a una carpeta situada fuera del espacio autorizado en su alojamiento.
Puede producirse especialmente después de la migración de un sitio, a causa de una antigua ruta guardada en la configuración, de una extensión mal configurada o de un script personalizado.
Guarde una copia del archivo antes de modificarlo. También debe disponer del mensaje de error completo para identificar la ruta denegada y el archivo PHP que originó el problema.
El mensaje puede parecerse a este ejemplo :
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 varias informaciones útiles :
/home/ancien-hebergeur/public_html/config.php es el archivo al que el script intenta acceder;/var/www/exemple.com/htdocs/ corresponde al espacio en el que se pueden utilizar los archivos de su sitio;/var/www/exemple.com/htdocs/index.php es el script que intentó abrir el archivo;line 24 indica la línea afectada en ese script.En este ejemplo, el sitio sigue utilizando una ruta procedente de un antiguo alojamiento. PHP bloquea por tanto el acceso al archivo.
Si su sitio muestra únicamente una página en blanco o un error 500, consulte los registros del alojamiento :
open_basedir restriction in effect.Las líneas más recientes suelen encontrarse al final del registro.
En LWS Panel, los archivos públicos de un sitio suelen estar ubicados en un directorio de este tipo :
/var/www/votre-domaine.fr/htdocs/Sustituya votre-domaine.fr por el nombre de dominio afectado.
A continuación, compruebe, desde el gestor de archivos o por FTP, que el archivo buscado se encuentra bien en este directorio o en uno de sus subdirectorios.
La ruta incorrecta puede estar registrada :
Busque en primer lugar la parte característica de la antigua ruta, por ejemplo :
/home/ancien-hebergeur/No modifique al azar los archivos internos de WordPress, PrestaShop o de otra aplicación. Empiece por comprobar la configuración de la extensión o del módulo indicado en el mensaje de error.
Sustituya la antigua ruta por la ruta real del archivo en su alojamiento LWS.
Por ejemplo :
Ancien chemin :
/home/ancien-hebergeur/public_html/cache/
Nouveau chemin :
/var/www/votre-domaine.fr/htdocs/cache/En un script PHP personalizado, a menudo es preferible construir la ruta a partir de la carpeta del script en lugar de guardar la ruta completa del servidor.
Por ejemplo :
require __DIR__ . '/config.php';Esta escritura permite al script buscar config.php en su propia carpeta.
La directiva open_basedir no puede modificarse ni desactivarse desde un archivo .user.ini en LWS Panel.
Esta protección no debe eludirse. Debe corregir la ruta utilizada por el sitio, el script o la extensión.
Después de corregir la ruta, vacíe la caché desde la interfaz de su CMS o de su aplicación.
Una antigua ruta puede seguir guardada en un archivo de caché, incluso después de modificar la configuración.
Repita con precisión la acción que provocaba el error: abra la página afectada, envíe el formulario o relance la operación interrumpida.
Consulte después una vez más los registros PHP. No debe aparecer ninguna nueva línea open_basedir restriction in effect.
La corrección está terminada cuando la página o la funcionalidad afectada vuelve a funcionar y no aparece ningún nuevo error open_basedir en los registros PHP.
Solo veo un error 500 o una página en blanco
El mensaje completo probablemente está registrado en los registros PHP. Abra la herramienta Logs Apache / PHP desde LWS Panel y, a continuación, reproduzca el error antes de actualizar el registro.
La ruta indicada corresponde a mi antiguo alojamiento
No se actualizó una ruta absoluta durante la migración. Busque esa ruta en los archivos de configuración, en los parámetros de las extensiones y en los scripts personalizados.
Sustitúyala por la ruta actual de su sitio en LWS Panel.
No encuentro dónde está guardada la ruta
Mire el nombre del archivo PHP que aparece al final del mensaje de error. A menudo permite identificar la aplicación, el tema, la extensión o el script afectado.
Para una extensión, compruebe primero sus ajustes de caché, de importación, de copia de seguridad o de archivos temporales.
El archivo está en la carpeta htdocs, pero el error continúa
Compruebe que la ruta utilizada por el script corresponde exactamente a la ubicación real del archivo.
Un enlace simbólico también puede parecer que apunta a un archivo del sitio mientras dirige PHP hacia una ubicación exterior al espacio autorizado. En ese caso, sustituya el enlace por un acceso directo a un archivo situado en la carpeta del sitio.
El error vuelve después de la modificación
Vacíe la caché de su aplicación y, a continuación, reproduzca el problema. Compruebe también que la ruta no esté registrada en varios lugares.
Hágala al equipo de LWS y a la comunidad. La respuesta se publica tras la moderación.