Error open_basedir restriction in effect

Tweet about this on TwitterShare on Google+Share on FacebookEmail this to someonePrint this page

Si instalas un plugin de WordPress (o cualquier script PHP) y durante su uso obtienes un error de este tipo:

Warning: main(): open_basedir restriction in effect. File(/ruta/completa/al/archivo/archivo.xyz) is not within the allowed path(s): (/ruta/completa/a/tmp) in /ruta/completa/al/plugin/archivoplugin.php on line 32

Se debe a un parámetro de configuración del servidor llamado open_basedir. Este parámetro, que se puede configurar en el archivo httpd.conf del servidor, tiene como objetivo limitar los archivos que el interprete de PHP para nuesto usuario está autorizado a abrir a los que estén dentro de un árbol de directorios concreto (y a las distintas rutas fuera del árbol que se autoricen).

Normalmente este parámetro se usa en servicios de hosting compartido como medida de precaución para que un usuario no pueda acceder mediante PHP a los archivos de otro. Por lo que teóricamente no debería molestarnos para hacer uso de nuestros propios archivos… pero en ocasiones un plugin (o nuestro propio código), puede necesitar acceso a determinados recursos compartidos que están fuera de nuestra ruta de usuario.

Soluciones para este error:

  1. La ideal para olvidarnos de ese problema es pedir a nuestro proveedor de hosting que desactive el parámetro open_basedir para nuestro dominio, ya que afortunadamente es un parámetro que puede fijarse individualmente para cada dominio. Por lo que el estar usando un hosting en una máquina compartida no tiene que ser un incoveniente para modificar el parámetro.
  2. Si nuestro proveedor no accede a lo primero por cualquier motivo. Pedir que se incluya la ruta que provoca el error (la primera que aparece en el mensaje) en las rutas a las que tiene acceso nuestro usuario mediante PHP.
  3. Si nuestro proveedor no nos quiere hacer nada de lo anterior, sólo nos queda revisar la programación PHP del archivo en cuestión para ver si podemos reescribirlo para hacer lo mismo de otra manera que no necesite acceso a esa ruta. Pero claro, para esto probablemente necesitemos ser programadores experimentados.

Así que, la verdad, si un proveedor de hosting al cual estamos pagando se niega al punto 1 y al 2, quizás sería hora de plantearse cambiar de hosting a uno donde nos den algo más de manga ancha aunque contratemos un alojamiento compartido, o que directamente tenga una configuración de la máquina más acorde al uso actual de PHP.

Si queréis más información sobre este tema, hay un artículo muy interesante sobre este error en My Digital Life.

Deja un comentario

Tu dirección de email no será publicada. Campos obligatorios marcados con *