17 de julio de 2014

Solución al error "JFolder::create: Detectado bucle infinito" al intentar instalar extensiones en Joomla!

Existe un error bastante común en Joomla! cuando intentamos instalar alguna extensión que nos da, más o menos, el siguiente mensaje (extraído de la versión de Joomla! 3.2):
Advertencia
JFolder::create: Detectado bucle infinito
Advertencia: ¡Fallo al mover el archivo!
JFolder: :files: La ruta no es una carpeta. Ruta: /.../
JFolder: :folder: La ruta no es una carpeta. Ruta:
/.../
JFolder: :files: La ruta no es una carpeta. Ruta:
/.../
JInstaller: :Instalar: No se ha podido encontrar el archivo XML de configuración de Joomla!
Error
Archive does not exist
Al fin y al cabo lo que nos viene a indicar este mensaje es que no se encuentran algunas rutas, por lo que suele aparecer cuando cambiamos nuestro Joomla! de local a remoto, cambiamos de dominio o situaciones similares en las que tendremos que actualizar la configuración de nuestro motor.

Para solucionarlo, nos descargamos y abrimos nuestro archivo "configuration.php" de la raíz de la instalación de nuestro dominio. En este documento buscamos las líneas:
public $log_path = '/user/midominio.com/joomla3/logs';
public $tmp_path = '/user/midominio.com/joomla3/tmp'

Y modificamos y actualizamos las rutas en consonancia con nuestro nuevo dominio. Por ejemplo, si lo que he hecho es cambiar de midominio.com a miotrodominio.com, las nuevas líneas deberían ser:
public $log_path = '/user/miotrodominio.com/joomla3/logs';
public $tmp_path = '/user/miotrodominio.com/joomla3/tmp'
Guardamos y sobrescribimos el archivo. Al intentar de nuevo instalar una extensión, el sistema ya encuentra las carpetas "logs" y "tmp" y se puede completar con total normalidad.

En definitiva, un error que suele ser simplemente producto de un despiste, aunque habría que mencionar que en algunas ocasiones pueden darse errores similares en nuevas instalaciones donde no se tienen asignadas correctamente los permisos en las carpetas del servidor. En ese caso se deberían cambiar los permisos a 755 para carpetas y 644 para archivos.

2 comentarios:

  1. Yo lo tengo configurado así y no puedo descargarme extensiones en el servidor remoto :(

    ResponderEliminar
  2. public $log_path = '/var/www/vhosts/4/167713/webspace/httpdocs/midominio.com/logs';
    public $tmp_path = '/var/www/vhosts/4/167713/webspace/httpdocs/midominio.com/tmp';

    ResponderEliminar