jueves, 2 de diciembre de 2010

Instalar Joomla en Ubuntu Server

Joomla! es un sistema de gestión de contenidos o CMS (Content Management System), que permite crear sitios web y aplicaciones online. Aunque destaca por la facilidad de uso y el amplio número de extensiones, lo mejor de todo es que es de código abierto bajo una licencia GPL.

Para poder instalar Joomla necesitaremos tener previamente instalados un servidor web, una base de datos y el intérprete de PHP. Si no los tienes ya instalados, puedes seguir el tutorial instalar LAMP en Ubuntu Server paso a paso.

Uno de los objetivos principales de este tutorial es intentar instalar Joomla! de forma segura, es decir, nada de asignar permisos 777 ni a archivos ni directorios, no usaremos el usuario root de MySQL y cosas por el estilo. He realizado este tutorial sobre un Ubuntu Server 9.04 pero no hay nada específico para él, es decir, se hace igual en cualquier otra versión de Ubuntu sea Server o no.

Sin más, vamos al lío.

Los pasos para instalar Joomla sobre Ubuntu Server son los siguientes:

  1. Nos aseguramos de encontrarnos en nuestro home:

    cd

  2. Creamos un directorio para almacenar la estructura de Joomla:

    mkdir joomla

  3. Nos cambiamos al nuevo directorio:

    cd joomla

  4. Descargamos la última versión en español de Joomla (en el momento de escribir este tutorial es la 1.5.14):

    wget http://joomlacode.org/gf/download/frsrelease/10806/42944/Joomla_1.5.14-Spanish-pack_completo.tar.gz

  5. Descomprimimos el archivo descargado:

    tar xzvf Joomla_1.5.14-Spanish-pack_completo.tar.gz

  6. Borramos el archivo comprimido porque ya no lo volveremos a necesitar:

    rm -f Joomla_1.5.14-Spanish-pack_completo.tar.gz

  7. Nos cambiamos al directorio superior para poder mover correctamente, en el siguiente paso, el directorio joomla que era en el que nos encontrábamos:

    cd ..

  8. Movemos el directorio que contiene la estructura de Joomla a /var/www:

    sudo mv joomla /var/www

  9. Para hacer que nuestro servidor sea algo más seguro vamos a cambiar el propietario y el grupo de todos los archivos y directorios (de forma recursiva) de /var/www/joomla:

    sudo chown -R root:root /var/www/joomla

  10. Nos cambiamos al directorio /var/www/joomla:

    cd /var/www/joomla

  11. Creamos la variable LUGARES (no te preocupes, puedes escribir así en el Terminal, saldrá bien):

    LUGARES='
    administrator/backups
    administrator/components
    administrator/modules
    administrator/templates
    cache
    components
    images
    images/banners
    images/stories
    language
    plugins
    media
    modules
    templates
    '

  12. Para todos los directorios de la variable LUGARES cambiamos el usuario y grupo propietarios a www-data (el usuario de Apache):

    for i in $LUGARES; do
    sudo chown -R www-data:www-data $i
    done

  13. Cambiamos los permisos de los archivos para que todos los usuarios puedan leerlos pero sólo el propietario tenga permisos de escritura:

    sudo find . -type f -exec chmod 644 {} \;

  14. Cambiamos los permisos de los directorios para que todos los usuarios puedan leerlos y ejecutarlos pero sólo el propietario pueda escribir en ellos:

    sudo find . -type d -exec chmod 755 {} \;

  15. Creamos una base de datos para Joomla de nombre bdjoomla (pero puedes ponerle el nombre que quieras):

    mysqladmin -u root -p create bdjoomla

  16. Accedemos a MySQL con el usuario root y la contraseña que hubiésemos elegido cuando lo instalamos:

    mysql -u root -p

    y creamos un usuario de nombre joomlaadmin y contraseña nimdaalmooj (también puedes cambiar estos nombres):

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON bdjoomla.* TO 'joomlaadmin'@'localhost' IDENTIFIED BY 'nimdaalmooj';

  17. Activamos los permisos:

    FLUSH PRIVILEGES;

  18. Salimos de MySQL:

    quit

  19. Eliminamos el historial de MySQL porque la contraseña se lee a simple vista:

    rm -f ~/.mysql_history

  20. Por fin, ya estamos preparados para empezar la instalación. Así que, como en principio suponemos que estamos sobre un Ubuntu Server, nos vamos a otro equipo de la red que tenga interfaz gráfica y abrimos un navegador. En la dirección escribimos http://192.168.1.5/joomla (cambia 192.168.1.5 por la dirección IP de tu servidor).
  21. Entonces veremos un asistente para ayudarnos a instalar Joomla en el que lo primero que debemos hacer es elegir el idioma de la instalación. Y después hacemos clic en Siguiente.
    Seleccionamos el idioma

    Seleccionamos el idioma

  22. En el siguiente paso consiste en una comprobación previa a la instalación para que sepamos lo bien o mal que tenemos preparado el sistema. En principio, no hace falta que todos los parámetros estén en verde pero nosotros sí vamos a hacer todo lo necesario para que así sea. Por eso, nos fijamos que tenemos dos advertencias en rojo que vamos a solucionar.
    Comprobamos si los valores son los correctos

    Comprobamos si los valores son los correctos

  23. Para solucionar el primero de los problemas creamos el archivo /var/www/joomla/configuration.php, que es donde Joomla guardará los datos de configuración de nuestro sitio web:

    sudo touch /var/www/joomla/configuration.php

  24. Le cambiamos el propietario y el grupo para poder escribir en él:

    sudo chown www-data:www-data /var/www/joomla/configuration.php

  25. Y nos aseguramos que tenemos permiso de escritura asignándole de nuevo los permisos:

    sudo chmod 644 /var/www/joomla/configuration.php

  26. Pasamos a solucionar el segundo de los problemas detectados. Por eso editamos el archivo /etc/php5/apache2/php.ini con el comando:

    sudo nano /etc/php5/apache2/php.ini

    y cambiamos el valor de la directiva display_errors de On a Off:

    display_errors = Off

  27. Continuamos con la instalación haciendo clic sobre el botón Volver a comprobar (dependiendo del tiempo que haya pasado nos aparecerá un mensaje de error y deberemos comenzar de nuevo). Lo primero que hacemos es verificar que ahora todos los parámetros son correctos y están en verde:
    Comprobamos que los parámetros son corrrectos

    Comprobamos que los parámetros son correctos

  28. En el siguiente paso leemos la licencia y, una vez hayamos finalizado, hacemos clic sobre Siguiente.
    Leemos la licencia

    Leemos la licencia

  29. A continuación, debemos escribir los datos de configuración de MySQL. Utilizaremos el usuario joomlaadmin creado específicamente para administrar la base de datos bdjoomla.Y pulsamos Siguiente:
    Configuramos la base de datos

    Configuramos la base de datos

  30. Para no hacer más largo este tutorial no configuraremos el servidor FTP. Así que hacemos clic en Siguiente:
    No activamos el FTP

    No activamos el FTP

  31. En la configuración principal deberemos escribir tanto el nombre de nuestro sitio web como el correo electrónico del administrador y la contraseña para el usuario admin. El usuario admin lo crea Joomla por defecto y será con el que empecemos a administrar nuestro sitio. Además podemos instalar datos de ejemplo pulsando sobre el botón correspondiente:
    Escribimos los datos de configuración principales

    Escribimos los datos de configuración principales

  32. ¡Listo! Ya hemos terminado de instalar Joomla. Se nos indica que borremos el directorio installation porque si no lo hacemos no podremos usar Joomla y se nos recuerda que el nombre de usuario para entrar en la interfaz de administración es admin.
    Hemos terminado la instalación de Joomla

    Hemos terminado la instalación de Joomla!

  33. De nuevo en el servidor, una vez que hemos terminado la instalación debemos eliminar el directorio /var/www/joomla/instalation como se nos indicó en el paso anterior:

    sudo rm -R /var/www/joomla/installation/

  34. Y no debemos olvidarnos de modificar los permisos del archivo configuration.php para que sea de solo lectura para todo el mundo:

    sudo chmod 444 /var/www/joomla/configuration.php

  35. Ahora desde cualquier equipo de nuestra red abrimos un navegador y escribimos la dirección http://192.168.1.5/joomla para acceder a nuestro nuevo portal.
    Accedemos a nuestro sitio Joomla!

    Accedemos a nuestro sitio Joomla!

  36. Si lo que queremos es administrar nuestro Joomla, deberemos utilizar la siguiente dirección: http://192.168.1.5/joomla/administrator
    Control de acceso a la zona de administración de Joomla!

    Control de acceso a la zona de administración de Joomla!

  37. Y después de introducir nuestro nombre de usuario (admin) y la contraseña que escribimos, tendremos acceso a la nuestra interfaz de administración:
    Accedemos a la interfaz de adaministración de Joomla

    Accedemos a la interfaz de adaministración de Joomla

    Sin embargo, nos queda una última cosa por hacer, cambiar la ruta del directorio temporal. Para esto hacemos clic en el icono Configuración.

  38. En la pantalla de Configuración global, hacemos clic sobre Servidor y en la Ruta al directorio temporal escribimos /tmp. Después guardamos los cambios y listo.
    Cambiamos la ruta del directorio temporal

    Cambiamos la ruta del directorio temporal

A partir de aquí empieza una nueva aventura: administrar Joomla!

1 comentario:

Anónimo dijo...

Hola,

Me ha resultado muy útil, gracias. Sólo un comentario, al cambiar el configuration.php a solo lectura, da un error al cambiar el directorio temporal, así que el cambio de permisos debería ser el último paso.

Un saludo