Corregir el error PHP "open_basedir restriction in effect" en LWS Panel

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.

Antes de empezar

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.

Comprender el mensaje de error

El mensaje puede parecerse a este ejemplo :

Código
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 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.

Localizar el error en los registros PHP

Si su sitio muestra únicamente una página en blanco o un error 500, consulte los registros del alojamiento :

  1. Abra la herramienta Logs Apache / PHP.
  2. Repita la acción que provoca el problema en su sitio.
  3. Actualice los registros y busque la línea que contenga open_basedir restriction in effect.
  4. Anote la ruta denegada y el archivo PHP indicado al final del mensaje.

Las líneas más recientes suelen encontrarse al final del registro.

Corregir la ruta utilizada por el sitio

1. Verifique la ubicación real del archivo

En LWS Panel, los archivos públicos de un sitio suelen estar ubicados en un directorio de este tipo :

Código
/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.

2. Localice la antigua ruta

La ruta incorrecta puede estar registrada :

  • en un archivo de configuración ;
  • en un script PHP personalizado ;
  • en los parámetros de una extensión o de un tema ;
  • en la configuración de una carpeta de caché, de importación, de copia de seguridad o de archivos temporales ;
  • en datos conservados después de una migración.

Busque en primer lugar la parte característica de la antigua ruta, por ejemplo :

Código
/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.

3. Sustituya la ruta incorrecta

Sustituya la antigua ruta por la ruta real del archivo en su alojamiento LWS.

Por ejemplo :

Código
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 :

Código
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.

4. Vacíe la caché de la aplicació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.

Verificar que todo funciona

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.

Problemas frecuentes

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.

help.lws.net/a/765
¿Le ha resultado útil este artículo?

Sí

No

Leído 19 675 veces

¡Gracias! No dude en hacer preguntas sobre nuestra documentación si desea más información y ayudarnos a mejorarla.

Artículos similares

¿Tiene una pregunta sobre este artículo?

Hágala al equipo de LWS y a la comunidad. La respuesta se publica tras la moderación.

Formule una pregunta al equipo de LWS y a su comunidad

RGPD: Responsable: LWS-Ligne Web Services. Finalidad: moderación y publicación pública de su pregunta, posible aviso de una respuesta. Base jurídica: consentimiento (art. 6.1.a RGPD). Conservación de los correos: 90 días tras el aviso, 12 meses como máximo sin respuesta. Para ejercer sus derechos, consulte la sección RGPD de nuestras condiciones generales.