2. Índice de contenido
Copyright (c) 2011 ....................................................................................................................................4
Historial de Cambios .................................................................................................................................5
Introducción ..............................................................................................................................................6
Capítulo I ...................................................................................................................................................6
Sistemas de Gestión de Contenido .......................................................................................................6
▪ ¿Por qué un Sistema de Gestión de Contenido? ............................................................................6
. Tiempo............................................................................................................................................6
. Seguridad........................................................................................................................................7
¿Es más seguro desarrollar desde cero el Sitio Web o montarlo sobre un CMS? ................................7
. Escalabilidad...................................................................................................................................8
. Facilidad de uso, administración y mantenimiento........................................................................8
. Independencia del desarrollador.....................................................................................................8
. Economía........................................................................................................................................9
. Calidad. ..........................................................................................................................................9
▪ Ok, ahora... ¿Por qué Joomla!? .....................................................................................................9
Otras ventajas: ...............................................................................................................................10
Premios ..........................................................................................................................................11
. Características de Joomla! ...........................................................................................................12
Capítulo II ...............................................................................................................................................13
Instalando Joomla! en un entorno local ..............................................................................................13
▪ Requerimientos técnicos de Joomla! ...........................................................................................13
• Componentes Adicionales ...........................................................................................................13
• Instalación y configuración del Servidor Web Apache . .............................................................13
▪ Instalación y Configuración del Servidor de Bases de Datos MySQL. ......................................16
▪Instalación y Configuración del Intérprete del Lenguaje PHP .....................................................16
. Crea la base de datos ....................................................................................................................18
. Instalación de Joomla. .................................................................................................................21
• Tour por el nuevo sitio web .........................................................................................................28
Capítulo III ..............................................................................................................................................29
Administración de Joomla! ................................................................................................................29
▪ Panel de Control ..........................................................................................................................29
• Gestión del Menú ........................................................................................................................32
• Gestión del Contenido .................................................................................................................35
• Gestión de Extensiones ...............................................................................................................39
Instalar extensiones ............................................................................................................................39
Gestión de módulos ............................................................................................................................40
Gestión de Plugins ..............................................................................................................................41
Gestión de Plantillas ...........................................................................................................................42
Gestión de Idiomas .............................................................................................................................43
2
3. Capítulo IV ..............................................................................................................................................44
Optimizando el Sitio Web ...................................................................................................................44
Optimización para motores de búsqueda y URLs amigables (SEF/SEO). ....................................44
Respaldo y Restauración. ..................................................................................................................45
Seguridad Básica. ...............................................................................................................................47
Glosario de Términos .........................................................................................................................48
3
4. Copyright (c) 2011
Jesús Israel Contreras Urquiola.
Permiso para copiar, distribuir y/o modificar este documento bajo los términos de la GNU Free Documentation License,
Versión 1.2 o cualquier versión posterior publicada por la Free Software Foundation; sin secciones invariantes, sin textos de
portada y sin textos de contraportada.
Se incluye una copia de la licencia en la sección titulada “Licencia de Documentación Libre GNU”, sino puede escribir a la
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA o visite la página
http://www.gnu.org/licenses/fdl.html.
4
5. Historial de Cambios .
Mayo, 2011 Versión 1.0 Publicación Inicial del Documento
5
6. Introducción
Haber creado un proyecto por iniciativa de la comunidad, a raíz de que la empresa que patrocinara un
popular Sistema de Gestión de Contenido, comenzara a tomar decisiones arbitrarias con respecto al futuro de la
aplicación y haber desarrollado mejoras sustanciales al software original, al punto de llegar a reescribir
totalmente el código y hacerlo 100% libre, ha hecho, entre otras cosas que Joomla se haya convertido en uno de
los CMS más populares en la actualidad.
Este taller pretende introducir al participante en los conocimientos básicos necesarios para una
implementación exitosa de un sitio web basado en Joomla. Así como también su posterior administración y
mantenimiento.
El siguiente taller ha sido diseñado con las mejores prácticas y entornos más seguros, profesionales y
eficientes. Los ejemplos han sido creados usando aplicaciones y sistemas operativos libres basados en
GNU/Linux.
Capítulo I
Sistemas de Gestión de Contenido .
▪ ¿Por qué un Sistema de Gestión de Contenido?
En la actualidad desarrollar sitios web de calidad es una tarea que conlleva una importante cantidad de
tiempo, trabajo y dedicación. También depende mucho de las características y alcance del proyecto, pero es
probable que en la mayoría de los casos, desarrollar el sitio web sobre una plataforma de gestión de contenidos
sea una buena decisión.
A continuación veremos algunas razones para usar Sistemas de Gestión de Contenidos en lugar de
desarrollar una solución desde cero para nuestro proyecto Web. Pero no sólo usar un CMS, es importante.
También lo es asegurarse de que sea software libre, que podamos modificarlo completamente a nuestras
necesidades sin restricciones y que tengamos una importante comunidad detrás de la aplicación.
. Tiempo.
En todos los proyectos – de cualquier índole – juega siempre un papel preponderante el factor tiempo.
Los proyectos informáticos y más específicamente la implementación de un sitio web no escapan a ello.
6
7. Desarrollar un sitio web programando todo desde cero tomará una importante cantidad de tiempo, que
bien pudiera invertirse en perfeccionar otros aspectos de alta relevancia en el proyecto, como la seguridad, por
ejemplo.
Usar un sistema de gestión de contenido nos ahorrará una increíble cantidad de tiempo, incluso tomando
en cuenta la curva de aprendizaje inicial para alguien que no conozca la herramienta.
Adicionalmente, luego de su implementación, seguirá siendo nuestro aliado ahorrándonos
considerablemente, tiempo en tareas de administración, mantenimiento y actualización.
. Seguridad.
En este punto es interesante profundizar, ya que hay muchas opiniones encontradas al respecto. Vale la
pena comenzar por la pregunta que probablemente en algún momento te has hecho:
¿Es más seguro desarrollar desde cero el Sitio Web o montarlo sobre un CMS?
Algunas respuestas podrían ser...
“Los CMS son más inseguros porque el código está disponible y cualquiera puede verlo y comenzar a
atacarlo”, “un sitio web desarrollado desde cero por ti mismo es más seguro, porque sólo tú conoces la lógica del
programa” y otras. Pero lo cierto es que hoy en día, para la puesta en marcha de un sitio web es casi indiscutible
que basarlo en un CMS es mucho más seguro. ¿Las razones?
a) Una gran cantidad de expertos a nivel mundial aportan horas de trabajo en torno a desarrollos
colaborativos de sistemas de gestión de contenido, esto hace que la aplicación esté bajo la supervisión
exhaustiva de todos los desarrolladores involucrados en el proyecto a nivel mundial y que los errores
puedan detectarse y ser corregidos rápidamente. Muchas personas piensan y dicen: “eso es muy
inseguro, a cada rato sacan una actualización de seguridad”. Todo lo contrario, precisamente, lo
dicho anteriormente garantiza que los errores sean corregidos de forma temprana, esto es posible en el
software libre. En este punto pudiera salir un distraído diciendo: “Bueno, pero si es así, Windows
también saca actualizaciones de seguridad a cada rato” - Sí, el punto fundamental es que ni usted, ni
yo conocemos, ni podemos conocer el código fuente de ese sistema operativo, muy por el contrario, los
sistemas de gestión de contenido en software libre son auditados por cualquier persona, en cualquier
lugar del mundo, así mismo todas y cada una de las actualizaciones de seguridad, en el caso de esas
actualizaciones del SO, no se nos permite conocer qué hace realmente esa actualización y eso aplica para
TODO el software privativo.
b) Al ser un sistema de gestión de contenidos en software libre, seguramente la herramienta será bastante
madura y estable, debido a los altos niveles de uso y al constante desarrollo por parte de la comunidad.
7
8. Un sitio web hecho desde cero será un código sólo conocido por una sola o pocas personas y necesitaría
de mucho tiempo o muchas desarrolladores para convertirse en una herramienta versátil, madura y
estable.
c) Es muy poco común en las organizaciones un departamento exclusivamente dedicado a la seguridad de
la información. Implementando un sitio web sobre un sistema libre de gestión de contenido, los
desarrolladores de la herramienta harán este trabajo por usted, ya que la mayoría tienen equipos de
trabajo enfocados a trabajar constantemente en pruebas de seguridad, reportarlas y corregirlas.
Adicionalmente estarán todo el resto de los usuarios que usan la misma herramienta y que al detectar y
reportar una falla por alguno de ellos toda la comunidad se beneficia.
. Escalabilidad.
La mayoría de los sistemas de gestión de contenido en software libre son sumamente escalables, esto
quiere decir que usted puede fácilmente aumentar la funcionalidad de la herramienta y adaptarla a sus
necesidades específicas, regularmente a través de un sistema de plugins o extensiones que permiten que usted
pueda, precisamente, extender la funcionalidad original de la aplicación e instalar otras pequeñas aplicaciones,
en algunos casos, modificarla hasta convertirla en una aplicación para otro propósito.
. Facilidad de uso, administración y mantenimiento.
Regularmente cuando un sitio web es desarrollado desde cero no implementa una interfaz para
administrar y mantener el sitio, sino que la actualización del mismo es directamente sobre el código fuente, lo
que se traduce en un mayor consumo de tiempo en dichas tareas. Por el contrario, contar con un sistema de
gestión de contenidos libres, nos brindará la oportunidad de administrar, mantener y actualizar el sitio web de
una forma fácil, rápida y transparente para el usuario, es decir, no será necesario tener conocimientos de
programación para ejecutar estas acciones.
. Independencia del desarrollador.
Cuando se implementa un sitio web desarrollado desde cero, regularmente es por iniciativa de una (01)
persona, en algunos casos dos (02); luego de invertir una inmensa cantidad de tiempo en el proyecto y colocarlo
finalmente en producción, existe la probabilidad, a veces muy frecuente, de que la persona que desarrolló el sitio
web, por una u otra razón, deje la empresa o institución y casi el 100% de los casos nunca se deja un manual o
centro de conocimiento respecto a la implementación, desarrollo y mantenimiento del sitio. Por lo tanto la lógica
del desarrollo sólo la conocía la persona que ya no está y toda la empresa o institución queda dependiente de esa
única persona y se encuentra atada y sin poder darle continuidad a la cara digital de la organización. Al final de
cuentas entra otra persona a tomar el cargo y al tener presente la misión de darle mantenimiento a un sitio web
cuya lógica y código no son de él, tendría que optar por dos soluciones, básicamente: invertir una importante
cantidad de tiempo en entender la lógica de la persona que se fue y poder seguir desarrollando y actualizando
ese sistema o crear un nuevo desarrollo. Ambas son contraproducentes para la organización.
8
9. . Economía.
Con bastante regularidad las aplicaciones de Software Libre, además de otorgar libertad a los usuarios
son también gratuitos, esto no es necesario que así sea, pero las empresas u organizaciones que están detrás de
dichos productos prefieren basar su modelo de negocios en alternativas más éticas e igual de productivas, como
por ejemplo, vender consultoría, soporte, desarrollo, servicios, etc.
Al elegir un CMS en Software Libre usted no sólo estará ahorrando tiempo de implementación en su
proyecto web, sino también la importante cantidad de dinero que implicaría adquirir una prometedora aplicación
de software en una caja y un disco muy llamativo o bien el costo de muchas horas de desarrollo si se decide por
una solución desde cero.
. Calidad.
Aquí entran todas las características de calidad propias de un modelo de desarrollo colaborativo, típico
en el Software Libre. Como ya sabemos, un proyecto de desarrollo libre en forma colaborativa está integrado, a
menudo, por un equipo multidisciplinario de profesionales voluntarios impulsados por un objetivo común, esto
hace que el software sea de gran calidad y que se discutan entre todos las mejores prácticas y el mejor destino de
la aplicación. Es decir, las decisiones o enfoques no quedan en manos de unos pocos pertenecientes a una
organización privada, sino que son discutidas entre todo el equipo de desarrollo. Esto, unido a todo lo
anteriormente mencionado hace que un Sistema de Administración de Contenido Libre sea un producto de gran
calidad. Básicamente, como ya dijimos, las ventajas propias del desarrollo de Software Libre en forma
colaborativa.
▪ Ok, ahora... ¿Por qué Joomla!?
Ya vimos las ventajas de usar un sistema de gestión de contenido (cms) libre, en lugar de implementar un
sitio web desde cero. Pero aún queda una importante discusión: ¿Cuál sistema de gestión de contenido puedo
usar?
Joomla es un Sistema de Gestión de Contenido de Software Libre, escrito en PHP bajo licencia GPL.
Desde sus inicios en Agosto del 2005 hasta Enero del 2008 Joomla fue un fork [1] de Mambo que incluía
sustanciales mejoras en el software y con la visión de ser un proyecto 100% libre.
__________________
1 Es un término en inglés para describir una bifurcación de un proyecto de software, que regularmente resulta en una copia mejorada de la
aplicación original, bajo un nuevo nombre y equipo de desarrollo.
9
10. Hoy en día Joomla se ha separado totalmente del código de Mambo y se ha reescrito la aplicación
totalmente, incluyendo paradigmas de orientación a objetos con PHP5, Ajax, abstracción de base de datos,
soporte a LDAP, caché mejorado, patrón MVC para el desarrollo de aplicaciones de terceros, soporte a XML-
RPC y mucho más, convirtiéndose en el actual Joomla 1.5. x. Actualmente se encuentra en desarrollo la versión
de Joomla 1.6, que desde ya puede considerarse un gran salto dentro del proyecto, al implementar mejoras
sustanciales en el código, haciéndolo más estable, funcional, liviano y eficiente.
Joomla, es uno de los más populares y prestigiosos proyectos de Software Libre del mundo, en el área
de los Sistemas de gestión de Contenidos, está licenciado bajo la GNU/GPL y es soportado por la organización
OpenSourceMatters y un extenso y nutrido equipo de desarrolladores a lo largo del planeta que trabajan
constantemente en la evolución del código.
Joomla ha sido implementado en grandes e importantes empresas, muchos centros de educación del
mundo y en una extensa cantidad de entes gubernamentales, en Venezuela, por ejemplo, representa la principal
plataforma de contenidos de los sitios web del estado. Podemos mencionar por ejemplo:
• Fundación del Estado para el Sistema Nacional de las Orquestas Nacionales Juveniles e Infantiles de Venezuela -
Fesnojiv. (http://www.fesnojiv.gob.ve)
• Centro Nacional de Tecnologías de Información – CNTI (http://www.cnti.gob.ve)
• Sistema Nacional de Gestión de Incidentes Telemáticos (http://www.vencert.gob.ve)
• Superintendencia Nacional de Servicios de Certificación Electrónica (http://www.suscerte.gob.ve)
• Ministerio del Poder Popular para las Industrias Básicas y Minería (http://www.mibam.gob.ve)
• Ministerio del Poder Popular para el Trabajo y Seguridad Social (http://www.mintra.gov.ve/)
Joomla es 100% escalable, es por eso que hoy en día existen tantos proyectos relacionados y miles de
componentes y módulos.
Otras ventajas:
• Está en español.
• Posee una extensa documentación.
• Es seguro.
• Joomla apunta a ser un CMS universal.
• Traducido a más de 128 idiomas.
• Más de 100 desarrolladores a lo largo del planeta.
• Joomla está valorado en USD$ 2.194.486.
• Más de 5.000 extensiones listas para usar.
• Según métricas de Joomla se necesitarían aproximadamente 18 Meses y 11 desarrolladores para producir
un CMS de tal calidad.
• Joomla es también un Framework.
• Joomla ha sido descargado más de 10 millones de veces desde su lanzamiento.
10
11. Premios
Joomla ha sido galardonado varias veces por varias organizaciones en distintas categorías.
2009
Open Source CMS Award - Best Open Source PHP Content Management System (3er lugar)
Open Source CMS Award - Hall Of Fame Award (2do lugar)
2008
Open Source CMS Award - Overall Winner (2do lugar)
Open Source CMS Award - Best Open Source PHP Content Management System (2do lugar)
2007
Open Source CMS Award - Overall Winner (2do lugar)
Open Source CMS Award - Best Open Source PHP Content Management System (1er lugar)
2006
Open Source CMS Award - Overall Winner (1er lugar)
Winner - Best Linux / Open Source Project 2006 at UK LinuxWorld
2005
Winner - Best Linux / Open Source Project 2005 at UK LinuxWorld
11
12. . Características de Joomla!
✔ Es Software Libre.
✔ Posee una extensa comunidad de usuarios y desarrolladores.
✔ Simple Sistema de trabajo.
✔ Sencillo sistema de publicación de contenidos.
✔ Administrador de archivos.
✔ Sindicación de contenidos.
✔ Papelera.
✔ URL's amigables (SEF).
✔ Administración de banners.
✔ Administración de idiomas.
✔ Sistema de caché.
✔ Simple instalación de componentes adicionales.
✔ Poderoso sistema de plantillas (XHTML+CSS+PHP).
✔ Jerarquía de usuarios.
✔ Estadísticas de visitas.
✔ Editor WYSIWYG para los contenidos.
✔ Sistema de encuestas.
✔ Sistema de valoración de contenidos.
✔ Categorización del contenido.
✔ Compatibilidad hacia atrás con versiones anteriores de Joomla.
✔ Registro de usuarios.
✔ Gestión de correos.
✔ Sistema de búsquedas.
✔ Gestión de Menues.
✔ Interfaz gráfica para opciones generales de configuración.
✔ Uso de estándares.
✔ Mucho más...
12
13. Capítulo II
Instalando Joomla! en un entorno local
▪ Requerimientos técnicos de Joomla!
Para tener un entorno adecuado para la instalación de Joomla se deben tener tres aplicaciones
fundamentales, un servidor web, un servidor de base de datos y un intérprete del lenguaje en el que está
desarrollado Joomla, en este caso PHP.
Aunque hay personas que han logrado correr Joomla en un servidor web IIS, no es recomendable, por el
contrario debemos garantizar el ambiente nativo ideal para el CMS, que es el siguiente:
• Servidor Web Apache (versión 2 en adelante)
• Servidor de Base de Datos MySQL (versión 5 en adelante)
• Intérprete del lenguaje PHP (versión 5 en adelante)
Debajo de todas estas aplicaciones, evidentemente debe existir un sistema operativo, idealmente Joomla
corre en cualquier sistema basado en GNU/Linux, aunque también ha sido probado en sistemas BSD, Mac OSX
y Windows.
Debes asegurarte que PHP esté compilado con soporte para MySQL y Zlib para poder ejecutar Joomla
de forma adecuada. El php que viene empaquetado en la mayoría de las distribuciones de GNU/Linux ya vienen
con este soporte.
• Componentes Adicionales
Si desea tener soporte a SEF [2] URLs o URLs amigables a motores de búsqueda, usted necesitará
mod_rewrite habilitado en el servidor web y la habilidad de usar configuraciones distribuidas, para la activación
de archivos locales .htaccess.
• Instalación y configuración del Servidor Web Apache .
Para Instalar apache como servidor web desde GNU/Linux solo debemos abrir una consola, logearnos como
root.
________________
2 Del inglés Search Engine Friendly.
13
14. Para abrir la consola vamos al menú aplicaciones --> Accesorios --> Terminal;
esto abrirá una terminal o consola:
usuario@nombre del equipo:~$
14
15. desde allí teclearemos el siguiente comando para logearnos como root o administrador del equipo.
$sudo su
o
$su -s
esto dependiendo de la distribución de GNU/Linux que estemos utilizando, este comando nos pedirá que
tecleemos la contraseña de administrador.
Cuando te logeas como root o administrador del sistema el prompt cambia de $ a # a demás de la dirección de
directorio.
usuariot@nombre del equipo:/home/usuario#
Para instalar apache tecleamos en la consola lo siguiente:
#aptitude install apache2
15
16. El sistema retendrá, sugerirá e instalará los paquetes que sean necesarios según su caso. Al final, hará la
pregunta:
¿Quiere continuar? [Y/n/?]
Al responder “Y” se inicia el proceso de descarga, instalación y configuración de las aplicaciones.
▪ Instalación y Configuración del Servidor de Bases de Datos MySQL.
Para instalar un servidor de bases de datos MySQL en nuestro equipo local debemos instalar dos cosas: el
servidor y el cliente. En el caso de que no fuese un entorno local en el que trabajaremos, entonces probablemente
la aplicación servidor estaría en una máquina remota y nosotros sólo tendríamos que instalar la aplicación cliente
para conectarnos.
En la mayoría de las distribuciones de GNU/Linux existe un metapaquete [3] llamado mysql-server y
mysql-client para instalar las últimas versiones estables del servidor y el cliente de MySQL respectivamente.
#aptitude install mysql-server mysql-client
Igualmente, después de anunciarle todas las acciones que ejecutará le preguntará:
¿Quiere continuar? [Y/n/?]
Finalmente descargará, instalará y configurará todo lo necesario para hacer funcionar lo que usted solicitó.
Probablemente, en algún momento de la instalación usted deberá asignar una contraseña para el
Superusuario de MySQL (root), recomendamos altamente colocar una buena contraseña.
▪Instalación y Configuración del Intérprete del Lenguaje PHP
#aptitude install php5
Al igual que en los procesos de instalación anteriores, aptitude se encargará de hacer todo el trabajo que
usted le solicitó.
Al finalizar ya debería tener un entorno completamente listo para trabajar.
Por favor vaya a http://localhost en su navegador y verifique que el servidor web apache está
funcionando. Regularmente muestra el mensaje “It Works”.
______
3 Contiene o hace un llamado a otros paquetes.
16
17. ▪ Descarga Joomla!
Es posible obtener la última versión de Joomla a través de su sitio web oficial: http://www.joomla.org
Desde allí descargar el archivo comprimido y guardarlo. Luego deberíamos crear un directorio para
nuestra aplicación Joomla en el directorio raíz de apache (document root) , regularmente /var/www/, para esto
será necesario tener privilegios de superusuario [4], lo hacemos de esta manera:
mkdir /var/www/joomla
Donde “joomla” es el nuevo directorio que estamos creando para nuestra aplicación. Luego copiamos el
comprimido a ese lugar.
cp joomla.tar.gz /var/www/joomla/
Descomprimir el archivo en el mismo directorio.
tar -zxvf joomla.tar.gz[5]
Luego debemos asegurarnos de que el propietario y grupo del directorio de nuestra aplicación sea el que
apache designa para tal función, regularmente: www-data, entonces hacemos:
chown -R www-data:www-data /var/www/joomla/
Donde chown es el comando para cambiar el propietario y grupo de un directorio o archivo, -R el
parámetro para recursividad, www- data:www-data, propietario y grupo respectivamente y /var/www/joomla el
directorio al que queremos aplicar los cambios.
__________
4 En distribuciones como ubuntu y derivados se usa sudo antes del comando que necesitamos ejecutar con privilegios, en Debian y otros
nos autenticamos como root antes de ejecutar el comando.
5 En sistemas GNU/Linux también se puede usar “unp” que es capaz de descomprimir
cualquier cualquier formato de una forma más amigable.
17
18. . Crea la base de datos .
Para crear la base de datos de Joomla en nuestro servidor de BD MySQL debemos seguir los siguientes
pasos en el terminal:
Para conectarse al servidor, generalmente se le proporcionará a mysql un nombre de usuario y una
contraseña. Si el servidor se está ejecutando en un ordenador distinto a donde se está estableciendo la conexión,
también se deberá especificar el nombre del host remoto. Una vez indicados los parámetros apropiados, debería
poder conectarse des de cualquier herramienta o bien sea desde la consola en este curso vamos a utilizar las dos
maneras:
Por linea de comandos ( Consola) es de la siguiente manera:
shell> mysql -h host -u user -p
Enter password: ********
host y user representan el nombre del ordenador donde se está ejecutando el servidor de bases de datos
MySQL y el nombre de usuario de la cuenta que se usará para conectarse. Reemplácelos por los valores
apropiados para su caso. Los asteriscos (********) representan la contraseña, debe ingresarse cuando mysql
muestra Enter password:.
Si todo funciona bien, se verá una información de ingreso seguida por el prompt mysql>:
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 25338 to server version: 5.0.9-beta-standard
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
El prompt anuncia que mysql está listo para procesar comandos.
Una vez autenticado en el servidor MySQL pasaremos a crear la base de datos:
CREATE DATABASE nombre_base_datos;
Indicando que todo está bien el prompt de mysql devolverá algo como lo siguiente:
Query OK, 1 row affected (0.07 sec)
18
19. Ahora vamos a crear un usuario especial únicamente para esa base de datos, con todos los privilegios
sobre ella.
Tip: Un administrador de BD serio jamás usaría el usuario root para una BD, un desarrollador serio
tampoco.
mysql> GRANT ALL ON unabd.* to usuario IDENTIFIED BY 'miclave';
Query OK, 0 rows affected (0.14 sec)
Donde: 'unabd' es el nombre de la base de datos.
'usuario@localhost' es el usuario que estás creando para manejar la base de datos.
'miclave' es la contraseña requerida para el usuario en dicha base de datos.
Por último es recomendable recargar las tablas de permisos de MySQL con el comando:
flush privileges;
quit
Para salir y listo.
Con estos datos ya podemos comenzar con la instalación de nuestro sitio web en Joomla.
Tip: Para todas estas tareas de administración de la BD usted puede usar una variedad de herramientas
gráficas, como por ejemplo phpmydamin, mysql-query-browser, entre otras. Nosotros recomendamos trabajar
desde el terminal y aprender bien las sentencias SQL.
19
20. Con herramienta Visual usando phpmyadmin.
Vamos al navegador web o browser y tecleamos la dirección http://localhost/phpmyadmin o
http://127.0.0.1/phpmyadmin
Después tecleamos el usuario y la contraseña de esta forma accedemos a nuestro manejador de
base de datos, para crear la base de datos y el usuario de la base de datos como lo hicistes desde la shell, pero de
una forma visual.
20
21. . Instalación de Joomla.
Abrimos un navegador web y nos vamos a http://localhost/joomla, veremos el instalador web de Joomla.
Gráfico: Instalador de Joomla – Seleccione su idioma
En esta pantalla sólo seleccionamos nuestro idioma y hacemos clic en “siguiente”.
En esta pantalla se verifica que todo esté en orden para poder continuar con la instalación correctamente,
de acuerdo a todas los requerimientos necesarios para Joomla.
21
23. En la siguiente pantalla podemos observar que Joomla está distribuido bajo la Licencia Pública General
(GPL).
Gráfico: Instalador de Joomla – Licencia
23
24. Gráfico: Instalador de Joomla – Configuración de la base de datos
En este punto colocaremos la información de la base de datos que creamos anteriormente.
24
25. Gráfico: Instalador de Joomla – Configuración de FTP
En esta pantalla tenemos la opción de configurar el servicio de FTP para la gestión de archivos en
nuestro Joomla.
25
26. Gráfico: Instalador de Joomla – Configuración principal
En esta pantalla debemos suministrar el título del Sitio Web, que será utilizado en la barra superior del
navegador cuando visualicemos nuestro sitio, el correo electrónico del administrador, la contraseña y finalmente
instalar datos de ejemplo, si lo deseamos.
Tip: Es importante asegurarse de colocar una dirección de correo válida, ya que el sistema la usará para
enviarnos información y/o recuperar la contraseña.
Tip: Recomendamos altamente usar una contraseña adecuada. Por favor tome en cuenta las siguientes
sugerencias:
• Usar caracteres alfanuméricos.
• Usar mayúsculas y minúsculas.
26
27. • NO usar “password”, “admin”, “123456”, “joomla” u otras contraseñas obvias.
• NO usar el nombre del sitio web, autor o palabras relacionadas fácilmente deducibles.
Gráfico: Instalador de Joomla – Finalización ¡Felicidades!
Has llegado exitosamente al final de la instalación. Sí, eso es todo, usted puede ahora disfrutar del nuevo
sitio web que ha creado.
Pero antes, por favor elimine el directorio que contiene los archivos de instalación de Joomla. En nuestro
terminal de GNU/Linux podemos hacer lo siguiente con permisos de superusuario.
rm -rf /var/www/joomla/installation/
Ahora sí, por favor ingresa a http://localhost/joomla/ para ver el sitio web o visita
http://localhost/joomla/administrator para conocer la interfaz de administración de Joomla, usando el usuario
27
28. “admin” y la contraseña que acabas de configurar.
• Tour por el nuevo sitio web .
Gráfico: Nuevo sitio web en Joomla.
En este momento puedes navegar y disfrutar de tu nuevo sitio web.
Algunas características visibles a simple vista son:
• Menú superior y menú lateral.
• Módulo de noticias.
• Funciones para enviar a un amigo, guardar PDF e imprimir.
• Encuestas.
28
29. • Formulario de inicio de sesión.
• Campo de búsqueda.
• Otros.
Capítulo III
Administración de Joomla!
▪ Panel de Control
Para administrar nuestro nuevo sitio web Joomla debemos ir al directorio “/administrator”, el url
completo en este caso sería:
http://localhost/joomla/administrator y a continuación veremos la interfaz deacceso.
29
30. Gráfico: Interfaz de acceso al panel de administración
Luego de ingresar nuestros datos de acceso (usuario y contraseña creados durante la instalación)
podremos entrar satisfactoriamente al panel.
30
31. Gráfico: Pantalla inicial de la interfaz de administración
Al entrar veremos la barra superior del menú, que contiene todos los enlaces a las funcionalidades disponibles y
a mano derecha cuatro elementos:
1. Un enlace para previsualizar el sitio (front-end).
2. Un indicador de mensajes recibidos.
3. Un indicador de usuarios conectados.
4. Un enlace para cerrar la sesión.
Gráfico: Barra de menú
Más abajo tenemos un grupo de iconos que representan atajos rápidos a los enlaces del menú más usados
y en la parte derecha podemos ver información estadística de interés sobre nuestro sitio.
31
32. Gráfico: Iconos de acceso rápido y módulo de información
• Gestión del Menú .
Para administrar los distintos menús debemos ir al “Gestor de Menús”, bien sea desde el icono rápido en
el Panel de Control o desde la barra de menú superior.
32
33. Gráfico: Gestor de Menús
Desde esta pantalla veremos los distintos tipos de menú que tenemos creados, podremos modificarlos,
eliminarlos o crear nuevos.
Tip: cada vez que se crea un nuevo menú, se crea un módulo del tipo “mod_mainmenu”con el mismo
nombre, luego se podrán modificar algunos parámetros del módulo en el menú de Gestor de módulos.
Para administrar los enlaces de un menú determinado, por ejemplo “Menú Principal” podemos hacer clic
en “Ítems del menú” en esta misma pantalla o ir por el enlace “Menús” y luego “Menú principal”.
Nótese que este menú tiene un asterisco al lado del nombre, esto indica que es el menú que actualmente
tiene el enlace de inicio predeterminado, asociado a la página principal.
Luego podemos ver la barra de herramientas disponible y la lista de enlaces de este menú.
El icono “Menús” dirige al “Gestor de Menús” que vimos antes.
El icono “Predeterminado” establece el enlace de inicio asociado a la página principal de la web, como
ya dijimos antes.
El icono “Publicar”, como su nombre lo indica, publica el enlace seleccionado.
El icono “Despublicar”, como su nombre lo indica, despublica el enlace seleccionado.
Tip: Estas últimas dos acciones también se pueden realizar pulsando directamente sobre el icono ubicado
en la columna “publicado” de la lista de enlaces. El tilde verde es publicado y la equis roja despublicado.
El icono “Mover” desplaza el enlace seleccionado hasta otro menú.
El icono “Copiar” copia el enlace seleccionado a otro menú. A diferencia de mover, esta acción deja una
copia en el menú actual.
El icono “Papelera” es usado para borrar el enlace. Este elemento irá a la papelera, desde donde luego
podrá ser recuperado.
El icono “Editar” permite modificar el enlace seleccionado.
33
34. El icono “Nuevo” permite crear un enlace.
El icono “Ayuda”, presente siempre, muestra contenido de ayuda de acuerdo al contexto.
En el listado de enlaces podemos ver varios campos, veremos su descripción:
# Es una numeración simple, permite conocer el número de enlaces.
Casilla de verificación Permite seleccionar uno o varios enlaces para ejecutar alguna de las opciones
disponibles.
Ítem del Menú Representa el título o nombre del enlace.
Predeterminado Muestra una estrella en el enlace establecido como el inicio del sitio web.
Ordenar Permite cambiar el orden en que aparecen los enlaces del menú.
Puede manipularse con las flechas verdes hacia arriba y hacia abajo o colocando
el numero en la casilla y luego pulsando el icono de guardar.
Acceso Muestra el acceso que tienen los usuarios a ese enlace del menú. Si está Público
todos lo podrán ver, si está Registrado, sólo los usuarios registrados podrán ver
el enlace.
Tipo Muestra el tipo de enlace. Por ejemplo si es un enlace a un artículo, si es un
enlace una sección o a un componente.
ItemID Representa el número único de identificación para ese elemento. Es usado por el
sistema en su manejo interno.
Para crear un nuevo enlace en el menú, como ya hemos visto, debemos hacer clic en el icono “Nuevo”, a
continuación se nos mostrará una lista de los posibles tipos de enlace que tenemos para crear.
Podrían ser hacia un artículo, una sección, una categoría o algunos de los componentes instalados.
Al elegir una opción, veremos una segunda pantalla con otro nivel de detalle donde podremos elegir el
modo de presentación del enlace. Si detenemos el cursor en las opciones disponibles veremos un texto de ayuda.
Finalmente debemos colocar el Título del enlace y un Alias, éste último es usado cuando tenemos URLs
amigables (SEF)[6]. La mayoría de las veces será necesario con estos dos campos, además de “Parámetros –
Básico” que aparecen a mano derecha.
Todos los detalles configurados en el enlace pueden modificarse en cualquier momento.
_______
6 SEF, son las siglas de Search Engine Friendly, en castellano: amigable a motores de búsqueda.
34
35. • Gestión del Contenido .
Para administrar el contenido de nuestro sitio web debemos usar el “Gestor de artículos”, accesible
desde el enlace de menú “Contenido” en la barra superior o desde el icono con el mismo nombre en el panel de
control inicial.
Veremos una pantalla como la siguiente.
Gráfico: Gestor de artículos
Se mostrará la barra de herramientas que hemos explicado antes y adicionalmente las siguientes
funciones:
Desarchivar Permite eliminar el estado “archivado” a un artículo de contenido.
Archivo Permite guardar un artículo de contenido en el archivo. Los artículos
archivados no podrán ser usados ni editados a menos que se desarchiven
primero.
Preferencias Este botón nos muestra todas las preferencias que podemos modificar
referente a los artículos, cada ítem muestra una ayuda contextual al detener
el cursos sobre él.
35
36. El listado de artículos de contenido tiene varias columnas, a continuación veremos su descripción.
# Es una numeración simple, permite conocer el número de
artículos de contenido.
Casilla de verificación Permite seleccionar uno o varios artículos de contenido para
ejecutar alguna de las opciones disponibles.
Título Representa el título del artículo de contenido.
Publicado Muestra el estatus actual del artículo de contenido. Si está
publicado mostrará un icono de revisión verde, si está
despublicado mostrará una equis roja.
Tip: Se pueden publicar y despublicar artículos fácilmente
pulsando este icono, sin necesidad de abrir el contenido.
Página Principal Muestra el icono x si el artículo está en la página principal y el
icono y si no lo está.
Ordenar Permite cambiar el orden en que aparecen los artículos de
contenido. Puede manipularse con las flechas verdes hacia
arriba y hacia abajo o colocando el numero en la casilla y luego
pulsando el icono de guardar.
Acceso Muestra el acceso que tienen los usuarios a ese artículo de
contenido. Si está Público todos lo podrán ver, si está Registrado,
sólo los usuarios registrados podrán ver el contenido.
Sección Muestra la sección a la que pertenece al artículo.
Categoría Muestra la categoría a la que pertenece el artículo.
Autor Muestra el autor o creador del artículo.
Fecha Muestra la fecha de creación del artículo.
Impresiones Representa el número de veces que ha sido visto el artículo de
contenido.
ID Representa el número único de identificación para ese elemento.
Es usado por el sistema en su manejo interno.
Para editar un artículo de contenido hacemos clic encima del título que queremos y a
continuación se nos abrirá el editor de contenido.
36
37. Si lo que queremos es crear un nuevo artículo de contenido, entonces haremos clic en el icono
“Nuevo” en el “Gestor de Artículos”, igualmente se nos abrirá un editor de contenido.
Gráfico: Editar artículo
A continuación describimos los campos más relevantes en la creación/edición de artículos de
contenido.
Título Representa el título del artículo y será el que aparezca publicado en
el sitio web.
Alias Es usado cuando tenemos URLs amigables en nuestro sitio web
(SEF). Regularmente se usa el mismo texto del título.
Sección Establece la sección bajo la cual se publicará el artículo. Al
seleccionar una sección se cargarán automáticamente las categorías
que corresponden.
Categoría Establece la categoría bajo la cual se publicará el artículo de
contenido.
Publicado Establece el estatus del artículo (publicado o no). Esto puede
modificarse luego en cualquier momento.
Página Principal Establece la publicación del artículo en la página principal.
37
38. A mano derecha tenemos una “Caja de estadísticas” que nos permite conocer rápidamente algunos
datos de interés del artículo.
Justo debajo, tenemos tres (03) secciones:
• Parámetros – Artículo: aquí podemos modificar algunas opciones interesantes como el nivel
de acceso, las fechas de creación, publicación e incluso finalización. En la mayoría de los casos
no será necesario modificar esto.
• Parámetros – Avanzados: en esta sección podemos modificar los parámetros de presentación
del artículo, por ejemplo: mostrar u ocultar el autor, la fecha, las opciones de imprimir, enviar a
un amigo e imprimir como PDF, entre otros. Estas opciones son configuradas a nivel general
para todos los artículos, pero aquí podemos hacerlo exclusivamente para este artículo.
• Información de metadatos: los metadatos proporcionan información acerca de elementos en la
web, a nivel del código. Esto no lo verán los usuarios en la presentación normal de su sitio web,
a menudo son usados por los motores de búsqueda para clasificar e indexar la información.
Finalmente tenemos el campo de edición de texto con una barra de herramientas para dar
formato al contenido, agregar, enlaces, imágenes, etc.
Debajo del campo de edición se pueden ver unos botones, de los que destacan:
• Paginación: permite generar un pequeño índice de contenido en una tabla y crear varias
páginas dentro del mismo artículo. Útil con artículos muy largos.
• Leer más: establece el punto del artículo en el que debería aparecer el enlace “Leer más” para
mostrar el artículo completo.
Al finalizar nuestro artículo podemos usar las herramientas situadas en la parte superior:
Vista previa Nos muestra una vista preliminar de nuestro artículo, sin necesidad
de guardarlo o publicarlo.
Guardar Guarda el artículo de contenido y sale del editor para regresar al
gestor de artículos.
Aplicar Guarda el artículo y se queda en el editor.
Muy útil cuando tenemos rato editando y sólo queremos guardar los
cambios para seguir trabajando.
Cerrar Cierra el editor y regresa al gestor de artículos. No guarda ningún
cambio.
38
39. • Gestión de Extensiones
En Joomla se suele llamar extensiones al conjunto de componentes, módulos, plugins y también
idiomas y plantillas de acuerdo a la organización de la interfaz de administración.
A Continuación describiremos cada uno de ellos.
• Componentes: son piezas completas de software, que se integran al núcleo de Joomla para
ofrecer una funcionalidad bastante completa, regularmente tienen acceso a a la base de datos y
son renderizados en el cuerpo principal de la plantilla.
• Módulos: representan pequeños programas distribuidos en bloques que pueden mostrarse en las
posiciones de la plantilla del sitio y que muestran una información o funcionalidad específica.
• Plugins: son pequeñas piezas de software que atienden una funcionalidad muy específica
dentro del sistema.
• Idiomas: son archivos de texto plano con extensión .ini que contienen la traducción de algún
componente, módulo o plugin.
• Plantillas: representan los temas que contienen el diseño y estilo al cual se adaptará el
contenido.
Instalar extensiones
Antiguamente existía una interfaz de instalación distinta para cada elemento de Joomla, ahora sólo
basta con ir a la pestaña “Extensiones” del menú y luego “Instalar/Desinstalar”.
Gráfico: Instalar / Desinstalar extensiones
El menú del “Gestor de Extensiones” posee seis (06) enlaces: Instalar, Componentes, Módulos,
Plugins, Idiomas y Plantillas.
39
40. La pestaña Instalar es la que aparece por defecto y desde allí podemos instalar cualquier
extensión, tenemos tres opciones:
Subir paquete: hacemos clic en el botón examinar y buscamos el archivo en nuestra
computadora, luego hacemos clic en “Subir Archivo & Instalar” y el sistema pondrá todo en su santo
lugar.
Instalar desde directorio: aquí debemos pasar la ruta completa del archivo en nuestra
computadora, colocándolo en el campo de texto y luego haciendo clic en el botón “Instalar”.
Instalar desde URL: esta opción nos permite instalar directamente desde un sitio web o
repositorio confiable donde se encuentre la extensión a instalar; el sistema descargará el archivo y lo
instalará.
Las siguientes pestañas de Componentes, Módulos, Plugins, Idiomas y Plantillas muestran una
lista de las extensiones y dejan la posibilidad de seleccionar y desinstalar las deseadas.
Gestión de módulos
La administración de los módulos se hace a través del “Gestor de módulos” en la pestaña
“Extensiones”.
Veremos una interfaz como la siguiente:
40
41. Gráfico: Gestor de Módulos
Desde aquí podremos habilitar o deshabilitar, editar o cambiar la configuración de cualquier
módulo.
Gestión de Plugins
La administración de los plugins se hace a través del “Gestor de plugins” en la pestaña
“Extensiones”.
Veremos una interfaz como la siguiente:
41
42. Gráfico: Gestor de Plugins
Desde aquí podremos habilitar o deshabilitar, editar o cambiar la configuración de cualquier
plugin.
Gestión de Plantillas
La administración de las plantillas del sitio se hace a través del “Gestor de plantillas” en la
pestaña “Extensiones”.
Veremos una interfaz como la siguiente:
42
43. Gráfico: Gestor de Plantillas
Desde aquí podremos habilitar o deshabilitar, editar o cambiar la configuración de cualquier
plantilla.
Gestión de Idiomas
La administración de los idiomas se hace a través del “Gestor de idiomas” en la pestaña
“Extensiones”.
Veremos una interfaz como la siguiente:
Gráfico: Gestor de Idiomas
Desde aquí podremos habilitar o deshabilitar, editar o cambiar la configuración de cualquier
idioma.
43
44. Capítulo IV
Optimizando el Sitio Web
Optimización para motores de búsqueda y URLs amigables (SEF/SEO).
Muy probablemente navegando por algún sitio web usted ha visto algo como esto:
http://www.sitiowebcualquiera.com/index.php?
ption=com_content&view=article&id=241&catid=43&Itemid=71
Esta grande y aparentemente incomprensible URL es generada por algún manejador de
contenidos para entenderse él mismo dentro de su lógica y saber qué presentar al usuario, es normal. Lo
que no es normal es que los administradores del sitio web mantengan este tipo de URL visibles al
usuario, obligándolo a ver algo poco estético e imposible de memorizar, adicionalmente tenemos que
decir que los motores de búsqueda aparentemente indexan más rápida y fácilmente las URLs
amigables, es decir, cortas y descriptivas, la URL anterior no es nada descriptiva, no dice nada por si
misma, hay que entrar para ver de qué se trata el contenido.
Sería mucho mejor algo como:
http://www.sitiowebcualquiera.com/la-empresa/quienes-somos/
Gran diferencia, ¿no? Esto es una URL amigable [7] Muy al contrario de lo que piensan muchos,
Joomla ya trae opciones de configuración en la administración del sistema para usar URLs amigables.
Para activarlas deberás seguir los siguientes pasos:
1. En el panel de administración ir a “Configuración gobal”.
2. En la pestaña “Sitio”, buscar al lado derecho la sección “Parámetros de optimización de
SEO[8]”.
_____
7 Mejor conocidas en inglés como Search Engine Friendly (SEF)
8 Del inglés Search Engine Optimización, en Castellano Optimización para Motores de Búsqueda.
44
45. ◦ URLs amigables para motores de búsqueda: Permite activar o desactivar esta
funcionalidad.
◦ Usar Apache mod_rewrite: El servidor web apache tiene un módulo que reescribe las
URLs cuando son solicitadas y les aplica unos filtros predefinidos, si se usa este
servidor y se tiene este módulo instalado, es recomendable activar esta opción. Sin
embargo Joomla podría hacerlo sin esto. Al activar esta opción es necesario tener activo
el archivo htaccess, es decir, hay que renombrar el htaccess.txt que viene en la raíz de
joomla y llamarlo .htaccess para que apache comience a tomarlo en cuenta.
◦ Agregar el sufijo a las URLs: Activando esta opción se le agregará una extensión o
sufijo a cada URL, regularmente .html.
3. Guardar y probar.
Gráfico: Configuración global
Respaldo y Restauración.
Para un buen administrador / desarrollador web, los respaldos son un tema importante,
45
46. tratándose de una empresa u organización es punto fundamental.
En Joomla existe una extensión suficiente madura y eficiente para tal objetivo, su nombre es
Akeeba Backup[9], veremos como instalarla, configurarla y usarla.
1. Buscar y descargar la extensión “Akeeba Backup” desde http://extensions.joomla.org.
2. En el panel de administración de Joomla hacer clic en “Extensiones”, “Instalar / Desinstalar”.
3. En el primer bloque “Subir paquete”, pulsar el botón “Examinar” y buscar el Akeeba Backup
descargado anteriormente.
4. Hacer clic en el botón “Subir Archivo & Instalar”. La aplicación comenzará su proceso de
instalación.
5. Si todo salió bien, ir a “Componentes” y luego “Akeeba Backup”.
Usarlo es muy fácil, podemos dar un paseo por la configuración y ajustar los parámetros que
consideremos necesarios en nuestro caso. Luego bastará con hacer clic en “Backup Now” y el
componente comenzará un inteligente proceso de respaldo. Es altamente recomendable descargar luego
el respaldo y mantenerlo en otro lugar adicional, de hecho, lo ideal serían tres (03) lugares distintos.
Para restaurar nuestro sitio web en caso de alguna contingencia sólo debemos colocar el
comprimido del respaldo y descomprimirlo en nuestro directorio raíz, luego intentamos acceder desde
el navegador y veremos un instalador muy sencillo y parecido al instalador inicial de Joomla, de esta
forma tendremos en pocos minutos nuestro sitio web totalmente operativo con toda la información del
último respaldo.
_____
9 Antiguamente conocida como JoomlaPack.
46
47. Seguridad Básica.
Hay varios elementos de seguridad que debemos tomar en cuenta en cualquier aplicación web,
Joomla no es la excepción.
Primero que nada la seguridad de una aplicación web hay que verla por niveles o capas, es
decir, va desde el acceso físico al servidor, pasando por motor de base de datos, el lenguaje de
programación, etc, hasta llegar a la capa 8: el usuario. Hay que tomar en cuenta todos los factores,
porque luego es muy sencillo echarle la culpa a Joomla.
Partiendo de que ya usted ha tomado medidas de seguridad en el sistema operativo, en el
servidor de base de datos, en el servidor web y en el lenguaje de programación, entonces tome en
cuenta los siguientes aspectos:
1. Use una contraseña que contenga más de ocho (8) dígitos, minúsculas y mayúsculas, caracteres
alfanuméricos y signos de puntuación.
2. Cambie el usuario administrador por defecto, nunca deje admin, coloque y use otro nombre en
su lugar.
3. Active y use el archivo de configuración distribuida de apache que viene con Joomla
(.htaccess). Use URLs amigables.
4. Mantenga los permisos correctos en los directorios y archivos del sistema. Los archivos
deberían tener permiso 644 y los directorios 755.
5. Proteja la interfaz de administración, a través del .htaccess o con alguna extensión para tal
objetivo.
6. Mantenga actualizadas las extensiones que tenga instaladas y el sistema Joomla completo,
regularmente salen actualizaciones de seguridad importantes.
47
48. Glosario de Términos
GPL: General Public License, en castellano Licencia Pública General, es la licencia propuesta
por el proyecto GNU para proteger y liberar el Software Libre.
PHP: Pre Hipertext Processor, por sus siglas en inglés. Lenguaje de programació.
Sistema de Gestión de Contenidos: Es el software encargado de administrar los contenidos y
actividad de un sitio web, regularmente conocido en inglés como Content Managment System o
simplemente CMS.
Software Libre: Es aquel que otorga libertad a sus usuarios; aquel que cumple con las cuatro
libertades esenciales del software: usar, modificar, compartir y distribuir las mejoras.
Software Privativo: Es aquel que priva de libertad a sus usuarios; aquel que no cumple con las
cuatro libertades esenciales del software: usar, modificar, compartir y distribuir las mejoras.
Referencias Bibliográficas
• http://dev.mysql.com/doc/refman/5.0/es
• http://community.joomla.org/
• http://wikipedia.org
• http://docs.joomla.org
• http://opensourcematters.org
48