dijo:JFolder::create: Infinite loop detected
Nos pusimos a investigar, y en la mayoría de foros hablan sobre la configuración de la ruta de las carpetas "tmp" y "logs". Parece ser que Joomla! quiere la ruta absoluta de estas dos carpetas y por lo visto, hay servidores que no dejan que Joomla! la lea automáticamente y por lo tanto hay que introducirla manualmente. Para ello hay una solución bastante fácil.
Creamos un documento php con un editor de textos (Dreamweaber, notepad++, ...) y pegamos el siguiente código:
dijo:<?php
echo getcwd();
?>
Después subimos este archivo a nuestro servidor y lo ejecutamos. Si le llamamos "test.php" sólo tenemos que poner "www.midominio.com/test.php". La información que nos da es la ruta absoluta de donde está alojada la web. Esta ruta irá en "Configuración global -> Sistema o Servidor -> Su casilla correspondiente". Mirad las imágenes:
El problema fue que esto a nosotros no nos solucionó el problema. Lo nuestro iba más lejos.
Si miramos en la "Ayuda -> Información del sistema -> Configuración del PHP" del BackEnd de Joomla!, en el parámetro "Directorio base de apertura (Open basedir)" nos salía este valor:
dijo:/var/www/vhosts/eldominiotuyo.com/httpdocs:/tmp
Un valor un tanto extraño, sobre todo porque en el archivo php.ini de nuestro servidor dicho parámetro no estaba ni activado.
Por lo visto, Plesk se salta ciertos parámetros del php.ini y los configura a su gusto. El "open_basedir" es uno de ellos y la mala configuración de este parámetro es el que nos está causando el famoso "JFolder::create: Infinite loop detected". Para solucionarlo hay que forzar a Plesk a que lea nuestra configuración.
Primero hay que crear la carpeta "conf" (si no existe ya) dentro de nuestro espacio web. La ruta absoluta sería esta: "/var/www/vhosts/midominio.com/conf". Si accedes vía FTP, como normalmente se accede a la raíz del sitio, la carpeta "conf" se crearía ahí mismo.
Luego hay que crear, si no existe ya, el archivo "vhost.conf" dentro de la carpeta "conf" con el siguiente código:
dijo:<Directory "/var/www/vhosts/midominio.com/httpdocs">
php_admin_value open_basedir "/var/www/vhosts/midominio.com/httpdocs:/tmp:/var/www/vhosts/midominio.com/directorio_includes
php_admin_value display_errors On
</Directory>
El anterior Script lo que hace es indicar a Plesk donde están los directorios donde hay archivos que se pretenden incluir desde PHP. El Script es recursivo, así que no hace falta incluir todos los directorios, solo con el primero nos vale.
Cabe decir que donde pone "midominio.com" pondremos el nuestro, y donde pone "directorio_includes" pondremos el directorio (o ruta de directorios) que nos interese, aunque generalmente será "httpdocs".
Luego podemos incluir otros parámetros como el "php_admin_value display_errors Off", "php_admin_value safe_mode Off",... Con esto podemos configurar los parámetros que nos interesen para cada dominio sin tener que modicar directamente el "php.ini". Las moficaciones en el "php.ini" afectarían a todos los dominios del servidor, de esta forma solo afecta al dominio en cuestión con lo que podemos crear configuraciones diferentes para cada dominio alojado en nuestro servidor.
Otro problema que me he encontrado es que vía FTP no podía acceder a la carpeta "conf". Eso es porque el propietario de dicha carpeta es "root" y yo me conecto al FTP con mi usuario. Eso se soluciona conectando como "root" o desde el panel del VPS cambiando el propietario de la carpeta, haciendo las modificaciones comentadas más arriba y luego, muy importante, volver a poner como propietario a "root".
Vale, una vez hecho todo eso tenemos que "avisar" a Plesk de los cambios. Para ello, nos tendremos que conectar via ssh a nuestro VPS. El Plesk nos facilita una consola, sino podéis utilizar el putty.
El comando a ejecutar es:
dijo:/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=midominio.com
Y luego hay que reiniciar el servidor apache con:
dijo:/etc/init.d/httpd restart
Y con esto, hemos solucionado el problema :-)
Nota: Esto hay que hacerlo para cada nuevo dominio que alojemos en el VPS (siempre que dichos dominios apunten a "Planes" diferentes dentro de nuestro VPS).
Fuente:
El cubo de Rubix: http://www.elcuboderubix.com/2011/03/solucion-al-jfoldercreate-infinite-loop.html
Documentación:
Desarrollo web: http://www.desarrolloweb.com/articulos/problema-open-basedir-en-servidores-con-plesk.html
Foro Parallels: http://forum.parallels.com/printthread.php?t=106241
Foro Joomla!: http://forum.joomla.org/viewtopic.php?f=470&t=266930
Joomla! Documentation: http://docs.joomla.org/How_to_solve_Installation_errors_Extension_Manager
No hay comentarios:
Publicar un comentario