Instalación, administración y migración de un portal web: JOOMLA
Miguel Rodríguez Martín – Marzo 2009
1. PREPARANDO EL ENTORNO WEB Apache 2, PHP 5 y MySQL 5
Marzo 2009 Miguel Rodríguez Martín
1 de 68
Miguel Rodríguez Martín – Marzo 2009 1. Instalación del entorno web Para trabajar en un entorno web es necesario instalar: •
Un servidor web: Apache 2
•
Un lenguaje de programación web: PHP 5
•
Un sistema gestor de base de datos: MySQL 5
Utilizamos, desde el Panel de Control de gnuLinEx y dentro de la sección Programas, la aplicación Paquetes de Software para instalar los distintos paquetes que necesitamos. Antes de poder acceder a esta utilidad, si la estamos ejecutando como usuarios no administradores, el sistema nos solicitará la contraseña del usuario root para poder continuar. Una vez introducida, podremos proceder a la instalación de paquetes con toda normalidad. El primer paso será refrescar la lista de repositorios de nuestro sistema operativo para tener la lista de paquetes actualizada haciendo clic en el botón Recargar. Los pasos a seguir serán siempre los mismos, buscar el paquete o los paquetes deseados, seleccionarlos para ser instalados y aplicar los cambios. Buscamos la cadena “apache2” y al seleccionar el paquete apache2 se nos pedirá también que instalemos apache2.2-common y apache2-utils. Aceptamos y, a continuación, hacemos clic en Aplicar. Por último, comprobamos que está todo correcto abriendo un navegador web y tecleando en la barra de direcciones http://ip_de_nuestro_ordenador o bien, http://localhost. Instalamos a continuación php: buscamos el texto “php5” y se nos indica que se instalará también libapache-mod-php5 y php5-common al instalar dicho paquete, aceptamos y aplicamos los cambios. Por último vamos a instalar mysql-server-5.0. El sistema instalará también libmysqlclient14, mysql-client-5.0 y mysql-common. Además de los paquetes mencionados con anterioridad, necesitamos también instalar php5-mysql, para la interacción entre el lenguaje de programación y el sistema de base de datos. Para terminar de configurar correctamente la interacción entre php y mysql editamos como usuario root el fichero /etc/php5/apache2/php.ini, buscamos la expresión mysql.so y descomentamos esa línea (quitamos el ; al inicio de la misma). Para comprobar que todo está funcionando correctamente creamos un fichero de prueba que, además nos va a resultar útil para conocer la configuración de nuestro servidor en todo momento. Este fichero lo creamos con cualquier editor de textos y lo llamamos por ejemplo, informacion.php. Su contenido debe ser el siguiente: <?php phpinfo(); ?> Este fichero debe almacenarse en el directorio /var/www/ para que todo funcione de manera correcta y podamos ver el resultado deseado. Si aparece algo similar a la imagen mostrada en la siguiente figura en la pantalla, podremos afirmar que tanto el servidor Apache, como PHP están funcionando correctamente.
2 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 1.1. Pantalla de información de PHP
Ficheros de Configuración Los dos ficheros principales que debemos tener en cuenta al trabajar con PHP y con el servidor web Apache son: php.ini para PHP y apache2.conf para Apache. apache2.conf Se encuentra alojado en el directorio /etc/apache/apache2.conf. Este fichero contiene infinidad de posibilidades de configuración de las cuales, únicamente, vamos a ver las principales. Basta con abrir el fichero con cualquier editor de textos y modificar su contenido para cambiar la configuración de nuestro servidor, eso sí, sabiendo lo que hacemos porque puede llegar a ocurrir que no arranque correctamente después de los cambios efectuados. En las versiones previas de Apache existía un único fichero de configuración httpd.conf. Sin embargo en Apache2, la configuración está repartida por varios ficheros apache2.conf, dir.conf,... Por ejemplo, los servidores virtuales se crean y configuran desde /etc/apache2/sites-available/default. Algunas de estas opciones configurables para Apache 2 son: Port 80: puerto desde el que escucha el servidor de web. Un usuario del sistema, sin derechos de superusuario, solo puede utilizar puertos por encima del 1024. ServerRoot /usr/local/apache: directorio donde se encuentra la configuración del servidor, los ficheros de logs y los de error. ServerName: este es el nombre que el servidor envía a los clientes, en caso de los clientes hayan accedido a la máquina con un nombre diferente. Timeout 300: El número de segundos tras el cual se envía o se recibe el fin de plazo de una petición. MaxKeepAliveRequests 100: número máximo de peticiones que se pueden cursar en una misma conexión. En caso de poner 0, el número será ilimitado.
3 de 68
Miguel Rodríguez Martín – Marzo 2009 Cuantas más peticiones se puedan cursar por una misma conexión, mejor será el rendimiento de la comunicación, al evitar establecer nuevas conexiones TCP, que son muy costosas. DocumentRoot: indica el directorio local donde reside la información del sitio en cuestión. MaxKeepAliveRequests: establece el número máximo de peticiones permitidas por cada conexión que se produzca a la vez. MaxClients: establece un límite al total de los procesos del servidor. ... php.ini Este fichero se encuentra en el directorio /etc/php5/apache2/php.ini. El archivo php.ini es el que contiene nuestra configuración de PHP, con el que podemos controlar muchos aspectos de su funcionamiento. Algunos de los parámetros que podemos configurar en este fichero son los siguientes: short_open_tag = On: permite usar en los scripts, etiquetas php abreviadas <? ... ?>. Si el valor es off, se deberá usar la forma <?php ... ?> o <script>. max_execution_time = 30: fija el tiempo máximo en segundos que se le permite usar a un script antes de ser finalizado por el intérprete. Así se evita que scripts mal escritos puedan bloquear el servidor. max_input_time = 60: tiempo máximo en segundos que el script puede invertir en analizar datos recibidos memory_limit = 8M: fija el tamaño máximo de memoria en bytes que se permite reclamar a un script. Así se evita que script mal escritos se apropien de toda la memoria disponible de un servidor register_globals = Off: permite registrar automáticamente (o no) las variables EGPCS como globales. Por razones de seguridad se recomienda desactivar el registro. doc_root =: indica el "Directorio raiz" donde están las paginas php en el servidor. Sólo se usa si no está vacío. Si PHP se configura con safe mode, no se interpretaran las páginas php situadas fuera de este directorio. Ojo con los servidores virtuales que apuntan a zonas distintas del servidor. file_uploads = On: permitir o no subir (upload) ficheros vía HTTP. upload_max_filesize = 2M: tamaño máximo de archivos que pueden subirse. ... Servidores alternativos Además de esta configuración “tradicional” de nuestro entorno web, existen otras más sencillas de instalar y de manejar, como por ejemplo XAMPP o Mowes (Modular Webserver System). XAMPP (Apache, Mysql, PHP & Perl): es una distribución de Apache fácil de instalar que contiene, ya integrados, MySQL como sistema gestor de BD y PHP como lenguaje interpretado, además de Apache como servidor web. Mowes: (Modular Webserver System) es un software que permite tener un servidor web Apache completamente operativo con PHP y base de datos MySQL instalado en cualquier dispositivo de almacenamiento externo (lápiz USB, disco duro, memoria flash, etc.) sin necesidad de instalar nada. Excelente solución para hacer pruebas y llevártelas contigo en el bolsillo. (http://www.chsoftware.net/en/useware/mowes/mowes.htm)
4 de 68
Instalación, administración y migración de un portal web: JOOMLA
Miguel Rodríguez Martín – Marzo 2009
2. INSTALACIÓN DEL PORTAL WEB Joomla! 1.5
Marzo 2009 Miguel Rodríguez Martín
5 de 68
Miguel Rodríguez Martín – Marzo 2009 Instalación de Joomla! 1.5 A continuación se describe paso a paso la instalación (concretamente la versión 1.5.9 completamente en español).
de
Joomla!
1.5
Paso 1.- Seleccione su idioma: seleccionar el idioma que se va a utilizar durante la instalación.
Figura 2.1. Instalación de Joomla! – Paso 1 Paso 2.- Comprobación previa: comprobación de que ciertos valores de configuración tienen el valor correcto para poder continuar con la instalación. En el bloque superior es necesario que todos los elementos tengan un valor correcto para poder continuar; los elementos del bloque inferior son recomendados y no obligatorios para continuar con la instalación.
Figura 2.2. Instalación de Joomla! – Paso 2 (I)
6 de 68
Miguel Rodríguez Martín – Marzo 2009 Cuando todos los valores han sido modificados correctamente aparecen en color verde. Los incorrectos o no recomendados en color rojo.
Figura 2.3. Instalación de Joomla! – Paso 2 (II) Paso 3.- Licencia: simplemente se muestra la licencia de Joomla! para que sea leída y aceptada por el usuario.
Figura 2.4. Instalación de Joomla! – Paso 3
7 de 68
Miguel Rodríguez Martín – Marzo 2009 Paso 4.- Configuración de la base de datos: en este paso deben indicarse los datos de la BD que utilizará Joomla! para funcionar: tipo de base de datos, nombre del servidor, usuario y contraseña de conexión a la BD y nombre de la BD.
Figura 2.5. Instalación de Joomla! – Paso 4 (I) Además de los datos básicos, existe otros datos de configuración avanzada para la BD por si se desea eliminar las tablas existentes en la BD de instalaciones anteriores de Joomla! o hacer una copia de seguridad de las mismas o bien si se desea indicar un prefijo a las nuevas tablas que se crearán en esta instalación.
Figura 2.6. Instalación de Joomla! – Paso 4 (II) 8 de 68
Miguel Rodríguez Martín – Marzo 2009 Paso 5.- Configuración de FTP: algunos servidores debido a su configuración no permiten trabajar con Joomla! de manera “normal”. Por este motivo Joomla! dispone de una capa FTP para gestionar las operaciones con archivos.
Figura 2.7. Instalación de Joomla! – Paso 5 (I) En la configuración avanzada de FTP es posible indicar la dirección del servidor FTP, así como el puerto a través del cual se realizará la conexión y si se desea guardar la contraseña de acceso al servidor FTP.
Figura 2.8. Instalación de Joomla! – Paso 5 (II)
9 de 68
Miguel Rodríguez Martín – Marzo 2009 Paso 6.- Configuración principal: en este apartado se detallan datos de configuración globales al sitio web: el nombre, el correo del administrador, la contraseña del administrador, si se desean datos de ejemplo o importados,...
Figura 2.9. Instalación de Joomla! – Paso 6 Paso 7.- Instalación finalizada: a continuación, se nos pide que borremos el directorio installation por cuestiones de seguridad. Una vez hecho ésto, podremos acceder a la página principal del portal web que se acaba de instalar.
10 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 2.10. Página principal de Joomla! También es posible acceder a la zona de administración de Joomla!.
Figura 2.11. Acceso a la administración de Joomla! Al acceder a la parte de administración de Joomla! aparece la pantalla que se muestra a continuación (con el usuario y la contraseña que se han indicado en el proceso de instalación).
11 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 2.12. Página principal de administración de Joomla!
12 de 68
Instalación, administración y migración de un portal web: JOOMLA
Miguel Rodríguez Martín – Marzo 2009
3. ADMINISTRACIÓN DEL PORTAL WEB Joomla! 1.5
Marzo 2009 Miguel Rodríguez Martín
13 de 68
Miguel Rodríguez Martín – Marzo 2009 Administración general del sitio web
Figura 3.1. Menú de configuración del sitio Panel de control: muestra la pantalla de la imagen 2.12. Gestor de usuarios: alta, modificación, borrado de usuarios,...
Figura 3.2. Administración de usuarios Algunos campos importantes a tener en cuenta a la hora de trabajar con usuarios son los siguientes: o
Grupo del usuario: puede tener los siguientes valores: Registrado: visitantes normales que se registran en el sitio web. Pueden ver los ítems de los menús que tienen el nivel de acceso de Registrados. No pueden ni editar, ni escribir artículos. Autores: pueden escribir nuevos artículos para su aprobación, solamente en el front end del sitio web. Una persona con perfil de publicador u otro perfil superior debe aprobar dichos artículos. No puede editar artículos existentes. Editor: puede escribir o editar artículos pero solo del front end. Una persona con perfil de publicador u otro perfil superior debe aprobar dichos artículos. Publicador: puede escribir, editar o publicar artículos pero únicamente del front end. Gestor: los usuarios de este grupo pueden acceder a la administración de contenidos y obtener información del sistema. Un Gestor tiene acceso a las siguientes funciones del Administrador (Back-end): Ayuda: Pantallas de Ayuda generales e Información del Sistema.
14 de 68
Miguel Rodríguez Martín – Marzo 2009 Sitio: Gestor Multimedia. Menús: Edición de Menús existentes, y creación de Artículos de Menú (todas las funciones relacionadas). Contenido: Gestor de artículos, Gestor de Secciones, Gestor de Categorías y Gestor de la Página de Inicio (todas las funciones relacionadas). Componentes: todas las funciones relacionadas con los componentes. Administrador: Los usuarios de este grupo pueden acceder a la mayoría de funciones administrativas. Un Administrador tiene acceso a todo lo contemplado para los Gestores, y además: Sitio: Gestor de Usuarios (crear/editar/borrar cualquier tipo de usuario excepto Súper-Administrador). Menús: Gestor de Menús (acceso a todas las funciones) y Papelera de Menús. Contenido: Papelera de artículos. Extensiones: Instalar/Desinstalar, Gestor de módulos y Gestor de plugins. Herramientas: Desbloqueo global, Limpiar la caché y Purgar la caché expirada. Súper-Administrador: los usuarios de este grupo pueden acceder a todas las funciones administrativas. Un Súper-Administrador tiene acceso a todo lo contemplado para los Administradores, y además: Sitio: Configuración Global. Nota: Un Súper-Administrador podría eliminarse desde la base de datos). Extensiones: Gestor de Idiomas, Gestor de Plantillas. Herramientas: Leer mensajes, Escribir mensaje, Correo Masivo. o
Bloquear usuario: es posible seleccionar cuándo deshabilitar a un usuario. Sólo está disponible para los administradores o súper administradores.
Gestor multimedia: es una herramienta muy útil para subir o borrar imágenes en el directorio /images/ del servidor web. Es posible subir nuevos ficheros, borrarlos o crear subdirectorios. El gestor multimedia ofrece dos tipos de vistas: una vista de “miniaturas” y una vista de detalles. La primera ofrece una vista previa de las imágenes y la segunda muestra el nombre del fichero, las dimensiones y el tamaño del mismo. Al lado de cada fichero hay un botón “eliminar” para borrar dicho archivo. El tamaño máximo del archivo a subir es de 10 Mb, aunque es posible cambiarlo en la Configuración Global que se detalla a continuación. NOTA: hay que tener en cuenta que para que luego las imágenes estén disponibles en la edición de artículos (en el plugin "imagen") deben estar en el interior de la carpeta "stories" o en sus subcarpetas.
15 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.3. Gestión de contenido multimedia Configuración global: desde aquí es posible configurar multitud de parámetros que afectan al funcionamiento del sitio web. Existen tres categorías de elementos a configurar: o
Sitio:
Figura 3.4. Configuración global del sitio web 16 de 68
Miguel Rodríguez Martín – Marzo 2009 Configuración del sitio Sitio desactivado: indica si el sitio web está activo o no. Se utiliza esta opción si se están actualizando módulos o datos, y no se quiere que los visitantes vean el sitio hasta que esté listo. Sólo los administradores pueden ver el sitio cuando éste está desactivado. El valor por defecto es No. Mensaje para el sitio web desactivado: mensaje que se mostrará cuando el sitio web esté desactivado. Nombre del sitio web: nombre de la web que aparecerá en la barra de título del navegador. Editor WYSIWYG predeterminado: editor por defecto al crear artículos. Número de ítems por página: número de elementos en las listas del Panel de Control. Por defecto su valor es 20. Longitud de la noticia: número de elementos para mostrar en los “feed(s)”. El valor por defecto es 10. Parámetros de los metadatos META-Descripción del sitio: descripción del sitio a utilizar por los buscadores. META-Palabras clave del sitio: palabras clave que describen el sitio web para su indexación y posicionamiento en los buscadores. Mostrar Meta-etiquetas del título: para mostrar o no la meta información del título de cada artículo (cada uno de ellos puede incorporar su propia meta información). Mostrar Meta-etiquetas del autor: para mostrar o no la meta información del autor de cada artículo (cada uno de ellos puede incorporar su propia meta información). Parámetros de optimización de SEO (Search Engine Optimization, ) URLs amigables para motores de búsqueda: cuando está establecido a Si, las URLs son reescritas de forma más simple para los buscadores. Por ejemplo, la URL: www.example.com/index2.php?option=com_content&view=etc... se transformaría en: www.example.com/alias La mayoría de los elementos de Joomla tienen un campo donde indicar este alias. Por defecto su valor es No. Usar Apache mod_rewrite: si se sitúa a Si, se utilizan las características de Apache de “mod_rewrite” cuando se crean URLs sencillas para los buscadores. Lo que hace mod_rewrite es traducir esa url amigable que nosotros usamos en nuestros enlaces, por la “url dinámica real” que cargará el contenido correspondiente usando php y mysql (o la tecnología del servidor en cuestión). Su valor por defecto es No. Agregar el sufijo a las URLs: si está establecido a Si, Joomla añadirá la extensión html al final de cada URL. Su valor por defecto es No.
o
Sistema:
17 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.5. Configuración global del sistema Configuración del sistema Palabra secreta: se genera la primera vez que se instala Joomla y no se puede cambiar. Se usa internamente por motivos de seguridad. Ruta a la carpeta de registro: carpeta donde se almacenan los logs del sistema. El instalador de Joomla, por ejemplo, escribe en esta carpeta. Activar los servicios web: permite a Joomla realizar RPC (llamadas a procedimientos remotos) utilizando http como medio de transporte y XML como lenguaje de codificación. Por defecto su valor es Si. Servidor de ayuda: para indicar el lugar donde Joomla va a buscar la ayuda cuando se hace clic en el botón de ayuda (visible en muchas pantallas y opciones del panel de administración). Parámetros del usuario Permitir el registro de usuarios: para indicar si se desea permitir que los usuario se registren en nuestro sistema o no. Valor por defecto: Si. Nivel de acceso predeterminado: indica el nivel de acceso por defecto que deben tener los nuevos usuarios que se registran en el sitio web. El valor por defecto es Registrado. Activación de cuenta para los usuarios nuevos: para indicar si los nuevos usuarios que se registran en el sitio, antes de comenzar a trabajar en él, necesitan que se les active su cuenta. Si el valor es sí, los usuarios recibirán un correo con un enlace para activar su cuenta. Parámetros para los usuarios de la portada: si está establecido a Mostrar, los usuarios podrán seleccionar su lenguaje, el editor del artículo y el sitio de la ayuda desde su pantalla de Detalles una vez que estén identificados en el sistema. Por defecto su valor es Mostrar.
18 de 68
Miguel Rodríguez Martín – Marzo 2009 Configuración multimedia Extensiones permitidas: extensiones permitidas a los usuarios para subir archivos. Por defecto, en la instalación de Joomla se permite la subida de los archivos más comunes y de los tipos de imágenes básicos. Tamaño máximo (en bytes): tamaño máximo que deben tener las imágenes a subir, expresado en bytes. Por defecto 10 Mb. Ruta al directorio de archivos: ruta donde se colocan los archivos que no son imágenes que son subidos a Joomla. Por defecto este directorio es /images/. Ruta al directorio de imágenes: ruta donde se colocan las imágenes que son subidas a Joomla. Por defecto este directorio es /images/stories. Subidas restringidas: restringir las subidas de archivos al sitio web, en función de los perfiles de los usuarios. Valor por defecto: Si. Comprobar el tipo de MIME: se comprueba la información MIME de los archivos para evitar que se suba contenido malicioso al sitio web. Valor por defecto: Si. Extensiones permitidas (Tipos de Archivo): para limitar los tipos de archivos que pueden subirse al servidor. Joomla por defecto sólo permite las extensiones: bmp, gif, jpg y png. Extensiones ignoradas: para indicar las extensiones que no deben contemplarse en las subidas restringidas y en la comprobación del tipo MIME. Por defecto no se indica ninguna extensión ignorada. Tipos de MIME permitidos: lista con los tipos permitidos para la subida de archivos. Joomla indica los tipos más comunes por defecto. Tipos de MIME no permitidos: tipos MIME ilegales a la hora de subir archivos al sitio web. Por defecto, Joomla bloquea la subida de páginas HTML al servidor. Habilitar la subida de flash: para permitir la subida de contenido flash al servidor o no. Valor por defecto: No. Parámetros de depuración de errores Depuración del sistema: para habilitar el sistema de depuración del sitio web. Si está activo, esta herramienta proporciona información de diagnóstico, errores SQL,... Los errores, en caso de producirse, se muestran al final de la página. Valor por defecto: No. Depurar el idioma: activa la depuración para los ficheros de idiomas en Joomla (indicadores *...* y ?...?). Configuración de la caché Caché: para activar o desactivar la caché del sitio web. Cuando está activo, se guarda una copia local del contenido del sitio para incrementar la velocidad de acceso al mismo. Valor por defecto: No. Tiempo de duración de la caché: tiempo máximo que un fichero de caché debe permanecer sin ser refrescado. Valor por defecto: 15 min. Gestor de la caché: indica cómo opera la caché. En este caso, sólo hay un método basado en archivos. Configuración de sesión Duración de la sesión: cuánto tiempo debe durar la sesión hasta que el usuario deba volver a identificarse. Su valor por defecto es 15 minutos. Manejo de la sesión: indica cómo debe manejarse la sesión de un usuario que se conecta al sitio web. El valor por defecto es base de datos.
19 de 68
Miguel Rodríguez Martín – Marzo 2009
o
Servidor:
Figura 3.6. Configuración global del servidor Configuración del servidor Ruta al directorio temporal: ruta donde se almacenan los ficheros temporales. Compresión GZIP de las páginas: para habilitar la compresión de páginas del sitio web e incrementar la velocidad de acceso a las mismas. Valor por defecto: No. Informe de errores: establecer el nivel de informes a mostrar. Forzar SSL: fuerza el acceso al sitio bajo https (acceso seguro). Lógicamente, el servidor debe tener activa también esta propiedad. Configuración de la localización Zona horaria: para indicar la zona horaria donde está situado el servidor. El valor por defecto es: (UTC 00:00) Western Europe Time, London, Lisbon, Casablanca. Parámetros de FTP: algunos de estos parámetros se configuran en la instalación de Joomla!. Habilitar FTP: para utilizar como método de subida de elementos al servidor FTP en lugar del método habitual utilizado por PHP. Hospedaje del FTP: URL donde se aloja el servidor FTP. Puerto FTP: puerto de conexión al servidor FTP. Por defecto 21. Nombre del usuario FTP: para conectarse al servidor FTP. Contraseña FTP: para conectarse al servidor FTP. Directorio raíz del FTP: directorio base del servidor FTP al que se accederá tras realizar la conexión. Configuración de la base de datos: estos parámetros se configuran en la instalación de Joomla!.
20 de 68
Miguel Rodríguez Martín – Marzo 2009 Tipo de base de datos: a utilizar en Joomla, por defecto mysql, aunque puede indicarse cualquier otro en la instalación. Nombre del proveedor: servidor donde está alojada la BD. Nombre de usuario: de acceso a la BD. Base de datos: nombre de la misma. Prefijo de la base de datos: prefijo de las tablas de la BD. Configuración de correo Programa de correo: indica el método que debe utilizar Joomla para enviar correos: función de correo de php, Sendmail o SMTP. Dirección del remitente: dirección de correo que utiliza Joomla desde la cual envía los correos. Nombre del remitente: que aparecerá en los correos enviados por Joomla. Ruta para sendmail: ruta donde está situado el sistema sendmail de envío de correos. Autenticación SMTP: indica si el sistema SMTP (en el caso de que sea utilizado) requiere autenticación o no. Usuario SMTP: para acceder al servidor SMTP. Contraseña SMTP: para acceder al servidor SMTP. Servidor SMTP: dirección del servidor SMTP utilizado. Cerrar sesión: cierra la sesión abierta y muestra de nuevo la pantalla de login. Administración de menús
Figura 3.7. Configuración de los menús del sitio web
Gestor de menús: se utiliza para indicar los menús que va a mostrar Joomla!.
21 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.8. Gestión de los menús del sitio web En la pantalla inicial del Gestor de menús, se detallan todos los menús que componen el sitio web. Para cada uno de ellos podemos ver: su nombre, su tipo, el número de ítems que se muestran y que no se muestran, el número de elementos borrados, cuántos módulos componen este menú y su identificador. Desde esta pantalla es posible copiar un menú y todos sus elementos, borrarlo, editar sus características, crear menús y además: o Editar ciertas características del menú (nombre único, título y descripción), accediendo a ellas, haciendo clic en el propio nombre del menú. o Editar y manejar los elementos de cada menú haciendo clic en el icono correspondiente al menú en cuestión, en la columna Item(s) del menú. NOTA: el menú principal no debería borrarse. Es el elemento principal del home del sitio web y éste dejaría de funcionar si el menú principal desapareciera. Papelera de menús: desde aquí es posible restaurar menús que hayan sido borrados con anterioridad o bien, borrarlos definitivamente y que, tanto ellos, como sus ítems desaparezcan de la base de datos.
Figura 3.9. Papelera de reciclaje de los menús del sitio web Edición de los elementos de un menú: desde aquí es posible dar de alta elementos, modificarlos, borrarlos, ordenarlos, indicar el nivel de acceso (público, si cualquier usuario tiene acceso, registrado, si sólo los usuarios registrados
22 de 68
Miguel Rodríguez Martín – Marzo 2009 deben tener acceso y especial, si solo los usuarios con perfil de autor o superior tienen acceso),…
Figura 3.10. Gestión de los elementos de un menú Cada uno de los elementos de un menú, en función de su tipo, tiene unos parámetros configurables concretos. Vamos a ver cada uno de ellos: o Administrador de traducciones: es un componente que ayuda a la creación y al manejo de traducciones en Joomla. No maneja los contenidos del sitio, sino el lenguaje del sitio mismo. o Artículos: cuando se selecciona el enlace 'Artículos', se despliega una con los siguientes elementos: Archivo>Presentación de la lista de artículos archivados: muestra artículos que han sido archivados y son localizables por fecha. Estos artículos no están publicados, pero aún están almacenados en el sitio. Este tipo de elemento de menú permite seleccionar un orden en el que mostrar los artículos archivados. Artículo>Presentación del artículo: para presentar un artículo simple en el sitio web. Sólo tiene un parámetro el artículo a incluir en la presentación. Artículo>Presentación de artículos: añade un enlace que permite a los usuarios con privilegios adecuados (autores y superiores) crear nuevos artículos de contenido desde una ventana de edición en el sitio (front-end). No tiene parámetros a configurar. Categoría>Presentación de la categoría blog: muestra los archivos de una determinada categoría en formato blog. Como parámetros se pueden indicar la categoría a mostrar, mostrar/ocultar la descripción de la categoría y de la imagen, el número de artículos a destacar, el número a mostrar con el texto de introducción, cuantas columnas por fila mostrar para los textos de introducción y el número de ítems a mostrar como enlaces. Categoría>Presentación de la lista de categorías: muestra los archivos de una categoría en una lista y permite acceder a ellos mediante enlaces. Es posible configurar la categoría a mostrar, el número ítems a mostrar como
23 de 68
Miguel Rodríguez Martín – Marzo 2009 enlaces, mostrar/ocultar la cabecera de la tabla, la fecha y el campo de filtrado y por último el filtro con el que se mostrará la lista. Página principal>Presentación de la página principal del Blog: muestra los artículos que han sido configurados como artículos del componente Página de Inicio, en formato blog. Como parámetros se pueden indicar el número de artículos a destacar, el número a mostrar con el texto de introducción, cuantas columnas por fila mostrar para los textos de introducción y el número de ítems a mostrar como enlaces. Sección>Presentación de la sección blog: mostrará un blog de artículos de contenido publicados en una sección del sitio. Estos artículos de contenido se muestran como breves resúmenes. Como parámetros se pueden indicar la sección cuyos artículos se van a mostrar, mostrar/ocultar la descripción de la sección y de la imagen, el número de artículos a destacar, el número a mostrar con el texto de introducción, cuantas columnas por fila mostrar para los textos de introducción y el número de ítems a mostrar como enlaces. Sección>Presentación de la sección: mostrará una tabla con las categorías de una sección del sitio. Al hacer clic sobre el enlace de una de estas categorías se mostrará una lista con los artículos de la misma. Los parámetros básicos a configurar en este caso son sección a mostrar, mostrar/ocultar la descripción de la sección y de la imagen, mostrar/ocultar la lista de categorías, mostrar/ocultar las categorías vacías, mostrar/ocultar el número de ítems por categoría y mostrar/ocultar la descripción de cada categoría. o Buscar: muestra el formulario de búsqueda y los resultados. Se puede configurar mostrar/ocultar las cajas de búsqueda y mostrar/ocultar la fecha de creación. o Contactos: cuenta a su vez con los siguientes elementos: Contactos>Categoría: muestra todos los contactos de una categoría dada. Es posible configurar la categoría de contactos a mostrar, el número de contactos a mostrar, mostrar/ocultar la imagen del contacto y su alineación, mostrar/ocultar el límite del marco y mostrar/ocultar un enlace RSS a la noticia. Contactos>Contacto: se utiliza para mostrar los detalles de un solo contacto. Tiene como parámetros básicos la selección del contacto a mostrar, la posibilidad de mostrar una lista desplegable para permitir al usuario seleccionar otro contacto de la misma categoría y mostrar/ocultar la categoría para contactos en la ruta del sitio. o Encuesta: muestra los resultados de una encuesta. En este caso, sólo es posible seleccionar la encuesta a mostrar. o Enlaces web: cuando se selecciona 'Enlaces web', se despliega una con los siguientes elementos: Enlaces web>Presentación de la lista de las categorías de los enlaces web: muestra una lista de todas las categorías de enlaces web del sitio. Es posible configurar mostrar una imagen en la página, la alineación de la misma y seleccionar si los enlaces a las noticias (feeds) deben mostrarse o no. Enlaces web>Presentación del listado de categorías: se muestra una tabla con los enlaces web de una determinada categoría. En este caso los parámetros a configurar son la categoría a mostrar y seleccionar si los enlaces a las noticias (feeds) deben mostrarse o no. Enlaces web> Presentación de los enlaces web enviados: permite a los usuarios registrados enviar enlaces web mediante un formulario desde el
24 de 68
Miguel Rodríguez Martín – Marzo 2009 front end. Estos enlaces no serán publicados hasta que no sean aceptados por un Super Administrador desde la administración. o Servidor de noticias: esta categoría se compone a su vez de varios elementos: Servidor de noticias>Presentación para la lista de servicios de noticias de las categorías: muestra una lista de todas las categorías de servicios de noticias. Es posible configurar: mostrar/ocultar el marco delimitador, mostrar/ocultar la descripción de cada servicio, mostrar un texto descriptivo para la página, mostrar una imagen en la página y la alineación de la misma. Servidor de noticias>Presentación para la categoría del servidor de noticias: se utiliza para mostrar todos los boletines de noticias de una determinada categoría. Los parámetros básicos son la lista de categorías a mostrar y mostrar/ocultar el marco delimitador. Servidor de noticias>Presentación para un solo servicio de noticias: este artículo de menú añade un enlace a uno de los Boletines de Noticias Externas (feed) a los que está suscrito. Las Noticias Externas se obtienen desde cualquier sitio que sindica (comparte) noticias mediante archivos RSS (formato de archivo para el intercambio de información). Joomla! viene con un lector de Noticias Externas integrado. Sólo se puede indicar como parámetro el servicio de noticias a mostrar. o Usuario: dispone de varias opciones: Usuario>Presentación predeterminada de acceso a la cuenta de usuario: muestra un formulario que permite al usuario acceder al sitio. Algunos de los parámetros básicos configurables son: mostrar/ocultar el título de la página, título a mostrar, página a la que acceder tras un acceso con éxito, mensaje javascript de acceso, mostrar/ocultar descripción de acceso, imagen de acceso... (y sus equivalentes para el cierre de sesión). Usuario>Presentación de registro predeterminada: crea un formulario para que un usuario pueda registrarse. No tiene parámetros básicos de configuración. Usuario>Recordar por defecto: crea un formulario de recordatorio de contraseña. No tiene parámetros básicos de configuración. Usuario>Restablecer distribución en pantalla por defecto: crea un formulario de restablecimiento de contraseña. No tiene parámetros básicos de configuración. Usuario>Presentación de usuario predeterminada: muestra un mensaje de bienvenida cuando el usuario accede a la zona registrada. No tiene parámetros básicos de configuración. Usuario>Usar presentación de formulario: muestra un formulario desde el cual, el usuario podrá editar los detalles de su perfil: cambiar la contraseña, las preferencias de idioma, de zona horaria... o URL embebida (wrapper): añade un enlace a una página que permite visualizar páginas web externas dentro del propio sitio Joomla!. Estas páginas externas se muestran mediante un marco insertado en el área de contenido principal del sitio Joomla!. Puede ser utilizado para incrustar una aplicación como un foro o una galería, páginas individuales o sitios web completos. El Wrapper no solo proporciona la posibilidad de visualizar fácilmente sitios externos, sino que también permite incluir contenido HTML especializado que de otro modo no sería fácil de crear en el entorno de Joomla! (ejemplo: páginas DHTML puras que requieren el uso de un editor web especializado). También puede usarse para visualizar scripts especializados y aplicaciones sin tener que
25 de 68
Miguel Rodríguez Martín – Marzo 2009 adaptar el código del API (Interfaz de Programación de Aplicaciones) de Joomla!. Las aplicaciones se ejecutan manteniendo la apariencia del sitio Joomla! (como si se tratase de un componente nativo). Es posible indicar la URL a mostrar, si se desea mostrar las barras de desplazamiento horizontales y verticales, así como el tamaño de la ventana del marco. o Enlace externo: añade un enlace a una página web. Puede ser un enlace a una página del propio sitio (enlace interno) o a una página de otro sitio web (enlace externo). Es posible indicar una pequeña imagen que aparecerá al lado de cada uno de los enlaces. o Separador: añade un separador a los artículos de un menú. Se utiliza para dividir menús largos y es posible indicar una pequeña imagen que aparecerá al lado de cada uno de los enlaces. o Alias: el artículo de menú ‘Alias’ añade un Enlace a un Artículo de Menú Existente. Por tanto, este tipo de artículo de menú sirve para hacer una Copia rápida de un Artículo de Menú ya Existente, sin necesidad de configurar los parámetros del mismo. Como parámetro básico se puede configurar el ítem del menú del que se creará el alias. Un caso especial de este tipo de menús es el tipo Artículos>Página principal. Este elemento va a ser el que indique cómo se va a mostrar el home de nuestro sitio web. Es posible especificar en sus parámetros básicos el número de artículos a destacar, el número a mostrar con el texto de introducción, cuantas columnas por fila mostrar para los textos de introducción y el número de ítems a mostrar como enlaces (todo ello de la home del sitio). Administración de contenido
Figura 3.11. Gestión de los elementos de contenido Gestor de artículos: desde aquí es posible dar de alta artículos, modificarlos, borrarlos, publicarlos/despublicarlos, archivarlos/desarchivarlos (los artículos archivados siguen siendo visibles desde el sitio, pero sin estar publicados),...
26 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.12. Gestor de artículos Papelera de artículos: los elementos del menú y los artículos disponen de papeleras independientes. En este caso la papelera de artículos sirve para almacenar los artículos antes de que sean borrados definitivamente. Desde aquí es posible restaurar de nuevo el artículo a su lugar de origen.
Figura 3.13. Papelera de artículos Gestor de secciones: los artículos, en Joomla!, están organizados dentro de secciones y categorías. Las secciones son el nivel superior de organización y las categorías, van por debajo de las secciones. El gestor de secciones es el lugar donde crear nuevas secciones o editar las existentes.
27 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.14. Gestor de secciones Gestor de categorías: desde aquí es posible crear nuevas categorías o editar las existentes. Los artículos, en Joomla!, están organizados dentro de secciones y categorías. Las secciones son el nivel superior de organización y las categorías, van por debajo de las secciones. Cada sección contiene una o más categorías. La sección especial 'Sin clasificar' tiene su correspondiente categoría especial llamada 'Sin clasificar' (son de creación interna).
Figura 3.15. Gestor de categorías Gestor de la página de inicio: el gestor de la página principal es el lugar desde donde se controla qué artículos se mostrarán en la página principal del sitio y en el orden que se mostrarán. La página principal es a menudo la página de inicio del sitio, pero podría ser cualquier otra página de nuestro sitio. La página principal se crea usando un elemento del menú asociado a una presentación de página principal.
28 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.16. Gestor de la página de inicio Administración de componentes
Figura 3.17. Menú de componentes Desde este menú es posible acceder a los distintos componentes instalados en el sitio web, por lo que su aspecto puede variar. En este caso nos centraremos en los componentes de los que Joomla! Dispone en la primera instalación. Administrador de Traducciones: con este componente es posible manejar los diferentes archivos de lenguajes que puede manejar la administración de Joomla! para cada idioma: sitio (front end) y administrador (back end). Entre otras cosas, es posible modificar el fichero XML del lenguaje, ver cada uno de los archivos que componen el fichero de lenguaje, empaquetar un idioma completo para poder exportarlo, crear un nuevo fichero de idiomas,…
29 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.18. Componente Administrador de traducciones Banner: permite mostrar los banners (anuncios) activos del componente banners en el sitio (front-end). En esta primera pantalla podemos ver los banners dados de alta en el sitio web. El parámetro fijar da más importancia a los banners que lo tienen activado frente a los que no lo tienen. Para acceder a la gestión de clientes de banners o a las categorías de los mismos se debe hacer clic en las correspondientes pestañas.
Figura 3.19. Componente Banner>Anuncios Para dar de alta un banner se debe asociar a un cliente, por ello primero se deben dar de alta éstos. En la pantalla mostrada en la siguiente figura es posible ver los clientes dados de alta en el sistema en este momento.
30 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.20. Componente Banner>Clientes Por último, todo banner debe estar asociado a una categoría de las mostradas en la figura que se muestra a continuación. Desde aquí es posible publicar/despublicar categorías, borrarlas, editarlas, darlas de alta,…
Figura 3.21. Componente Banner>Categorías Buscar: la página de estadísticas de búsqueda te permite ver cuántas búsquedas se han realizado por cada palabra clave y cuantos resultados se han devuelto por cada búsqueda. Dentro de los parámetros configurables de este componente es posible activar/desactivar el registro de búsqueda de forma que se guarde esta información estadísticas sobre las búsquedas o no, así como mostrar/ocultar la fecha de creación de los artículos cuando éstos se muestran en los resultados de las búsquedas.
31 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.22. Componente Buscar Contactos: el gestor de contactos te permite agregar información de diferentes contactos al sitio web. Se puede introducir información como el nombre, dirección, número de teléfono, o correo-electrónico y también permite que enlaces contactos con usuarios registrados. Para cada contacto es posible elegir de entre todos sus campos de información, cuáles mostrar y cuáles no.
Figura 3.23. Componente Contactos>Contactos Accediendo mediante la pestaña de Categorías, es posible dar de alta, borrar, editar, publicar/despublicar,…categorías. Son imprescindibles para poder dar de alta contactos ya que éstos deben asociarse a una categoría obligatoriamente.
Figura 3.24. Componente Contactos>Categorías
32 de 68
Miguel Rodríguez Martín – Marzo 2009
Encuesta: esta página muestra la lista de encuestas del sitio. Permite crear preguntas de encuesta para el sitio y que luego los visitantes puedan responder a esas preguntas. Este componente permite asignar hasta doce preguntas u 'opciones', en cada una de las encuestas.
Figura 3.25. Componente Encuesta Enlaces web: muestra una lista de los enlaces web a otros sitios desde Joomla!. Para dar de alta un nuevo enlace es imprescindible asignarlo a una categoría. Como parámetros para los enlaces web, entre otros, podremos especificar dónde mostrar el destino del enlace: en la misma ventana con una barra de navegación o en una nueva ventana con o sin barra de navegación.
Figura 3.26. Componente Enlaces web>Enlaces Es necesario dar de alta categorías de enlaces web, además de para clasificarlos, para poder dar de alta a los propios enlaces, pues es un valor obligatorio para éstos. Desde la pantalla de la figura siguiente, es posible ver una lista de todas las categorías, así como acceder al alta, el borrado, la edición...de categorías.
33 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.27. Componente Enlaces web>Categorías Servidor de noticias (newsfeeds): se muestra una lista de las Suscripciones del sitio a Noticias Externas. Este componente permite agregar noticias procedentes de otros sitios dentro del tuyo. Puedes agregar enlaces a esas noticias externas creando presentaciones para servidores de noticias externas.
Figura 3.28. Componente servidor de noticias (newsfeeds)>Noticias Es imprescindible dar de alta categorías de Noticias Externas, pues éste es un valor imprescindible a la hora de añadir un nuevo Servidor de Noticias externo al sitio web. Esto se puede hacer desde la pantalla que se muestra a continuación.
34 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.29. Componente servidor de noticias (newsfeeds)>Categorías
Administración de extensiones
Figura 3.30. Administración de extensiones Las extensiones son piezas de software agregables sobre el sitio que permiten expandir las funcionalidades de Joomla!. Las extensiones se usan para agregar capacidades a Joomla! que no existen en el paquete de instalación estándar. Hay cientos y cientos de extensiones disponibles para Joomla! y aumentan día a día. Las extensiones están clasificadas en categorías de cinco tipos, como se detalla a continuación: o
Componentes: son mini-aplicaciones que se integran en el cuerpo principal de la página. Algunos ejemplos de componentes, podrían ser el de Contactos, la Página principal y el servidor de noticias externas. Aparecen generalmente en la sección principal dentro de la disposición del diseño de la página web creada con Joomla (front end). Los componentes son elementos del núcleo (Core) de Joomla que dotan al sistema de toda su funcionalidad.
o
Módulos: son extensiones más pequeñas que típicamente se usan para integrar a un pequeño elemento que se mostrará a través de múltiples páginas. Algunos ejemplos de módulos incluirían a los menús y elementos relacionados.
35 de 68
Miguel Rodríguez Martín – Marzo 2009
o
Plugins: son secciones del código que se ejecutan cuanto se produce un evento predefinido dentro de Joomla!. Son funciones que interceptan el contenido antes de que sea exhibido, y lo manipulan de una cierta manera, generalmente agregando una nueva aplicación o funcionalidad. Algunos ejemplos de plugins podrían ser los editores, que se ejecutan cuando se inicia una sesión de edición.
o
Idiomas: son extensiones que permiten presentar el sitio o la administración en cualquiera de los idiomas existentes que tengamos instalados. Ésto permite usar Joomla! en otros idiomas, sin para ello necesitar cambiar el núcleo del programa.
o
Plantillas: son extensiones que controlan el modo en el que se mostrará el contenido del sitio, incluyendo las ubicaciones y presentación de los elementos, colores, fuentes y demás. Las plantillas permiten separar la apariencia del sitio del contenido.
Instalar/Desinstalar: esta funcionalidad permite instalar extensiones de cualquier tipo en el sitio web. Se pueden instalar de cualquiera de los tres tipos que se ofrecen: o
Subir paquete: se selecciona el paquete descargado y se hace clic en el botón "Subir archivo e instalar". Joomla! leerá el contenido del paquete e instalará la extensión. Cuando el proceso termine, se mostrará en pantalla el mensaje "Componente instalado con éxito". Si la instalación no ha tenido éxito, se mostrará en pantalla un mensaje de error.
o
Instalar desde directorio: una segunda alternativa de instalación, consiste en instalar la extensión desde un directorio: 1. Crea un directorio temporal en el disco duro y descomprimir ahí el archivo de la extensión que desees instalar. 2. Usando el FTP, subir el contenido de ese directorio (incluyendo todas los subdirectorios y archivos) al directorio creado. 3. En el campo "Directorio de instalación" se debe especificar el directorio al que se han subido los archivos y carpetas que contenía el paquete de instalación. 4. Se hace clic sobre el botón "Instalar" y Joomla! instalará el contenido del directorio dado. Cuando el proceso termine, se mostrará en pantalla el mensaje "Componente instalado con éxito". Si la instalación no ha tenido éxito, se mostrará en pantalla un mensaje de error.
o
Instalar desde URL: una tercera alternativa para instalar una extensión es la que se indica a continuación. En lugar de descargar el paquete instalable de la extensión a nuestro ordenador, bastará con especificar la URL de destino en la que se encuentre el paquete instalable. Luego se hace clic sobre el botón "Instalar" y Joomla! automáticamente instalará el paquete tomándolo directamente desde la URL dada. De nuevo, cuando el proceso termine, se mostrará en pantalla el mensaje "Componente instalado con éxito". Si la instalación no ha tenido éxito, se mostrará en pantalla un mensaje de error.
36 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.31. Instalar/Desinstalar extensiones Muestra una lista con los componentes instalados en el sitio web, por si se quiere deshabilitarlos o desinstalarlos.
Figura 3.32. Gestor de componentes Gestor de módulos: nuestra una lista con los módulos instalados en el sitio web, por si se quiere deshabilitarlos o desinstalarlos.
37 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.33. Gestor de módulos Gestor de plugins: muestra una lista con los plugins instalados en el sitio web, por si se quiere publicarlos o despublicarlos.
Figura 3.34. Gestor de plugins Gestor de plantillas: muestra una lista con todas las plantillas, tanto del sitio como del administrador instaladas en el sistema.
38 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.35. Gestor de plantillas Gestor de idiomas: muestra una lista con los idiomas, tanto del sitio como del administrador instalados en el sistema.
Figura 3.36. Gestor de idiomas
Administración de herramientas
Figura 3.37. Administración de herramientas
39 de 68
Miguel Rodríguez Martín – Marzo 2009 Leer mensajes: desde aquí es posible leer mensajes privados, borrarlos y enviarlos. Es posible configurar algunos parámetros relativos al envío y recepción de correos: bloquear la bandeja de entrada (indica si la bandeja de entrada está bloqueada, o no. Si está configurado en 'Sí', no se podrán enviar mensajes privados), notificar o no por correo la llegada de correos nuevos (determina si se enviará un correo al usuario, o no, cuando reciba un nuevo mensaje privado) y auto purgar mensajes (días tras lo que se borrarán los mensajes privados almacenados).
Figura 3.38. Herramientas>Leer mensajes Escribir mensajes: permite enviar mensajes privados a los usuarios del sitio web.
Figura 3.39. Herramientas>Escribir mensajes Correo masivo: permite, a los usuarios que son miembros del grupo "Súper Administrador", enviar un mensaje de correo a todos los usuarios que sean miembros de un grupo específico. El parámetro “Correo a subgrupos” determina si se enviará, o no, un correo a los miembros de los subgrupos que formen parte del grupo seleccionado. Por ejemplo, si está seleccionado el grupo 'Solo con acceso desde el sito', el correo, se enviaría a los todos los usuarios pertenecientes a los subgrupos "Registrado", "Autor", "Editor" y "Editor jefe".
40 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.40. Herramientas>Correo masivo Desbloqueo global: permite a Joomla! que realice una validación de todos los elementos sin validar o bloqueados. Tras ello, se muestran los resultados de la operación de desbloqueo global que se ha realizado. Esto es útil cuando, por ejemplo, un usuario ha editado un artículo y no consta que se haya salido nunca de ese estado de edición (mientras un usuario edita un artículo, otros con privilegio, no pueden editarlo al mismo tiempo). Lo que se consigue al ejecutar un desbloqueo global, es dejar a ese artículo del ejemplo 'no guardado', editable de nuevo.
Figura 3.41. Herramientas>Desbloqueo global Limpiar la caché: permite borrar los archivos de la caché del sitio web. Los archivos de la caché, son de carácter temporal y se crean para mejorar el rendimiento de tu sitio. Si no se han realizado cambios significativos, como pueda ser cambiar la plantilla o el idioma, los archivos de la caché, podrían quedarse desfasados. Para evitar cualquier problema ocasionado por la caché cuando queda
41 de 68
Miguel Rodríguez Martín – Marzo 2009 desfasada, es posible borrar todos los archivos que pertenezcan a la caché del sitio. Esto hará que Joomla! cree nuevos archivos que estarán actualizados.
Figura 3.42. Herramientas>Limpiar la caché Purgar la caché expirada: se borran aquellos elementos de la caché que hayan expirados y no aquellos que aún estén en curso.
Figura 3.43. Herramientas>Purgar la caché expirada Ayuda
Figura 3.44. Ayuda de Joomla Ayuda sobre Joomla!: muestra toda la ayuda disponible en Joomla!.
42 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 3.45. Ayuda sobre Joomla! Información del sistema: muestra una ventana con información del sistema, la configuración de PHP, del archivo de configuración de Joomla!, permisos de los directorios de Joomla!,...
Figura 3.46. Información del sistema
43 de 68
Instalación, administración y migración de un portal web: JOOMLA
Miguel Rodríguez Martín – Marzo 2009
4. OTRAS OPERACIONES CON JOOMLA! 1.5 Instalaciones adicionales, seguridad,...
Marzo 2009 Miguel Rodríguez Martín
44 de 68
Miguel Rodríguez Martín – Marzo 2009 Ampliando Joomla! Instalar un componente Lo primero es conseguir el componente a instalar. Para este ejemplo, vamos a utilizar un componente (y su correspondiente módulo) para mostrar un pequeño calendario de eventos en el sitio web. Dicho componente es Jevents (disponibles tanto el componente, como el módulo en la página oficial del proyecto http://www.jevents.net/). Una vez descargados ambos paquetes, los instalamos desde Extensiones>Instalar/Desinstalar. Para activar el módulo y que se muestre en nuestro sitio lo publicamos desde Extensiones>Gestor de módulos. De esta forma es posible ver el calendario recién instalado en la portada del portal web.
Figura 4.1. Aspecto del componente Otro ejemplo del funcionamiento del componente que acabamos de instalar:
Figura 4.2. Funcionamiento del componente JEvents
45 de 68
Miguel Rodríguez Martín – Marzo 2009 Algunos componentes y módulos tienen la particularidad de que, en ocasiones, y desde el Administrador de Joomla, disponen de su propia configuración y administración, como es el caso del componente Jevents que se acaba de instalar.
Figura 4.3. Administración del componente JEvents Instalar un plugin El primer paso es conseguir un plugin para realizar la tarea deseada. En este caso se va a tratar de cambiar el aspecto de los artículos a mostrar en el sitio web adaptándolos a la estética 2.0 tan de moda. Esto se va a conseguir mediante el plugin xtypo (http://www.templateplazza.com/xtypo/). Una vez descargado el plugin e instalado desde Extensiones>Instalar/Desinstalar se publica desde Extensiones>Gestor de plugins.
Figura 4.4. Cambiando el aspecto al sitio web Ya está instalado y disponible el plugin para trabajar con él en nuestro sitio web. Instalar una plantilla El primer paso es conseguir una plantilla que se adapte a nuestros gustos o a nuestras necesidades. Para ello podemos visitar cualquiera de estos sitios y elegir una plantilla: http://www.joomla24.com/option,com_gallery/Itemid,6.html http://www.joomlahacks.com/joomla/templates/0,0,0,0,9,0,8/ http://www.joomlaos.de/set_albumName,album03/option,com_gallery/Itemid,3 7/include,view_album.php.html
46 de 68
Miguel Rodríguez Martín – Marzo 2009 Una vez descargada y desde Extensiones>Instalar/Desinstalar, instalamos en el sitio web la nueva plantilla. Por último, desde Extensiones>Gestor Plantillas, comprobamos que, efectivamente la plantilla se ha instalado con éxito y la seleccionamos como predeterminada. Una vez hecho esto, el aspecto de nuestro portal web habrá cambiado por completo.
Figura 4.5. Cambiando el aspecto al sitio web Este método es válido, tanto para las plantillas del sitio web (front end), como para las de la parte de administración (back end). Otras cuestiones en Joomla! Recuperar la contraseña de administrador Joomla! Fuente: conexionesrazonables.blogspot.com La idea La contraseña de los usuarios, al igual que toda la información de éstos, se almacena dentro de la base de datos asociada a Joomla, por lo que sólo necesitaríamos realizar una modificación en una de las tablas para poder realizar el cambio a una nueva contraseña. No podemos ver la existente, sólo cambiarla. Podemos emplear este método con cualquier otro usuario, aunque no tiene sentido, ya que como administradores podemos cambiar la clave de cualquier usuario desde el back end, en la sección Administración de usuarios. ¿Qué necesitamos? En primer lugar necesitamos contar con un sistema para acceder a las tablas de nuestra base de datos. El más sencillo y habitual es instalar en nuestro servidor un phpmyadmin, un grupo de páginas web que nos dan acceso a la información de nuestra base de datos. Para ello necesitaremos conocer varios detalles, como el
47 de 68
Miguel Rodríguez Martín – Marzo 2009 acceso ftp y la información de la base de datos. No entraremos aquí en eso porque sería demasiado extenso. El proceso Una vez que tenemos un phpmyadmin instalado accederemos con el a la base de datos de Joomla y a la tabla jos_users (el jos puede variar dependiendo de la instalación), haremos clic en Examinar y pulsaremos sobre el lápiz que aparece junto al registro del administrador para acceder a la modificación de sus datos. A continuación, borraremos los datos que aparezcan en el campo password y lo reemplazaremos con la nueva clave. Para que la clave se almacene correctamente debemos seleccionar en la lista de tipo de datos la opción MD5. De este modo la base de datos tomará nuestra clave y la almacenará con esta codificación.
Figura 4.6. Cambiando la clave de administrador Y ya está. La clave ha sido cambiada y podemos acceder como siempre con la nueva clave. Para hacer una comprobación podríamos entrar de nuevo en la tabla jos_users y veremos que nuestra clave ha desaparecido y se ha reemplazado por una serie de datos sin sentido para nosotros. Los candados en Joomla Fuente: conexionesrazonables.blogspot.com En ocasiones, trabajando en el backend de Joomla podemos encontrarnos con que alguna noticia o módulo aparece con un candado en su parte izquierda, bloqueando en ocasiones el acceso. Cada vez que alguien entra a editar un módulo o una noticia se coloca un candado para evitar que otra persona pueda modificarlo al mismo tiempo. Cuando terminamos la edición pulsando en los botones de Guardar, Aplicar o Cerrar Joomla da por finalizada la edición y retira el candado. Pero, ¿qué sucede si perdemos la conexión mientras estamos editando una noticia o si simplemente cerramos el navegador? Pues que el candado quedará permanentemente hasta que la persona que estaba editando la noticia vuelva a entrar y la cierre correctamente con alguno de los tres botones indicados. Los administradores cuentan con una posibilidad adicional, que es la de quitar todos los bloqueos existentes. Esto se hace desde los menús seleccionando la opción Herramientas>Desbloqueo global. Esto eliminará todos los bloqueos de un solo golpe. Cambiar el favicon de Joomla Fuente: conexionesrazonables.blogspot.com ¿Cómo puedo cambiar el icono que aparece en la barra de direcciones del navegador, el que aparece en los marcadores del navegador? El método es sencillo.
48 de 68
Miguel Rodríguez Martín – Marzo 2009 Sólo hay que crear un pequeño icono de 16x16, guardarlo como favicon.ico y colocarlo en la carpeta /images de Joomla. Para conseguir el icono hay varios métodos, usando programas de dibujo como Gimp para reducir una imagen hasta el tamaño indicado y guardarla en formato ico. Esto lo podemos hacer, por ejemplo, guardando la imagen en formato bmp y posteriormente renombrándola como .ico. Acelerar el back-end de Joomla! con Google Gears Fuente: http://www.leandrodonofrio.com/recursos/joomla/acelera-el-back-end-dejoomla-con-google-gears Los pasos a seguir para conseguir este aumento de velocidad son: 1. Descargar el paquete TurboGearsForJoomla1.5.x.zip, por ejemplo desde aquí. 2. Instalarlo en Joomla 1.5, desde Extensiones>Instalar/Desinstalar>Subir paquete. 3. Publicarlo desde Extensiones>Gestor de plugins:
Figura 4.7. Publicando la extensión de Google Gears 4. Una vez publicado, en unos cinco segundos aparece un enlace en la parte superior derecha de la barra de menús de administración:
Figura 4.8. Enlace de Google Gears 5. Al hacer clic en ese enlace, aparece una nueva ventana desde la cual podremos instalar el sistema Google Gears en nuestro equipo, haciendo clic en “Install Now”.
49 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 4.9. Instalación de Google Gears 6. Sólo tenemos que seguir las instrucciones para completar esta instalación en función del S.O. que estemos utilizando. Optimización del rendimiento y velocidad de Joomla Fuente: http://www.joomlaos.net/ Algunos consejos para que tu Joomla vuele y sea eficiente: 1. Habilita la "Cache" desde Global Configuration >> Cache. Debes tener escribible el directorio de Cache, por ejemplo /www/usuario/public_html/cache . Luego debes configurar la cantidad de segundos que ésta se refresca (se hacen consultas a la base de datos y se guardan en los archivos temporales de la cache de Joomla hasta que pase el tiempo configurado para que vuelva a actualizarse). 2. Habilita la "GZIP Page Compression" desde Configuración Global>Servidor. Para ésto, tu servidor debe tener habilitado el módulo Zlib. Esto se hace para que la salida de documentos enviados por HTTP sea enviada comprimida al navegador del cliente, y luego descomprimida por este (si es que en la petición HTTP soporta este tipo de codificación). Esto permite ahorrar transferencia en el servidor. 3. Utiliza templates livianos (de bajo peso en kb), con diseños sencillos y pocas imágenes externas, y en lo posible basado en Layers y validados como XHTML (Transitional) 4. No cargues tu portada con 20 o 30 módulos. 5. Optimiza las CSS y elimina los códigos que no se utilicen. 6. No recargues las páginas (contenidos) con demasiadas imágenes, elementos de multimedia, flash, etc.
50 de 68
Miguel Rodríguez Martín – Marzo 2009 7. No pegues demasiados códigos que tomen imágenes o javascripts desde otros servidores, esto ralentiza notablemente la carga, es decir cuando hay muchos elementos externos. 8. No formatees demasiado los contenidos desde el editor wysiwyg de Joomla, trata de arreglártelas con los estilos definidos en las CSS 9. No hagas páginas demasiado largas, es decir con mucho scroll hacia abajo. 10. Una página web optimizada para cargar relativamente rápido no debe tener más de 300 líneas de código (Su html generado, final), y no mayor a un peso de 12 kb 11. La suma del peso de las imágenes, hojas de estilo, Javascripts externos, flash, y todo elemento externo que carga en el HTML no debe sobrepasar nunca los 80 kb. 12. Evita las cosas innecesarias, depura el código fuente, elimina las etiquetas mal anidadas. Consejo: puedes llevarte a Dreamweaver el código fuente de lo que te ha generado el editor Wysiwyg de Joomla y limpiarlo mediante las herramientas de depuración y eliminación de etiquetas mal anidadas de Macromedia DW. 13. Respeta (o trata de hacerlo) las normas WAI y de W3C. Cuestiones de seguridad 7 truquitos para mejorar la seguridad de Joomla Fuente: conexionesrazonables.blogspot.com Traducidas a nuestro idioma y resumidas son las siguientes: No utilizar el prefijo predeterminado (jos_) para las tablas de Joomla en MySQL Eliminar, editando los archivos php si es necesario, el número de versión de los componentes, plugins, etc. Para no dar pistas, claro. Activar SEF para rescribir las URL del sitio. Mantener siempre los componentes y el propio portal actualizados. Utilizar los permisos de archivos correctos. Esta es interesante porque siempre suele haber dudas. Esto es lo correcto: o
PHP files: 644
o
Config files: 666
o
Other folders: 755
Asegurarse de eliminar los archivos que puedan quedar al eliminar cualquier complemento de Joomla. Tener un archivo .htaccess en condiciones. El artículo sugiere lo siguiente: ########## Begin - Rewrite rules to block out some common exploits # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] # Block out any script that includes a <> tag in URL RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL
51 de 68
Miguel Rodríguez Martín – Marzo 2009
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR] # Block out any script that tries to set CONFIG_EXT (com_extcal2 issue) RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR] # Block out any script that tries to set sbp or sb_authorname via URL (simpleboard) RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR] RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## End - Rewrite rules to block out some common exploits
Seguridad de Joomla Fuente: http://docs.joomla.org/Category:Security_Checklist A continuación se detallan algunas cuestiones de seguridad a tener en cuenta en Joomla! dividas por categorías. Comenzando Algunas cuestiones de seguridad generales a tener en cuenta en cualquier sitio web son las siguientes: Hacer copias de seguridad con frecuencia, programando un proceso regularmente de copias y recuperación de datos. Si esto se lleva a cabo, prácticamente nos aseguramos de poder recuperar nuestro sitio de cualquier desastre. Actualizar con frecuencia, a las versiones estables de Joomla! y de cualquier otro elemento que hayamos instalado en nuestro sitio web. Esto nos asegura estar protegidos frente a posibles vulnerabilidades, ya que, tan pronto como se detecta una, aparece una nueva versión que la subsana. Utilizar un servidor seguro, que afecte a toda nuestra infraestructura. A pesar del sencillo manejo de Joomla!, ésto no implica que el mantenimiento de la seguridad en un sitio web sea igual de fácil, tampoco quiere decir que exista una única manera de mantener un sitio web seguro. Es conveniente leer los manuales, foros,...sobre seguridad existentes en cada uno de los elementos que componen nuestro entorno web: servidor web, servidor de BD, sitio web,... Configuración del alojamiento y del servidor Configurar Apache Un elemento importante en la configuración de este servidor web es el fichero .htaccess. Esta opción no está disponible en todos los servidores, pero es muy útil, por ejemplo para establecer una contraseña para directorios críticos como los de administración, para restringir el acceso a dichos directorios a determinadas Ips. Joomla! incluye una configuración apropiada para este fichero, en un fichero llamado htaccess.txt. En el caso de querer utilizarlo, basta con renombrarlo a .htaccess y colocarlo en el directorio raíz del sitio web. Otra opción es utilizar los filtros mod_security (permite establecer reglas de filtrado como si se tratara de un firewall) y mod_rewrite (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para así
52 de 68
Miguel Rodríguez Martín – Marzo 2009 engañar a los navegantes o a los motores de búsqueda en cuanto a como fueron desarrolladas estas páginas) para bloquear ataques de PHP. Configurar MySQL La instalación inicial de MySQL es insegura y requiere de una configuración de seguridad mínima: root sin contraseña,... Configurar PHP Algunas de las tareas interesantes, relacionadas con la seguridad, a realizar cuando se trabaja con PHP son: o
Es importante tener el control del fichero de configuración php.ini para poder ajustar la seguridad de PHP a nuestras necesidades. En servidores compartidos (como los de cualquier ISP) no se puede editar este fichero, pero si se puede configurar el servidor web para que utilice ficheros php.ini locales a cada sitio web. Para ello, basta con incluir el php.ini en el directorio indicado por la directiva http_root_directory.
o
Utilizar la directiva disable_function del fichero php.ini para deshabilitar funciones peligrosas para PHP que no se necesitan en el sitio web. Por ejemplo: disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo
o
Utilizar open_basedir, ya que limita los ficheros que pueden ser abiertos únicamente a los especificados por esta directiva: open_basedir = /home/users/you/public_html
o
No utilizar register_globals y desactivarlo en el caso de que esta directiva esté habilitada.
o
...
Crear y probar antes de colocar en producción un proceso regular de copias de seguridad y recuperación de datos. Desarrollo y pruebas Algunos puntos que afectan positivamente a la seguridad final de nuestro sitio web, durante su proceso de desarrollo y pruebas son: Realizar todos los desarrollos de forma local y después de probar todos los cambios realizados exhaustivamente, trasladar dichos cambios a producción, evitando errores que puedan afectar al entorno público del sitio. Utilizar un IDE (entorno de desarrollo integrado). Un IDE muy utilizado por los desarrolladores de Joomla! es Eclipse. Utilizar un sistema de versiones (CVS) para llevar un control y un historial de todos los cambios que van “sufriendo” nuestro proyecto. Algunos ejemplos de CVS son: Subversión, git,... En esta lista se detallan programas interesantes a utilizar con este fin: http://forum.joomla.org/index.php/topic,25307.0.html Configuración de Joomla Instalar versiones oficiales de Joomla!, descargándolas se sitios oficiales. Actualizar siempre a las últimas versiones estables.
53 de 68
Miguel Rodríguez Martín – Marzo 2009 Utilizar herramientas como Joomla Diagnostics para comprobar si todos los ficheros se han instalado correctamente. Cambiar el nombre por defecto del administrador de Joomla! (admin). Este simple paso incrementa la seguridad del sitio en un 50%. Se debe cambiar rápidamente y con frecuencia. Quitar de la carpeta pública del sitio el fichero configuration.php. Ajustar correctamente los permisos de los directorios y ficheros: pasar de los permisos por defecto 755 a 644. Antes de instalar extensiones de Joomla!, es conveniente realizar un backup del sitio web y de la BD del mismo. o
La mayoría de las vulnerabilidades de seguridad vienen provocadas por las extensiones. Hay listas y foros de extensiones vulnerables (http://search.securityfocus.com/swsearch?query=joomla&sbm=bid&sub mit=Search%21&metaname=alldoc&sort=swishlastmodified).
o
Descargar las extensiones desde sitios oficiales.
o
Testear todas las extensiones en un entorno de pruebas antes de subirlas al entorno de producción.
Usar servidores SSL para alojar el sitio web. ... Administración del sitio Utilizar passwords bien formadas (combinación aleatoria de letras, números y símbolos), cambiarlas periódicamente, no utilizar palabras que estén el diccionario. Mantener un proceso de backup consistente (aparte del que pueda tener el ISP). Monitorizar y controlar los posibles ataques a nuestro sitio con las herramientas adecuadas: TripWire, SAMHAIN,... Utilizar sistemas de detección/prevención de intrusiones y de bloqueo de peticiones http maliciosas. Utilizar shell scripts para automatizar ciertas tareas de seguridad. Recuperación del sitio Si se descubre una vulnerabilidad real es conveniente avisar de la misma a Joomla! Security Task Force (http://developer.joomla.org/security/contact-theteam.html). Después de un ataque administrador de Joomla!.
es
imprescindible
restaurar
la
contraseña
de
Si se descubre un bug en los ficheros del núcleo de Joomla es conveniente avisar del mismo en la dirección http://dev.joomla.org/content/view/1450/89/.
54 de 68
Miguel Rodríguez Martín – Marzo 2009 ¿Cómo mantener un sitio seguro Joomla!? Fuente: http://ayuda.joomlaspanish.org/content/view/212/94/ 1. Lo más importante Usar un host web confiable, con un buen soporte de registros. Asegurarse que el host mantenga su servidor lo más seguro posible y que los scripts básicos del servidor (PHP, MySQL, paneles de control, phpMyAdmin, etc.) estén actualizados a las últimas versiones estables. Algunos hosts actualizan a versiones beta y RC. Estas son actualizaciones previas a las versiones estables, lo cual significa la posibilidad de que existan fallos y vulnerabilidades. Recuerde, que si su espacio de servidor es vulnerable, los hackers podrán entrar. Muchas brechas de seguridad que han sido descritas, no tienen nada que ver con Joomla! y están relacionadas con otros programas que se están ejecutando en el servidor. 2. Asegurarse de eliminar el directorio de instalación. Joomla! le recuerda que elimine el directorio de instalación una vez que la instalación esté completa. Si no elimina el directorio de instalación, no podrá utilizar Joomla!, ya que de otro modo su sitio sería vulnerable (cualquiera podría entrar y utilizarlo). 3. register_globals=OFF. La característica register_globals=ON ha sido desaprobada en PHP. Esta es la fuente de muchos ataques a servidores. Joomla! no necesita register_globals=ON, pero algunas extensiones sí. Pregunte a su proveedor de hosting para hacer el cambio de su servidor a register_globals=OFF. Esto protege no solo su instalación de Joomla!, sino a todo script que se ejecute en su servidor y que pueda ser afectado por las globales. Si su host no hace el cambio para desactivarlas, existe una forma en que usted mismo puede hacerlo. Consulte el artículo 'Guía de Manejo de Archivos .htaccess'. Si está usando un componente, módulo o cualquier cosa que necesite register_globals=ON, contacte con el desarrollador y pregúntele si lo va a modificar, o si es existe algún parche para esto. Si no existe un parche disponible, considere si realmente necesita usar esa extensión de Joomla! y si no existe una alternativa más segura. 4. Cuando la instalación configuration.php-dist.
esté
completa,
elimine
el
archivo
El archivo configuration.php-dist no es necesario tras la instalación. Sin embargo es tenido en cuenta por los motores de búsqueda. Google actualmente dirige 12,600 enlaces hacia configuration.php-dist. Si quiere anunciar que su sitio es Joomla!, simplemente déjalo allí, los hackers se lo agradecerán por hacerles saber donde encontrarlo. 5. Si posee los conocimientos o puede contactar a alguien que los tenga – mueva su configuration.php fuera de su espacio público. El archivo configuration.php no necesita estar en su espacio de http o www para ejecutarse. 6. Nuevamente, solo para usuario expertos – Cambie de nombre a la carpeta 'Administrator'. Esto requiere modificaciones considerables en el núcleo del sistema, cambiando cada referencia hacia el directorio, pero supone una mayor seguridad.
55 de 68
Miguel Rodríguez Martín – Marzo 2009 7. Estar seguro de no utilizar como nombre de usuario 'admin' para entrar al Administrador (Back-end). Escoja un nombre único para su login y asegúrese de usar una contraseña segura, preferiblemente de 8 caracteres, mezclando letras, números y otros caracteres. Note que no es una buena idea utilizar $ en cualquier contraseña, ya que MySQL puede confundirse con ello. Otros caracteres como !^()>< etc. son correctos para una contraseña. 8. No deje los permisos de configuration.php en 777. El archivo configuration.php debe ser escribible cuando desee hacer cambios a través del Administrador de Joomla!. Tan pronto haya terminado sus cambios, regrese los permisos a 644. Si realiza los cambios directamente en el archivo nunca cambie los permisos de 644. 9. Proteja su directorio 'administrator' con una contraseña. Esto puede realizarse fácilmente usando cpanel o cualquier otro panel de control del servidor. Solo seleccione “Proteger Directorio” y seleccione la carpeta 'administrator'. Esto automáticamente agrega la información necesaria al archivo de contraseñas del servidor y al archivo .htaccess. 10. Utilice FTP seguro cada vez que ingrese a su sitio vía FTP. La mayoría de hosts ofrecen OpenSSL o alguna otra forma gratuita de usar SSL. Cuando se conecta usando un FTP no seguro, su contraseña y usuario no están protegidos. Cualquiera que monitoree su IP puede ver fácilmente su nombre de usuario y contraseña. Muchos clientes FTP gratuitos permiten el acceso a través de SSL (capa segura de conexión). 11. Suscríbase a los anuncios de seguridad vía mail. Así recibirá una notificación vía mail sobre cada Nuevo parche o arreglo de seguridad. 12. Actualice el sitio con los parches de seguridad tan pronto como sea posible. Algunos arreglos de seguridad son simples cambios en el código y otros requieren bajar e instalar archivos. Recuerde que los anunciantes de seguridad, como Secunia, muchas veces contienen enlaces a sitios que reportan vulnerabilidades. Cuando una vulnerabilidad es publicada en algún lugar, todo el mundo puede ver donde se encuentra el fallo. De tal forma que, si los hackers no han la han encontrado, los anunciantes estarán dando un buena idea de lo que buscar. 13. Asegurar su archivo .htaccess de ojos curiosos. Este es un simple paso de seguridad que ayuda a proteger todo su servidor, no solo la instalación de Joomla!. En todos sus archivos .htaccess agrege lo siguiente: <Files .htaccess> order allow,deny deny from all </Files> Cambie los permisos de sus archivos a 664 (chmod 644) Esto se debe realizar en cada .htaccess que utilice.
56 de 68
Miguel Rodríguez Martín – Marzo 2009 14. Proteja su directorio 'administrator' con SSL. Primero, revise si su host tiene OpenSSL y mod_ssl configurado para su cuenta. Si no han hecho esta actualización todavía, la deberían agregar por usted. En caso de que lo necesite realizar usted mismo, estos links le pueden ayudar: http://www.openssl.org y http://www.modssl.org/docs/ Asumiendo que tiene instalado el mod_rewrite en su servidor, puede asegurar que los usuarios que traten de ingresar a la sección administrativa de Joomla! sean forzados a utilizar una conexión con SSL. Para realizar esto, edite el archivo .htaccess que se encuentra dentro de la carpeta 'administrator'. Agrege las siguientes líneas a su archivo .htaccess: RewriteEngine On RewriteRule ^/$ /index.php RewriteCond %{SERVER_PORT} !443$ RewriteRule ^(.*) <a href="https://yourhost.com/administrator/$1">https://yourhost.com/admi nistrator/$1</a> [R=301,L] Esto crea una sesión encriptada antes de que sea solicitado el usuario y contraseña del administrador de Joomla!. De tal forma que, si alguien esta realizando un ataque de sniffing contra su servidor con la esperanza de capturar el usuario y la contraseña en texto claro, simplemente no podrán ver la información 15. Restringir el acceso al directorio 'administrator'. Ya hemos tratado como proteger su directorio de administración mediante una contraseña, y también hemos dado las pautas de como usar SSL para protegerlo. Si realmente quiere fortalecer más el acceso al Administrador (Back-end), también puede usar mod_access a través de su archivo .htaccess de la carpeta 'administrator' para permitir el acceso únicamente a ciertos IP. Primero, revise si tiene instalado mod_access (normalmente es así, pero es una buena idea revisar). Puede agregar alguna protección incluyendo lo siguiente al archivo .htaccess de su administrador. Este archivo .htaccess se encuentra dentro de la carpeta 'administrator'. NO REALICE estos cambios en el archivo .htaccess de la raíz del sitio o bloqueará a todos los usuarios, y no podrán acceder a su sitio Si esta usando IP dinámicos (es decir no estáticos), puede denegar el acceso a todos menos a una porción del dominio de su proveedor de servicio de Internet (ISP): Order Deny,Allow Deny from all Allow from tu_isp.com Esto le dice a mod_access que el acceso solo es permitido desde 'su_isp.com' lo cual ayuda a bloquear el sitio, PERO incluye la posibilidad de que otros tengan acceso a su directorio de administración usando 'su_isp.com'. Usted tiene que tomar la decisión sobre este nivel de riesgo. Puede bloquear el directorio con cualquier bloque de direcciones IP que su proveedor de Internet le asigne, por ejemplo: Order Deny,Allow Deny from all Allow from 69.1.0.0/255.255.0.0
57 de 68
Miguel Rodríguez Martín – Marzo 2009 Nota: Agregando el bloque de IP con la máscara previene problemas con los cambios en su IP dinámica. Sin un rango de IP, corre el riesgo de ser bloqueado cuando su ISP cambie a IP. De nuevo, permitir el acceso al bloque significa que existe el riesgo de que cualquier persona usando un IP de ese bloque pueda tener acceso a su directorio. Si está usando IP estáticos, solo agregue: Order Deny,Allow Deny from all Allow from 216.239.37.99 (Donde 216.239.37.99 es su dirección IP estática). Cuando tiene más de un usuario administrador, simplemente agregue más directivas “Allow” con sus respectivas direcciones IP. 16. Back-up, Back-up, Back-up! Toda la seguridad del mundo no le ayudará si un avión se estrella contra el edificio donde se encuentra su servidor. ¡LOS BACKUPS DEBEN TENER UNA ALTA PRIORIDAD! (no tenga en cuenta el orden de cada uno de los epígrafes de este artículo, ya que no hacen referencia a su prioridad). Si utiliza un host que dice que realiza backups (copias de respaldo), asegúrese de conocer exactamente qué es lo que guardan en los backups, con qué frecuencia lo hacen, cuanto tiempo mantienen los backups previos, y donde se almacenan. Existen muchas historias de terror sobre hosts que ofrecen backups, en las que el cliente se entera más tarde que el backup no incluye ninguna base de datos (o un caso peor, como el de un cliente cuyo host solo obtenía los backups de los html, lo cual dejaba sin backup todos los scripts, archivos PHP y base de datos). No deje el backup en el servidor. Si el servidor es golpeado por un avión, pierde todo. Ciertamente, sabemos que los centros de datos raramente son golpeados por aviones, pero no hace mucho tiempo un centro de datos en Inglaterra fue alcanzado por una explosión de aceite y todos los servidores (y backups) fueron quemados. Los accidentes pueden pasar. Incluso el mantenimiento de un servidor tiene riesgos. ¿Con qué frecuencia se debería realizar el backup? Eso depende de cuanta información este dispuesto a perder. También depende de cuanto tiempo esté dispuesto a perder en reconstruir su sitio. Para la mayoría de sitios, un backup semanal es suficiente. Si su host no incluye un backup completo una vez a la semana (almacenado en otro centro de datos), hágalo usted mismo y guárdelo en su máquina. Esto le asegura no perder todo. En el caso de que su sitio sea hackeado, es fácil restaurqlo al último backup seguro. Esto también significa que puede comparar los archivos para ver que cuales fueron los cambios realizados por los hackers. 17. Hágale difícil a los hackers, el encontrar su sitio. Esto ya se ha explicado un poco en los puntos anteriores. Los hackers dedicados no necesitan encontrar su sitio, todo lo que necesitan es escribir un bot y soltarlo en Internet con la esperaza que tarde o temprano el bot encuentre un sitio inseguro que atacar. Por lo tanto, cuando vea en entradas log de intentos fallidos para explotar cosas como register_globals, esto no significa que alguien deliberadamente esta atacando su sitio, puede ser que así sea, pero normalmente significa que existe un bot que se encuentra viajando. Los sitios estáticos que no tienen nada que ver con los CMS también reciben estos intentos en sus logs.
58 de 68
Miguel Rodríguez Martín – Marzo 2009 No obstante, los hackers casuales y scripts insidiosos pueden tener varias ideas de cómo hackear un sitio realizado con Joomla! si pueden identificar claramente un objetivo. Sugerencia: Elimine cualquier cosa de la página pública que identifique su sitio como un sitio realizado con Joomla!. Cosas como la información del pie de la pagina. Reemplázala con su propia información. Google muestra 6.88 millones de razones por lo cual es una buena idea: http://www.google.com/search?hl=en&q...re+released%22 Efectúe una búsqueda en Google con la sentencia: inurl:administrator “bienvenido a Joomla!”; y podrá ver 18,700 resultados, los cuales no solo le dicen a cualquiera que busque donde se encuentra el directorio de administración, sino que muchas veces permite ver a cualquiera la versión que está ejecutando.
59 de 68
Instalación, administración y migración de un portal web: JOOMLA
Miguel Rodríguez Martín – Marzo 2009
5. MIGRACIÓN De Joomla! 1.0.x a Joomla! 1.5.x
Marzo 2009 Miguel Rodríguez Martín 60 de 68
Miguel Rodríguez Martín – Marzo 2009 Migrando Joomla! Fuente: http://www.joomlaspanish.org/foros/showthread.php?t=6216 Fuente: http://www.joomlashine.com/index.php?option=com_content&task=view&id=27&It emid=5 Fuente original: http://docs.joomla.org/Migrating_from_1.0.x_to_1.5_Stable Joomla! 1.5 no proporciona una actualización desde versiones previas. La conversión de un sitio antiguo a Joomla! 1.5 requiere la creación de un nuevo sitio desde cero, usando Joomla! 1.5, y luego trasladar el contenido del sitio antiguo al nuevo sitio creado. Esta migración de contenido no es un proceso directo e implica conversiones y modificaciones del contenido de origen. Existen dos métodos para realizar la migración: 1. Un método de migración automatizado, que utiliza un componente de migración para crear el volcado de contenido del sitio antiguo y una función de importación inteligente incluida en la Instalación de Joomla! 1.5 que ejecuta las conversiones y modificaciones necesarias durante del proceso de instalación. 2. La migración también se puede realizar manualmente. Esto implica exportar las tablas requeridas, ejecutar las conversiones y modificaciones necesarias manualmente y luego importar el contenido al nuevo sitio, una vez esté instalado. A continuación realizamos una descripción detallada del primer método por ser más sencillo y directo. Migración Automatizada Este es un proceso en dos fases y que utiliza dos herramientas. La primera herramienta es un componente de migración llamado ‘com_migrator’. Este componente ha sido aportado por Harald Baer y está basado en su componente ‘eBackup’. Este componente de migración debe instalarse en el sitio antiguo y ejecutarlo para crear el volcado de exportación. La segunda herramienta forma parte del proceso de instalación de Joomla! 1.5. Esta herramienta carga el volcado de contenido exportado en el nuevo sitio y ejecuta ‘al vuelo’ todas las conversiones y modificaciones necesarias. Paso 1.Volcado con el Componente ‘com_migrator’. 1. Descargar el componente ‘com_migrator’. 2. Instalar el componente en el sitio antiguo.
61 de 68
Miguel Rodríguez Martín – Marzo 2009
Figura 5.1. Instalación del componente ‘com_migrator’
Figura 5.2. Instalación correcta del componente ‘com_migrator’ 3. Seleccionar el componente en el menú de componentes del administrador.
Figura 5.3. Selección del componente ‘com_migrator’
62 de 68
Miguel Rodríguez Martín – Marzo 2009
4. Hacer clic en el enlace ‘Create Migration SQL File’. Al hacerlo aparecerá una ventana intermedia donde debemos indicar qué plugins queremos que entren en la migración.
Figura 5.4. Selección de plugins para la migración Pulsar el icono de descarga del archivo de exportación y almacenarlo localmente.
Figura 5.5. Proceso de migración completado con éxito 5. Los datos exportados no sufren modificaciones de ningún tipo, preservando el código original. Esto hace que también se recomiende la herramienta ‘com_migration’ para el método de migración manual. Paso 2. Migración asistida en la Instalación de Joomla! 1.5. 1. En el paso 6 de la instalación (‘Configuración’) seleccionar la opción ‘Cargar Script de Migración’ (opción 3) en la sección ‘Cargar Datos de Ejemplo, Restaurar o Migrar el contenido de una Copia de Respaldo (Back up)’. 2. Introducir el prefijo de tabla utilizado en el contenido de origen. Por ejemplo, se aceptan los valores ‘jos’ o ‘jos_’.
63 de 68
Miguel Rodríguez Martín – Marzo 2009 3. Seleccionar la codificación del volcado de contenido en la lista desplegable. Esta debería ser la codificación usada en las páginas del sitio antiguo (el valor de la variable _ISO del archivo de idioma o el que se muestra en la información/código/fuente del navegador). 4. Seleccionar, en la ubicación local, el volcado de migración y pulsar ‘Subir y Ejecutar’.
Figura 5.6. Cargando el script de migración 5. Se mostrará un mensaje informando del éxito de la operación o en su caso una lista de errores db.
Figura 5.7. Migración realizada con éxito 6. Completar los campos: ‘Nombre del Sitio’ y detalles del ‘Administrador’, solicitados en el paso ‘Configuración’ y continuar hasta el último paso de la instalación (los datos del Administrador pueden ignorarse ya que tomarán
64 de 68
Miguel Rodríguez Martín – Marzo 2009 prioridad los datos del contenido migrado. Por favor, recuerde el nombre y la contraseña del administrador del sitio antiguo). - ¿Qué hace la migración automatizada? 1. Migra todos los registros del contenido del núcleo en la base de datos (ejemplo: contenido, enlaces web, banners, contactos, noticias externas, encuestas y usuarios). 2. Reconstruye los menús en la nueva estructura de menús con los artículos de menú que enlazan a contenido del núcleo. 3. Traslada todos los registros de módulos del núcleo desde el sitio antiguo a las tablas de módulos del nuevo sitio. Los registros originales de los módulos se establecen como ‘No publicados’. Se conservan todos los ajustes de configuración. El usuario necesitará reconfigurar los ajustes de posición, orden y publicación. - ¿Qué no hace la migración automatizada? 1. No migra los contenidos que no están incluidos en la base de datos, como las imágenes de banners, archivos, fotos…
65 de 68
Instalación, administración y migración de un portal web: JOOMLA
Miguel Rodríguez Martín – Marzo 2009
6. ENLACES Y RECURSOS ÚTILES Joomla! 1.5
Marzo 2009 Miguel Rodríguez Martín 66 de 68
Miguel Rodríguez Martín – Marzo 2009 Enlaces Sitios oficiales http://www.joomla.org/ http://www.joomlaspanish.org/ http://comunidadjoomla.org/ http://demo.joomla.org/ General http://docs.joomla.org/ http://joomlacode.org/gf/download/frsrelease/8455/31279/Guiadeiniciorapidop araelusuariodeJoomla1.5.pdf http://joomlacode.org/gf/download/frsrelease/8611/31800/manual_plantillas_jo omla_15.pdf http://ayuda.joomlaspanish.org/ http://www.slideshare.net/lbarriocanal/joomla-15-paraprincipiantes?src=embed http://help.joomla.org/component/option,com_wrapper/Itemid,253/ http://conexionesrazonables.blogspot.com/2008/11/joomla-toobox-la-caja-deherramientas.html Foros http://forum.joomla.org/ http://www.joomlaspanish.org/foros/ http://www.forosdelweb.com/f119/ Migración http://docs.joomla.org/Migrating_from_1.0.x_to_1.5_Stable Ampliar Joomla! http://extensions.joomla.org/ http://extensiones.joomlaspanish.org/index.php http://extensions.joomla.org/component/option,com_mtree/task,listpopular/cat _id,0/Itemid,35/ Plantillas http://www.joomlaos.de/set_albumName,album03/option,com_gallery/Itemid,3 7/include,view_album.php.html http://www.joomlahacks.com/joomla/templates/0,0,0,0,9,0,8/ http://www.joomla24.com/option,com_gallery/Itemid,6.html
67 de 68
Miguel Rodríguez Martín – Marzo 2009 Seguridad http://www.marcofolio.net/joomla/7_tips_to_optimize_joomla_security.html http://docs.joomla.org/Security_and_Performance_FAQs#Why_should_I_imme diately_change_the_name_of_the_default_admin_user.3F
68 de 68