…………………………….…….. 88 4.1.4.- Contenidos en imágenes y su tamaño…………………………………. 89 4.1.5.- Dominios y URL amigables……………………………………………….… 90 4.1.6.- Geolocalización. Webs con idiomas……………………………….……. 93 4.1.7.- Técnicas fraudulentas. Penalizaciones…………………………….…… 95 4.2.- Ficheros complementarios………………………………………………………………. 99 4.2.1.- Sitemap……………………………………………………………………..……. 99 4.2.2.- Robots.txt………………………………………………………………….…... 100 4.2.3.- htaccess…………………………………………………………………….…… 101 4.2.4.- Estilos y javascript……………………………………………………….….. 102 4.3.- Promoción externa……………………………………………………………….………. 103 4.3.1.- Directorios…………………………………………………..…………………. 104 4.3.2.- Enlaces desde otras páginas………………………….…………………. 105 4.3.3.- Posicionamiento con “pago por click”……………….……………….. 106 4.3.4.- Redes sociales………………………………………………………………… 108 4.4.- Publicación en portales especializados……………………………………………. 108 5.- Conclusiones……………………………………………………………………………………….……. 119 5.1.- Conclusión…………………………………………………………………………………… 119 5.2.- Trabajos futuros………………………………………………………………….……….. 119 6.- Bibliografía……………………………………………………………………………………………….. 121
4
CAPITULO I
Introducción En este primer capítulo el lector encontrará una descripción detallada del proyecto en la que se incluyen los objetivos del mismo, la motivación que nos ha llevado a realizar el presente PFC y la exposición de los materiales y métodos utilizados.
1.1.- Motivación El presente proyecto tiene sus orígenes en el negocio familiar de la Casa Rural Sansofi. Lo principal fue crear una página Web como cualquier otra pequeña y mediana empresa, con el tiempo fue necesaria la utilización de la aplicación Web para el control y gestión de los huéspedes. Todo ello llevó su tiempo de trabajo en la primavera de 2010. Más tarde, durante el verano de 2011 realicé un periodo de prácticas en empresa de 3 meses de duración como instalador y administrador de servidores Web, DNS y SMTP basados en Unix. Todo ello me llevó a finales de Septiembre a solicitar un PFC al profesor Ángel Rodas, presentándole el trabajo realizado durante el periodo de prácticas y la página web anteriormente realizada. A partir de ese momento surgió la idea de nuestro proyecto final de carrera de tipo B: “Instalación, configuración y desarrollo de aplicación Web estudiando diversas alternativas de alojamiento”. Lo verdaderamente importante del proyecto es la gran variedad de temas que abarca todos ellos relacionados entre si. La primera parte la podríamos englobar en el apartado de Sistemas y Redes, correspondiente con la intensificación de tercero con el mismo nombre. La segunda parte enfocada a los servicios de la Red y también a la programación de páginas y aplicaciones Web. Correspondiente con la intensificación de Ingeniería del Software y algunas asignaturas optativas como APW y SPW, Aplicaciones Web y Servicios para la Web. El proyecto “Instalación, configuración y desarrollo de aplicación Web estudiando diversas alternativas de alojamiento” me ha permitido desarrollar amplios conocimientos en el campo de los sistemas operativos y sobretodo en las tecnologías de red, así como en la promoción de un negocio familiar a través de la red siendo nosotros mismos administradores no solo de nuestra Web sino también de el sistema
5
que da soporte para ello, tema demandado por las empresas y cada vez más importante.
1.2.- Objetivos El presente PFC tendrá por objetivo cumplir con los siguientes tres puntos: Instalación, configuración del servidor web y estudio de alternativas de alojamiento y dominio. Aprender a instalar y configurar un servidor Web (donde estará alojada nuestra Web), comprando para ello un hosting a un proveedor y teniendo alojada allí nuestra Web. Como alternativa veremos como comprar un nombre de dominio y asociarlo a nuestro servidor. Utilización de herramientas avanzadas para mejora de páginas Web. Utilizar HTML, CSS, JavaScript y diversos applets para mejorar la página Web. Realizar una aplicación en la misma Web utilizando PHP y MySQL para controlar y gestionar los clientes y que estos puedan realizar consultar a un calendario, rellenar encuestas y diversas funcionalidades para ofrecen un mejor servicio a los huéspedes. Estudio del posicionamiento Web. Promocionar la Web a través de la red para que llegue a un determinado mercado. Para ello publicaremos la Web en portales especializados y aprenderemos a posicionar nuestra Web en buen lugar en los principales motores de búsqueda.
1.3.- Definiciones, acrónimos y abreviaturas Autenticarse: acción de introducir el identificador de usuario (Username) y la contraseña (Password) asociada al mismo, de forma que el sistema pueda verificar si los valores almacenados en la Base de Datos son los mismos, en cuyo caso, los dará por validos e iniciara una serie de acciones, programadas previamente por el diseñador web. Base de Datos o BD: conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En el contexto en que nos encontramos, su almacenamiento se produce de forma digital (electrónica). En lo sucesivo en este documento, nos referimos a la Base de Datos como BD.
6
E-mails: servicio de red que permite a los usuarios enviar y recibir mensajes rápidamente (también denominados mensajes electrónicos o emails) mediante sistemas de comunicación electrónicos. FTP (File Transfer Protocol): protocolo para intercambiar archivos en Internet. Se utiliza principalmente para descargar un archivo de un servidor o para subir un archivo a un servidor a través de Internet. Hipertexto: cualquier texto disponible en el WWW que contenga enlaces con otros documentos. HTTP (Hypertext Transfer Protocol): protocolo usado en cada transacción de la World Wide Web. Esta orientado a transacciones y sigue el esquema peticiónrespuesta entre un cliente y un servidor. HTTPS (Hypertext Transfer Protocol Secure): Protocolo de red basado en el protocolo HTTP, destinado a la transferencia segura de datos de hipertexto. Garantiza un nivel de seguridad mayor que el de HTTP. IEEE (The Institute of Electrical and Electronics Engineers): asociación tecnicoprofesional mundial dedicada a la redacción y aprobación de normas que se establecen para garantizar el acoplamiento de elementos construidos independientemente. Interface de usuario: representa la forma y disposición visual de los elementos en pantalla (texto, imágenes, objetos gráficos) que posibilitan la interacción de un usuario en un programa o aplicación. Javascript: lenguaje interpretado (no requiere compilación) utilizado en paginas Web, con una sintaxis parecida a Java. Permite el desarrollo de interfaces de usuario mejoradas y paginas web dinámicas. MySQL: sistema de gestión de base de datos, desarrollado bajo la filosofía del software libre. Navegador web: programa que permite visualizar la información que contiene una pagina web. Página web: documento creado en formato HTML que es parte de un grupo de documentos hipertexto o recursos disponibles en el World Wide Web. Una serie de páginas web componen lo que se llama un sitio web.
7
Password o contraseña: serie secreta de caracteres que permite a un usuario, junto a su Username, identificarse en el portal, "conociendo" este los servicios e información personalizada que debe mostrar al mismo. Servidor: ordenador remoto que provee los datos solicitados por parte de los navegadores de otras computadoras. También se entiende como el software que configura un PC como servidor para facilitar el acceso a la red y sus recursos. Sesión: secuencia de páginas web que un usuario visita en un sitio web, desde que entra en nuestro sitio, hasta que lo abandona. Tramitaciones o gestiones: están asociadas a alguno de los posibles trámites y deben haber sido previamente iniciadas por un Usuario Residencial. Sus posibles estados son: Iniciado, En Revisión, Aprobado o Denegado. Username o nombre de usuario: palabra con la que un usuario es reconocido el portal. Usuario Administrador: usuario que además de estar registrado, tiene el máximo nivel de control sobre la administración de los contenidos del portal. Usuario Interno: usuario que además de estar registrado, tiene control sobre la administración de parte de los contenidos del portal. Usuario Anónimo: cualquier usuario que acceda a nuestro portal Web y no se haya autenticado. Usuario Registrado: usuario que tras introducir su Username y Password, ha sido validado por la base de datos y autenticado por tanto correctamente. Web, WWW o World Wide Web: sistema de documentos de hipertexto enlazados y accesibles a través de Internet. Website: serie de Páginas web que generalmente conforman un concepto único o temática.
1.4.- Materiales y métodos En esta sección presentaremos la distribución de red utilizada para dicho proyecto, las tecnologías utilizadas, junto con las herramientas software. En el punto 2.2 alojamiento propio veremos como instalar un servidor web donde más adelante veremos como instalar nuestro sitio web y que funcione. En la Figura 1,
8
observamos una posible distrubición de red (es la de nuestro caso en concreto). El dispositvo con IP 192.168.1.1 es un router encargado de dirigir el tráfico en nuestra intranet, el dispositivo 192.168.1.5 se trata de nuestro servidor, el dispositivo con IP 192.168.1.10 se trata de nuestro laptop, disponible para conectarnos a nuestra intranet al servidor, esto lo veremos con mayor detalle en el punto 2.2.2.4 cuando nos conectemos a través de FTP haciendo uso del programa FileZilla
Figura 1.- Distribución de la red
Tecnologías utilizadas Para la elaboración del Proyecto hemos hecho uso de las siguientes tecnologías: HTML (Hypertext Markup Language): es el lenguaje de programación que permite la elaboración de páginas web, permitiendo definir su estructura y el contenido. CSS (Cascade Style Sheet): es un lenguaje utilizado para definir la presentación de un documento estructurado escrito en el lenguaje HTML o XML. La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación. PHP: es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Se usa principalmente para la interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas.
9
SQL: El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella. JavaScript: es un lenguaje de programación interpretado, definido como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente, implementado como parte de un navegador web permitiendo realizar mejoras en la interfaz del usuario y la creación de páginas web dinámicas. Fue diseñado con una sintaxis similar al C, aunque adoptando nombres y convenciones de programación de Java. jQuery: es una biblioteca o framework del lenguaje JavaScript, creado inicialmente por John Resig que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la tecnología AJAX a las páginas web. Se trata de un software libre y de código abierto.
Herramientas utilizadas Al igual que hemos hechos con las tecnologías que se han utilizado vamos a hacer una breve descripción de las herramientas para el desarrollo con las que hemos trabajado: MagicDraw UML: es una herramienta CASE desarrollada por la compañía No Magic, Inc. La herramienta es compatible con el estándar UML 2.3, desarrollo de código para diversos lenguajes de programación (Java, C++ y C#, entre otros) así como para modelas datos. La herramienta cuenta con capacidades para trabajar en equipo y es compatible con la gran mayoría de IDEs (Integrated Developmet Environment, Entorno de desarrollo informático) del mercado. FileZilla: es un cliente FTP multiplataforma de código abierto y software libre, licenciado bajo la Licencia Pública General de GNU. Soporta los protocolos FTP, SFTP y FTP sobre SSL/TLS (FTPS). Inicialmente fue diseñado para funcionar en Microsoft Windows, pero desde la versión 3.0.0, gracias al uso de wxWidgets, es multiplataforma, estando disponible además para otros sistemas operativos, entre ellos GNU/Linux, FreeBSD y Mac OS X. El código fuente de FileZilla y las descargas estaban2 hospedadas en SourceForge, el cual presentó a FileZilla como el Proyecto del Mes en noviembre de 2003.3 Actualmente hospeda el código fuente en su propio sitio web y las descargas en Ohloh. yEd: es un programa de diagramas libre de propósito general con una interfaz multiplataforma. Su plataforma esta escrita en Java y puede ejecutarse bajo Windows,
10
Linux, Mac OS y otras plataformas que soporten la JVM. yEd puede utilizarse para dibujar diferentes tipos de diagramas, incluyendo diagramas de flujo, diagramas de redes, diagramas UML, mapas mundi, diagramas entidad-relación y organigramas. yEd además permite el uso de vectores personalizados y gráficos de trama como diagramas de elementos. Dreamweaver: es una aplicación en forma de suite que está destinada a la construcción, diseño y edición de sitios y aplicaciones Web basados en estándares. Es el programa más utilizado en el sector del diseño y la programación web, por sus funcionalidades, su integración con otras herramientas como Adobe Flash y, recientemente, por su soporte de los estándares del World Wide Web Consortium. MySQL: es un sistema de gestión de bases de datos relacionales, multihilo y multiusuario. Desde enero de 2008 es una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009. MySQL ha sido desarrollo como software libre ofreciendo dos tipos de licencias una libre para cualquier usuario del producto y una privativa que deberá ser adquirida en el momento de que MySQL sea incluida dentro de otro producto. Tomcat (Jakarta Tomcat o Apache Tomcat): funciona como un contenedor de servlets desarrollado por el proyecto Jakarta en la Apache Software Foundation, el cual implementa las especificaciones de los servlets y de las Java Servlet Pages (JSP) de Sun Mycrosystems.
11
CAPITULO II
Alojamiento web Es el servicio que provee a los usuarios de Internet un sistema para poder almacenar información, imágenes, vídeo, o cualquier contenido accesible vía web. Es una analogía de "hospedaje o alojamiento en hoteles o habitaciones" donde uno ocupa un lugar específico, en este caso la analogía alojamiento web o alojamiento de páginas web, se refiere al lugar que ocupa una página web, sitio web, sistema, correo electrónico, archivos etc. en internet o más específicamente en un servidor que por lo general hospeda varias aplicaciones o páginas web. Un alojamiento web se puede diferenciar de otro por el tipo de sistema operativo, uso de bases de datos y motor de generación de sitios web exista en él. La combinación más conocida y extendida es la del tipo LAMP (Linux, Apache, MySQL y PHP). Algunos de los servicios más comunes que se pueden entregar son lo de FTP, manejo por sitio web y múltiples clientes en las bases de datos. “Instalación, configuración y desarrollo de aplicación Web estudiando diversas alternativas de alojamiento”
2.1.- Nombre de dominio Los dominios de Internet son los nombres que permiten identificar a empresas, personas, organizaciones... en Internet. Un dominio permite visitar páginas Web o disponer de cuentas de correo electrónico entre otras funciones. Y es que técnicamente un dominio sirve para localizar una maquina en Internet que es la que se encarga de gestionar estos servicios. Éstas maquinas se identifican mediante un número, llamado IP, como por ejemplo 214.62.30.21. Evidentemente un nombre de dominio es mucho más fácil de recordar que una secuencia de números. Para tratar más a fondo este tema puedes dirigirte a la sección DNS. Si una empresa, un particular o una organización desean ofrecer cualquier tipo de servicio o información en Internet es prácticamente indispensable contar con un nombre de dominio. Las ventajas son muy numerosas: En primer lugar se potencia la imagen de marca. No es lo mismo contar con una dirección Web del estilo http://hostinggratuito.com/usuarios/miempresa que con http://www.miempresa.com. Sucede exactamente lo mismo con las direcciones de correo electrónico. Es mucho mejor disponer de cuentas del tipo info@miempresa.com que de una cuenta de correo proporcionada gratuitamente como empresa@hotmail.com.
12
Por otro lado todos los servicios asociados al dominio, (hosting, correos...) permanecen independientes de la máquina que los presta. Por ejemplo si decide cambiar de proveedor de alojamiento el traspaso se realiza de forma totalmente transparente al exterior manteniendo el mismo nombre de dominio. Un nombre de dominio es único y exclusivo. Es imposible que existan en Internet y por ende en todo el mundo dos dominios iguales. Solo hay un dominios-internet.com En definitiva contar con un nombre de dominio a la hora de comenzar cualquier tipo de proyecto en Internet es indispensable. Desde el punto de vista técnico, a la vez que identifican los equipos conectados a la red ya que resuelven las direcciones IP, permiten su fácil localización y hacen amigable el uso de Internet. Precisamente esta amigabilidad ha potenciado el crecimiento de Internet en todo el mundo y por tanto, ha contribuido a que Internet se haya constituido en una herramienta para el desarrollo económico, social y cultural de los pueblos. Desde el punto de vista comercial, los nombres de dominio, como marca, sirven para identificar todo tipo de entidades como Organismos, Empresas, personas físicas... junto con los servicios que prestan. Registro de un dominio Ahora pasamos a esquematizar el proceso de registro de un dominio: 1. Primero: 1. Elegir un dominio. 2. Verificar la disponibilidad del nombre de dominio deseado en algún registrador. 3. Ingresar los datos personales. 4. Elegir la cantidad de tiempo que el dominio permanecerá registrado. 5. Pagar el dominio, normalmente con tarjeta de crédito
2. Una vez comprado, el ahora dueño del dominio (registrante) debe configurarlo con la URL a la cual redireccionar, IP del servidor al que encontrará mediante la DNS, servidor DNS usada por este.
3. El dueño del dominio debe esperar un tiempo para que el dominio sea reconocido en todos los servidores de Internet. Para los dominios .com y .net la demora es entre 4 y 8 horas, y para otros es generalmente entre 24 y 48 horas. En ese período:
13
1. El registrador contacta con ICANN y realiza el proceso de forma transparente para el registrante. 2. Se avisa al registrante que el dominio fue registrado.
4. El nuevo dominio funciona, y resuelve a la IP apropiada en el servidor DNS usado, pero no en el resto de servidores DNS del mundo. Poco a poco se va propagando el cambio al resto de servidores (propagación DNS). Como cada uno tiene distintos tiempos de actualización y parámetros de caché distintos, pasan varias horas hasta que todos los servidores DNS del mundo conocen cómo hacer la resolución del dominio.
5. La página ya es accesible mediante un nombre de dominio desde cualquier computadora
Figura 2.- Proceso de registro
14
2.2.- Alojamiento propio En este punto vamos a explicar detalladamente la opción de tener instalado nuestro propio servidor en casa. Para ello abordaremos los puntos 2.2.1 Instalación del servidor y 2.2.2 Configuración del servidor Son muchas las desventajas de tener en nuestro hogar un servidor web en ejecución y más con los precios tan bajos que compañías de hosting ofrecen hoy en día ,entre muchas otras desventajas, entre las que podemos citar: Intervalos sin servicio. Poco ancho de banda de subida. Poca capacidad de respuesta ante picos inesperados de tráfico. Disponibilidad reducida del ordenador que usemos como servidor para otras tareas. Preocupación por si el servicio se está dando correctamente, etc Pero tiene una ventaja que supera con creces las anteriores desventajas, y es la de aprender, muy importante para el desarrollo del presente PFC. Con ella podremos ver cómo configurar Apache, cómo reparar nuestras bases de datos MySQL, cómo mantener nuestro sistema estable para tener que hacer el mínimo número de paradas posible, cómo crearnos scripts para tener los aspectos nuestro servidor monitorizado…
Figura 3.- Diagrama de flujo, servidor propio
15
Siguiendo el diagrama de flujo de la figura 3 nos damos cuenta que tras tener instalado y configurado nuestro servidor web necesitamos comprar un nombre de dominio a un agente registrador (ver punto 2.1 Nombre de dominio) a través de una empresa de servicios de Internet, en nuestro caso elegiremos 1and1. Posteriormente explicaremos como redireccionar todo el tráfico que llegue a nuestro nombre canónico en 1and1 hacia nuestro host, servidor web instalado en el hogar.
2.2.1.- Instalación del servidor Se puede descargar en la dirección http://www.turnkeylinux.org/lampstack siendo la versión 11.2 la última versión estable en el momento de la realización de este manual. Al tratarse de software libre no es necesario estar registrado en la página web.
Figura A.1 Portal de Turnkey Linux (lampstack)
Consiste en un Ubuntu reducido, con los elementos necesarios para realizar la tarea de servidor Web. Su versión es la 10.04 LTS, nombre en clave Lucid, y ofrece soporte hasta Marzo de 2015, incluye el Kernel 2.6.32 y no lleva instalada la interfaz gráfica. Todo se realiza desde la consola, para optimizar recursos. Los requisitos del sistema son muy básicos 256MB de memoria RAM, 2GB de espacio en disco duro, adaptador Ethernet, tarjeta gráfica de 64MB, monitor, teclado y unidad de CD-ROM para instalar el sistema. A partir de aquí consultar en el Anexo A
16
2.2.2.- Configuración del servidor Para dejar nuestro servidor operativo y en condiciones óptimas para ser usado debemos configurarlo según la utilidad que queramos hacer de él. En nuestro caso ofrecer servicio web, al haber instalado la distribución Turnkey Lamp Stack, ya tenemos configuradas de manera predeterminada muchas de sus características. Primero abordaremos el punto de la configuración de la interfaz de red, nos conectaremos al router mediante ethernet y configuraremos los valores de dirección de re y similares, veremos como hacerlo en esta distribución, al igual que como resolver los nombres de los servidores de Internet. Es muy importante tener bien configurada la red, es el paso esencial para garantizar un buen servicio de Internet. En el segundo punto detallaremos como actualizar el sistema y también como actualizar los repositorios, para poder encontrar con facilidad cualquier programa que queramos instalar haciendo uso de apt-get. En el punto 3 describiremos como configurar Apache2 para ejecutar servidores virtuales y poner ofrecer diferentes sitios web en una única máquina física, este punto es muy importante. En el cuarto punto instalaremos y configuraremos un servidor de FTP en nuestro servidor web, para poder conectarnos a través de FTP o SSH a nuestro servidor desde cualquier punto del planeta haciendo uso de Internet. Y por último en el quinto punto veremos como configurar el sistema de gestión de base de datos MySQL, como crear una base de datos a través de su interfaz phpMyAdmin y como configurar el cortafuegos de Linux iptables. Con todo esto configurado ya seríamos capaces de subir archivos html, php, etc a nuestro sitio en el servidor web y conectándonos a él a través de su dirección ip externa para poder consultar la página web albergada en él.
2.2.2.1.- Configuración de la interfaz de red Primero vamos a configurar la interfaz de red, lo podemos hacer una vez terminada la instalación del sistema (ver punto 2.1 Instalación del servidor) mediante la Turnkey Linux Configuration Console, o también siendo el usuario root modificando el archivo del sistema /etc/network/interfaces
# cd /etc/network/interfaces
17
Para modificar el archivo podemos usar el editor nano
# nano interfaces auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 iface eth0 inet static: Seleccionamos la interfaz de red eth0 y la declaramos como estática address: dirección ip de nuestra propia intranet, en este caso 192.168.1.5 netmask: mascara de subred, como es una dirección de clase C, la máscara es /24 gateway: puerta de acceso, dirección ip de nuestra puerta de acceso a Internet, en este caso es la dirección ip del router dns-name-severs: lista de servidores de nombres, en este caso es el propio router el encargado de resolver las solicitudes/peticiones DNS, en su propio configuración tendrá una lista de servidores DNS Archivo resolv.conf Debemos configurar también el archivo /etc/resolv.conf. El resolvconf es un conjunto de rutinas en la libreria C que provee acceso a los dominios de internet (DNS). La configuración del archivo resolv.conf contiene información que es leída por las rutinas del resolvconf la primera vez que son invocadas por un proceso. El archivo está diseñado para ser leído por humanos y contiene una lista de palabras claves con valores que provee varios tipos de información sobre resolvconf. En esta distribución de Linux no podemos modificar directamente el archivo /etc/resolv.conf, este es creado por el programa resolvconf que captura la información de la configuración de la interfaz de red, anteriormente configurada Una muestra con el programa cat del archivo resolv.conf en nuestro servidor es la siguiente:
# cat /etc/resolv.conf
Figura 5.-Archivo resolv.conf
18
2.2.2.2.- Actualización de los repositorios En la distribución Debian y en nuestro caso la Ubuntu Turnkey (derivado de Debian) existe lo que se denominan repositorios. Estos repositorios consisten en sitios web donde se encuentran almacenados los paquetes, que una vez descargados, instalan el software en el ordenador. Inicialmente Ubuntu posee una serie de repositorios oficiales, que están mantenidos por el equipo de Ubuntu. Si usamos exclusivamente estos repositorios se nos garantiza un alto nivel de estabilidad. Sin embargo agregar repositorios externos es útil para instalar software no soportado oficialmente por Ubuntu, normalmente porque se trata de programas que no son libres ni de código abierto, o porque están en una versión no estable pero totalmente funcional para nuestros intereses. El sistema de instalación de paquetes que usemos, en nuestro caso apt-get, internamente usa un fichero donde se encuentran los repositorios, este fichero lo podemos encontrar en:
# cd /etc/apt/sources.list.d Es preferible modificar los repositorios, quedando como en la Figura 6, para ello modificamos el fichero sources.list con el programa nano
# nano /etc/apt/sources.list.d/sources.list
Figura 6.- Lista de repositorios
Una vez modificado el fichero de repositorios tenemos que actualizar la lista de paquetes, esto es importante para poder actualizar el sistema e instalar más adelante con apt-get cualquier programa que necesitemos , para eso basta con ejecutar el siguiente comando en un terminal:
# apt-get update
19
2.2.2.3.- Configuración de servidores virtuales. VirtualHosts El término Hosting Virtual se refiere a hacer funcionar más de un sitio web (tales como www.company1.com y www.company2.com) en una sola máquina. Los sitios web virtuales pueden estar "basados en direcciones IP", lo que significa que cada sitio web tiene una dirección IP diferente, o "basados en nombres diferentes", lo que significa que con una sola dirección IP están funcionando sitios web con diferentes nombres (de dominio). El hecho de que estén funcionando en la misma máquina física pasa completamente desapercibido para el usuario que visita esos sitios web. Apache fue uno de los primeros servidores web en soportar hosting virtual basado en direcciones IP. Las versiones 1.1 y posteriores de Apache soportan hosting virtual (vhost) basado tanto en direcciones IP como basado en nombres. Ésta última variante de hosting virtual se llama algunas veces basada en host o hosting virtual no basado en IP. Toda la configuración de Apache está en el archivo /etc/apache2/ Mirando el contenido de este directorio, observamos distintos archivos y directorios, entre los cuales están: sites-available y sites-enabled. En ambos directorios debe existir un archivo “default”, el cual tomaremos como base para editar la configuración de nuestros Hosts Virtuales. En sites-available tendremos los VirtualHosts disponibles (pero no “activados”) para ser usados y en sites-enabled, tendremos los VirtualHosts que tenemos funcionando. La forma de trabajar entre estos directorios es a través de un enlace simbólico; así el default de sites-enabled será un enlace simbólico del default de sites-available. Debian incluye sus propias herramientas para activar y desactivar tanto sitios web como módulos: a2ensite-> Activa un sitio web. a2dissite-> Desactiva un sitio web a2enmod-> Activa un módulo de apache disponible en mods-available. a2dismod->Desactiva un módulo. Vamos a comenzar a preparar los VirtualHosts. Para ello nos dirigimos a /etc/apache2/available-sites/ y utilizaremos el archivo default como base para preparar la configuración de estos, para ello hacemos una copia:
# cp default casarural-sansofi.com
20
El contenido de este sitio web lo podemos volcar en /var/www2/ Para ello, creamos el siguiente directorio donde volcar el contenido de nuestra web:
# mkdir /var/www2/ Ahora sólo queda editar los archivos de configuración de los hosts virtuales. Abrimos con un editor de texto el siguiente archivo
# nano /etc/apache2/sites-available/casarural-sansofi.com
#a2ensite casarural-sansofi.com Esto creará el enlace simbolico de estos archivos entre sites-available y sites-enabled. Ahora sólo tendremos que recargar la configuración para que apache coja los cambios.
# /etc/init.d/apache2 reload Con esto mantenemos la interfaz web de la distribución Turnkey ver Figura 7 y tenemos nuestra página web albergada en nuestro servidor. Ya tenemos nuestro sitio disponible. Otro tema a tratar será la base de datos, la distribución LAMP Snack de Turnkey nos proporciona un phpMyAdmin, habrá que
21
configurar los ficheros fuente para que se conecten a nuestra base de datos. Eso lo trataremos en el punto de programación.
Figura 7.- Interfaz web del sistema
2.2.2.4.- Instalación servidor vsftp y uso de FileZilla FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informáticos) es uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia de grandes bloques de datos a través de redes que soporten TCP/IP. El servicio utiliza los puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y servidor. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor. Prácticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de este servicio a través de un cliente FTP. VSFTPD (Very Secure FTP Daemon) es un sustento lógico utilizado para implementar servidores de archivos a través del protocolo FTP. Se distingue principalmente porque sus valores por defecto son muy seguros y por su sencillez en la configuración, comparado con otras alternativas como Wu-ftpd. Actualmente se presume que VSFTPD es quizá el servidor FTP más seguro del mundo. En nuestro caso instalaremos el servidor VSFTPD, utilizará el puerto 22 de FTP para subir desde nuestra máquina local los archivos de la página web al sitio en nuestro servidor, en este caso se trata del directorio /var/www2
22
Instalaremos el servidor FTP mediante el programa apt-get
# apt-get install vsftpd Una vez instalado procedemos a configurarlo Configuración del servidor FTP Fichero de configuración. /etc/vsftpd.user_list Procedimientos. Utilice un editor de texto y modifique el fichero /etc/vsftpd/vsftpd.conf. A continuación analizaremos los parámetros a modificar o añadir, según se requiera para necesidades particulares. Parámetro anonymous_enable. Se utiliza para definir si se permitirán los accesos anónimos al servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera. anonymous_enable=YES Parámetro local_enable. Es particularmente interesante si se combina con la función de jaula (chroot). Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca como valor YES o NO de acuerdo a lo que se requiera. local_enable=YES Parámetro write_enable. Establece si se permite el mandato write (escritura) en el servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera. write_enable=YES Parámetro ftpd_banner.
23
Este parámetro sirve para establecer el banderín de bienvenida que será mostrado cada vez que un usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente. ftpd_banner=Bienvenido al servidor FTP de Molió. Parámetro anon_max_rate. Se utiliza para limitar la tasa de transferencia en bytes por segundo para los usuarios anónimos, algo sumamente útil en servidores FTP de acceso público. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios anónimos: anon_max_rate=5120 Parámetro local_max_rate. Hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios locales: local_max_rate=5120 Parámetro max_clients. Establece el número máximo de clientes que podrán acceder simultáneamente hacia el servidor FTP. En el siguiente ejemplo se limitará el acceso a 5 clientes simultáneos. max_clients=5 Parámetro max_per_ip. Establece el número máximo de conexiones que se pueden realizar desde una misma dirección IP. Tome en cuenta que algunas redes acceden a través de un servidor proxy o puerta de enlace y debido a esto podrían quedar bloqueados innecesariamente algunos accesos. En el siguiente ejemplo se limita el número de conexiones por IP simultáneas a 5. max_per_ip=5 Para ejecutar por primera vez el servicio, utilice:
# service vsftpd start
24
Para hacer que los cambios hechos a la configuración surtan efecto, utilice:
# service vsftpd restart Para detener el servicio, utilice:
# service vsftpd stop Para añadir VSFTPD al arranque del sistema en todos los niveles de corrida, utilice:
# chkconfig vsftpd on Uso de FileZilla Una vez instalado el servidor FTP en el servidor web necesitamos un cliente FTP para conectarnos al servidor remotamente. En este caso se trata de Filezilla, un cliente FTP multiplataforma de código abierto y software libre, licenciado bajo la Licencia Pública General de GNU. Soporta los protocolos FTP, SFTP y FTP sobre SSL/TLS (FTPS). En nuestro caso utilizaremos el protocolo SFTP, también conocido como SSH. Nos conectaremos desde un cliente en Windows (ver Figura 1.- Distribución de la red) que se halla en el host 192.168.1.10 al servidor FTP hallado en 192.168.1.5. Se puede descargar de la página oficial http://filezilla-project.org/download.php , una vez descargado e instalado vamos a configurarlo.
Figura 8.- FileZilla
25
En la Figura 8 podemos observar la simple interfaz del cliente FTP FileZilla, para conectarnos debemos introducir la ip donde se encuentre el servidor FTP, el nombre de usuario, su contraseña y el puerto por el que queramos conectarnos. En nuestro caso: Servidor: 192.168.1.5 Usuario: root Contraseña: “contraseña de root” Puerto: 22 En el menú de la izquierda esta el árbol de directorios de la máquina local, en el de la derecha el árbol de directorios del servidor remoto, para subir archivos al sitio web debemos dirigirnos a /var/www2 en el servidor remoto, todo ello con una simple interfaz gráfica, haciendo clic con el botón derecho del ratón sobre un directorio podremos empezar la transferencia, de subida si seleccionamos un archivo local o de bajada si seleccionamos un archivo remoto.
2.2.2.5.- Uso de MySQL e iptables La distribución Turnkey Lamp Stack ofrece el sistema de gestión de base de datos administrable a través de la red, conocido como phpMyAdmin, herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 62 idiomas.
Figura 9.- phpMyAdmin
26
Es posible acceder a ella a través de nuestra intranet, haciendo uso de un navegador Web, accediendo a través de la url http://192.168.1.5, nos aparece disponible la interfaz Web del sistema, ya descrita anteriormente en la Figura 7, seleccionamos la herramienta phpMyAdmin. Para loguearnos hacemos uso del usuario root de MySQL y su contraseña, seleccionado con anterioridad en la instalación de sistema, ¡ojo! No es la misma que la del usuario root del sistema. Una vez nos logueamos podemos encontrar las bases de datos de la interfaz web del sistema y también podemos crear las nuestras, eso lo veremos con detalle en el punto de programación de la aplicación web. Uso de iptables Netfilter es un framework disponible en el núcleo Linux que permite interceptar y manipular paquetes de red. Dicho framework permite realizar el manejo de paquetes en diferentes estados del procesamiento. Netfilter es también el nombre que recibe el proyecto que se encarga de ofrecer herramientas libres para cortafuegos basados en Linux. Iptables es el nombre de la herramienta de espacio de usuario mediante la cual el administrador puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. No vamos a detenernos en detalles del iptables, puesto que es un tema muy correoso, solo describiremos la configuración necesaria para que funcione nuestro servidor web y poder acceder a los recursos que ofrece el sistema como también la posibilidad de conectarnos mediante SSH al servidor. Para acceder al control del menú Linux Firewall accedemos mediante un navegador web a nuestro servidor http://192.168.1.5 desde nuestra intranet, tal y como aparece en la Figura 7, seleccionamos la opción webmin, nos logueamos haciendo uso del usuario root y en el menú de arriba seleccionamos la opción Networking, tal y como lo muestra la Figura 9.
Figura 10.- Linux Firewall
27
Accedemos asi a la configuración del Firewall de nuestro sistema, en este caso es el ya mencionado iptables.
Figura 11.- Configuración de iptables
If input interface is lo: Aceptará siempre el tráfico cuando la petición sea de la interfaz lo. If protocol is ICMP and ICMP type is echo-request: Para el protocolo ICMP también aceptará tráfico, siempre que sea del tipo petición, cualquier ping que hagamos a nuestro host será aceptado. If state of connection is ESTABLISHED,RELATED: Este tipo de configuración viene predeterminada para cualquier tipo de Firewall. If protocol is TCP and destination port is 22: Aceptar el tráfico para el protocolo SSH, para poder conectarnos remotamente, subir y descargar archivos. If protocol is TCP and destination port is 80: Evidentemente aceptará el tráfico del protocolo HTTP, la idea es tener instalado un servidor web y que esto sea possible. If protocol is TCP and destination port is 443: Aceptará el tráfico para la conexión segura del protocolo HTTPS, con cifrado SSL If protocol is TCP and destination port is 12320: Aceptará el tráfico del web shell If protocol is TCP and destination port is 12321: Aceptará el tráfico del webMin If protocol is TCP and destination port is 12322: Aceptará el tráfico del web phpMyAdmin
28
2.2.3.- Redireccionar hacia nuestro servidor Primero debemos comprar el nombre de dominio que necesitemos, para ello consultamos el Anexo C y asi sabremos como hacerlo. Una vez ya tenemos el nombre de dominio comprado a 1and1 y siendo clientes de dicha empresa vamos a explicar como redireccionar todas las peticiones DNS hacia nuestro servidor.
DNS Domain Name System o DNS (en español: sistema de nombres de dominio) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignados a cada uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para los humanos en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente. Tipos de registros DNS Registro NS: (siglas de Name Server), contiene los servidores de nombre de ese dominio, lo que permite que otros servidores de nombres vean los nombres de su dominio. Registro MX: es el registro de Intercambio de correo (Mail eXchange). Indica que host se encarga del procesamiento del correo electrónico de ese dominio. Registro A: (Adress) asocian nombres de host a direcciones IP dentro de una zona. Son los más numerosos dentro del archivo. Registro CNAME: son llamados también alias, si bien son conocidos como entradas de nombre canónico (CNAME, Canonical Name). Su uso más común es utilizar para apuntar a un único host más de un nombre, asi se simplifican procesos como albergar simultaneamente un servidor web y otro FTP en un mismo equipo.
Configuración en 1and1 Por tanto, el servidor en el cual tenemos registrado el dominio casarural-sansofi.com realizará la función de DNS, devolviendo el valor de la consulta a la petición como la ip de nuestro propio servidor donde tenemos albergada la página web, para ello a continuación explicaremos como configurar en el panel de control de 1and1 los parámetros necesarios.
29
Figura 12.- Dominios y espacio web. 1and1
Entramos en el panel de control de 1and1, logueandonos previamente con nuestro usuario y contraseña, seleccionamos la ventanda de “Dominios” se encuentra la primera, arriba a la izquierda, tal y como vemos en la Figura 11. Nos aparecerá la lista de nombres de dominio que tengamos, en este caso solo tenemos un único dominio, el casarural-sansofi.com
Figura 13.- Selección de dominio
Seleccionamos el dominio en concreto, arriba en la pestaña DNS, seleccionamos la opción de “modificar la configuración DNS”, tal y como vemos en la Figura 12. En la nueva venta, ver Figura 13, nos desplazamos al final en la sección “Configuración DNS avanzada”, en la opción Dirección IP (registro A), seleccionamos el valor “Otras direcciones IP” e introducimos la dirección ip externa de nuestra red, en este caso es la siguiente: 87.203.87.36. Luego ya se encargará el router mediante NAT de dirigir el tráfico que llegue por el puerto 80 a nuestro servidor en 192.168.1.5.
30
Figura 14.- Configuración DNS de 1and1
Ahora solo hay que esperar unos 30 minutos aproximadamente para que 1and1 refresque los registros DNS de sus servidores con el nuevo valor. Una vez llegados a este punto y con los servidores DNS de 1and1 actualizados ya somos capaces de acceder desde cualquier punto del planeta conectado a Internet con un navegador a interpretar los ficheros que tengamos en el sitio de nuestro servidor, en /var/www2 consultando la página web http://www.casarural-sansofi.com. Y por otro lado desde nuestra intranet introduciendo en el navegador la dirección ip del servidor 192.168.1.5 interpretar la interfaz web para administrar el servidor albergada en el sitio de nuestro servidor /var/www .
31
2.3.- Alojamiento en la red En este punto vamos a explicar detalladamente la opción de tener albergada nuestra página web en una compañía de web hosting. Para ello abordaremos los puntos 2.3.2 Elección de 1and1 y 2.3.3 Asociar el nombre de dominio a nuestra cuenta. Existen diversas modalidades de hosting, en nuestro caso trataremos la de hosting compartido de pago. Es indiscutiblemente la modalidad más popular y extendida. Consiste en un conjunto de cuentas que tienen asociadas un conjunto de recursos, todo ello controlado por el panel de control del Hosting, existen dos paneles de control: uno de superadmin, que crea las cuentas manual o automáticamente y nuestro panel de control de usuario con menos funcionalidad y sin capacidad de crear cuentas fuera de la nuestra. Cuando contratamos un servicio de este estilo, no significa que la información se encuentre dentro del mismo servidor físico, pudiendo estar la información repartida en distintos servidores (de esto se encarga el software del panel de control).
Figura 15.- Diagrama de flujo, alquiler de Hosting
32
Una cuenta no es más que un directorio dentro de la jerarquía interna del servidor; nosotros gestionaremos a alto nivel mediante nuestro panel de control todos los recursos como pudiesen ser crear una base de datos. Un gran inconveniente está en la velocidad tanto de procesamiento como de ancho de banda, dado que un servidor está recibiendo peticiones de diferentes websites y ejecutando por ejemplo directivas en PHP de diferentes cuentas alojadas. Aun considerando el inconveniente anterior, resulta una solución eficaz para un negocio pequeño o mediano. La optimización de velocidad consistiría en un Hosting dedicado o el antes mencionado housing.
2.3.1.- Estudio de las empresas de Hosting Vamos a realizar un estudio de las empresas de Hosting, para elegir aquella que más se acople a nuestros intereses. Como vemos en la tabla a nivel nacional existe una gran diferencia en cuanto a cuota de mercado, ambas compañías 1and1.es y arsys.es están disputándose la primera posición.
Ranking de los 10 proveedores de Hosting más importantes de España
Ranking
Compañía de Hosting
Cuota de mercado
Dominios totales
1
1AND1.ES
19.9985 %
320,969
2
ARSYS.ES
17.8442 %
286,394
3
DINAHOSTING.COM
4.7956 %
76,967
4
CDMON.NET
4.2985 %
68,989
5
TERRA.ES
3.7153 %
59,630
6
ABANSYS.COM
2.9593 %
47,496
7
NOMINALIA.COM
2.9275 %
46,985
8
HOSTALIA.COM
2.8979 %
46,511
9
ACENS.NET
1.6657 %
26,734
10
REDCORUNA.COM
1.6344 %
26,231
Tabla 1.- Proveedores de Hosting en España
33
Tras ver la Tabla 1 y la Figura 15, llegamos a la misma conclusión, existe una gran diferencia en cuanto a cuota de mercado entre las empresas 1and1.es y arsys.es con respecto al resto.
Figura 16.- Empresas de Hosting en España
Tabla del ranking mundial de compañías de Hosting, vemos como 1and1.es aparece en el puesto nº47, siendo la compañía Española con mayor cuota de mercado.
Ranking
Compañía de Hosting
1
WILDWESTDOMAINS.COM
2
País
Cuota de mercado
Dominios totales
25.0729 %
32,565,524
ENOM.COM
2.7028 %
3,510,553
3
NETWORKSOLUTIONS.COM
2.3291 %
3,025,175
4
ONEANDONE.COM
2.2362 %
2,904,497
5
HOSTGATOR.COM
1.5603 %
2,026,519
6
SEDOPARKING.COM
1.4014 %
1,820,177
7
YAHOO.COM
1.2821 %
1,665,290
8
BLUEHOST.COM
1.2293 %
1,596,697
…
…
…
…
47
1AND1.ES
0.2471 %
320,969
…
…
…
…
… … Tabla 2.- Proveedores de Hosting en el mundo
34
A continuación mostramos una tabla comparativa con los planes de hosting que ofrecen unos de los cinco proveedores de Hosting más importantes en España, incluyendo a 1and1.es y arsys.es, con los cuales nos quedaremos definitivamente con uno de ellos.
1&1
Arsys
Nombre Producto/ Características
Pack Dual Basic
Profesional
Plan Inicial
Plan Personal
Plan Entry
Precio mensual
1,99 €
4€
2,99 €
4,5 €
1,95 €
Plataforma
Linux
Linux
Linux
Linux
Linux
Número de dominios incluidos
1
-
-
-
-
Espacio en disco
1 GB
300 MB
250 MB
1000 MB
200 MB
3 GB
Ilimitado
10 GB
4 GB
10 (250 MBs el buzón)
20
-
Transferencia Ilimitada mensual
10 (2 GB 40 (3 GB por por buzón) buzón)
Cuentas correo MySQL
Abansys Dinahosting
Piensa solutions
Proveedor
Sï
Opcional
No
No
-
FTP
Ilimitados
Ilimitadas
5
1
1
SSL
Opcional
No
No
No
No
PHP
Sí
Sí
Sí
No
No
CGI
Sí
Sí
Sí
No
Sí
Perl
Sí
Sí
Sí
No
Sí
Antivirus y Antispam
Sí
Antispam, Antivirus adicional 2€/mes
Sí
No
Antispam
Estadísticas web
Sí
Sí
Sí
No
Sí
Aplicaciones incluídas
Editor Web, Blog y Foto Albúm
Editor Web
Chat
No
No
Tabla 3.- Comparativa de características empresas de Hosting
35
2.3.2.- Elección de 1and1 Nos vamos a centrar específicamente en el plan Basic de 1and1.es, por 1,99€/mes, y el profesional de arsys.es, esta compañía ofrece el plan profesional por 4€al mes y antes lo hacia por 8€, esto lo hace para enfrentarse a su rival competidora 1and1.es que en los últimos meses gracias a la publicidad en TV ha incrementado la distancia en cuanto a cuota de mercado con arsys. Principal inconveniente de arsys, la base de datos, solo ofrece base de datos MySQL de 20MB con el plan empresarial, por 8€/mes, mientras que 1and.es ofrece en el plan Basic un espacio de gestión de base de datos de 1GB. La única ventaja significativa que ofrece arsys.es son las cuentas de correo, esta empresa ofrece 40 cuentas con un buzón de 3GB, mientras que 1and1.es solo ofrece 10 con un buzón de 1GB, pero en nuestro caso es algo insignificativo. Ambas empresas ofrecen una cuenta FTP, necesaria para subir los archivos al servidor, pero tampoco es algo importante, con una cuenta tenemos suficiente para las tareas que vamos a realizar. En cuanto a programación ambas soportan flash, javascript, html 5, php y perl, suficiente para ofrecer una página web moderna y decente. Por tanto ambos packs ofrecen prácticamente lo mismo, lo único que los diferencia es la base de datos, mejor en 1and1.es y las cuentas de correo, mejor en arsys.es, pero como necesitaremos una base de datos de mejores prestaciones para ejecutar la aplicación web, nos decantamos por la elección de 1and1.es, eso y la diferencia de 3€ menos al mes hace que en definitiva 1and1.es sea nuestra elección final.
2.3.3.- Asociar el nombre de dominio a nuestra cuenta Una vez seleccionado 1and1.es como la empresa ideal en España para albergar nuestra página web, pasamos a comprar el nombre de dominio, para ello consultamos el Anexo C y asi sabremos como hacerlo. Una vez comprado el nombre de dominio a 1and1.es, vamos a asociar el nombre de dominio al directorio de trabajo de nuestro sitio en el hosting que hemos comprado. Entramos en el panel de control de 1and1, logueandonos previamente con nuestro usuario y contraseña, seleccionamos la ventana de “1&1 Gestión de archivos” se encuentra la tercera, arriba a la izquierda en la sección de “Acceso”, tal y como vemos en la Figura 16.
36
Figura 17.- Gestión de archivos, 1and1
Esto nos lleva a una nueva ventana, donde crearemos nuestro directorio de trabajo, en la pestaña “Datos” seleccionamos “Nueva carpeta” y elegimos el nombre que queramos, por ejemplo “sansofin”, tal y como vemos en la Figura 17.
Figura 18.- Creación de un directorio en 1and1
Una vez creado el directorio de trabajo, conocido como sitio, pasamos a asociar el nombre de dominio que hemos comprado con dicho directorio de trabajo. Volvemos al menú de inicio de la interfaz y ahora seleccionamos el apartado de “Dominios”, tal y como vemos en la Figura 16. Seleccionamos nuestro dominio “casarural-sansofi.com” y aparecerá la configuración de destino del dominio, en “destino”, pulsamos la opción de “Modificar”. Una vez hecho esto el programa nos llevará configurar el destino del dominio, tal y como vemos en la Figura 18.
37
Figura 19.- Destino del dominio
Ahora nos encontramos en la página de “destino del domino”, solo hay que seleccionar el directorio para la página web, desplegaremos el menú desplegable de la opción “Directorio existente” y seleccionaremos el directorio /sansofin, le damos a enviar y este será nuestro directorio de trabajo al cual nos conectaremos mediante FTP con el programa dreamweaver para subir los archivos de la página web.
38
CAPITULO III
Creación del entorno Web En este punto describiremos la evolución software de nuestra página web, desde la fase inicial hasta la fase final. El propósito de este punto es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura que los métodos utilizados son apropiados. Para ello pasaremos por la fase de especificación de requisitos, donde describiremos las funciones, características e interacciones de nuestro programa con los distintos tipos de usuarios, seguidamente abordaremos la fase del análisis, donde definiremos los casos de uso y el diagrama de clases, a continuación trataremos el diseño, definiendo cómo estos requisitos se cumplirán, y para finalizar describiremos la fase de implementación llevando a cabo a código fuente todo lo diseñado en la fase anterior.
3.1.- Especificación de los requisitos La especificación de requisitos debe recoger todas aquellas características a cumplir por nuestra aplicación para satisfacer las expectativas o exigencias del cliente, en el caso que nos ocupa, así como de los usuarios finales. La descripción de los requisitos debe realizarse tratando de conservar una perspectiva cercana al usuario final, evitando términos o tecnicismos que habitualmente emplearía un desarrollador. Con este fin, se emplea habitualmente un documento que reúne de forma ordenada estos requisitos y que se conoce como Especificación de Requisitos Software (ERS), el cual puede tener diferentes formatos.
3.1.1.- Propósito y ámbito En el proyecto que nos ocupa, se ha optado por organizar los requisitos capturados empleando una ERS en base al estándar IEEE 830-1998, el cual puede ser utilizado como referencia en la especificación de proyectos Web, dadas las analogías existentes con la metodología de proyectos software. Esta decisión esta orientada en favor no solo de estructurar los requisitos definidos previamente, sino también en pro de obtener una especificación consistente y no ambigua.
39
Esta especificación de requisitos representa una parte vital dentro de la memoria, pues el desarrollo de apartados posteriores deberán cumplir y satisfacer las exigencias de cada uno de estos requerimientos de partida. El portal debe denotar un marcado carácter interactivo y amigable, apto para abarcar la mayor tipología de público objetivo posible. Deberá prevalecer durante todo el desarrollo del mismo, la importancia de que sus elementos principales deben “estudiar” y adaptarse al comportamiento de cada usuario, invitando de este modo a permanecer el mayor tiempo posible en el. De obligado cumplimiento será cumplir con un aspecto gráfico amigable, denotando tranquilidad y comodidad en cada uno de los apartados de la página web, los más relevantes serán: una galería de imágenes de la casa donde resaltar los aspectos más importantes, como piscina, terrazas, jardines, barbacoa, salón-comedor y habitaciones confortables; otro aspecto a tener en cuenta es la ubicación de la casa, debe permanecer clara, para que los futuros visitantes conozcan los aledaños; las tarifas y la ocupación son aspectos muy importantes, para conocer precios y disponibilidad; como último aspecto importante el contacto, ya sea por teléfono o a través de la misma web. Por ultimo, la aplicación deberá contemplar un apartado para la administración de sus contenidos, donde los administradores de la página web tendrán la posibilidad de moderar los comentarios que los clientes hacen en la página, añadir, eliminar o modificar reservas para el alojamiento o revisar si existen nuevas solicitudes de prereserva. En este sentido, el portal presentará una interfaz intuitiva y segura, que confine la coherencia de la información almacenada en la base de datos.
3.1.2.- Descripción general El objetivo de este apartado pretende ofrecer una visión lo mas generalizada posible de la página web, evitando incurrir en descripciones pormenorizadas o mas especificas, evitando así innecesarias modificaciones en futuras versiones del documento. El producto a desarrollar no se integrará en un sistema más amplio. De este modo, funcionará de forma autónoma sobre cualquier plataforma, valiéndose para ello de cualquier navegador web de actualidad y obviamente, de una conexión a Internet. Las tecnologías principales empleadas en su implementación han sido: - Lenguaje HTML para diseñar los aspectos gráficos. - Lenguaje PHP para la funcionalidad dinámica. - Plantillas CSS para optimizar la legibilidad de la información mostrada, así como para propiciar un diseño actual, acorde a las últimas tendencias.
40
- JavaScript de forma puntual, para mostrar el calendario en el apartado de contacto. - Applets de Facebook para fomentar la interacción en las redes sociales. - MYSQL como sistema de gestión de base de datos, usando phpMyAdmin para manejar la administración de MySQL.
Funciones de la página web Las funciones ofrecidas por la página web en función de la topología de usuario y que pueden ser distinguidas son las siguientes: Operaciones sobre imágenes Visualización de lista de miniaturas. Selección de imagen en concreto. Cambio y cierre de imagen. Operaciones sobre enlaces Acceso a otras webs (links). Operaciones sobre solicitudes de reservas Selección de fecha en calendario. Envío de solicitud de reserva. Visualización de envió de solicitud correcta. Operaciones sobre comentarios Visualización de comentarios. Creación, eliminación y modificación de comentarios propios. Operaciones sobre el calendario Visualización de fechas libres. Consulta de disponibilidad para una determinada fecha. Operaciones sobre gestión de reservas Visualización de reservas. Creación, edición y eliminación de reservas. Consulta de reservas. Operaciones sobre usuarios Visualización de usuarios y toda la información asociada en su registro. Registro y autenticación de usuarios. Modificación de la información del registro. Creación, edición y eliminación de usuarios. Cierre de sesión de usuario.
41
Las demás operaciones de la página web consisten en listar información de texto o similar, disponible para cualquier tipo de usuario.
Características de los usuarios Usuario Anónimo Cualquier visitante esporádico o no, el cual no se haya autenticado. Tendrá acceso total al apartado de La casa, Imágenes, Ubicación, Entorno y Enlaces. En el apartado de Contacto podrá enviar una solicitud de reserva, pero en el apartado de Tarifas no podrá realizar una pre-reserva interactuando con el calendario. En el apartado de Opiniones, podrá leer las opiniones pero no podrá escribir ninguna nueva. No tendrá acceso al apartado de administración Lugar del propietario. Tendrá acceso a toda la información de la parte más estática de la página, pero solo en modo lectura. Usuario Registrado Se trata de cualquier usuario que haya completado el proceso de registro y se haya logueado en el portal. Tendrá el mismo acceso y funcionalidad que el usuario anónimo y además podrá realizar las siguientes opciones, realizar una pre-reserva interactuando con el calendario e insertar un comentario en el apartado de Opiniones, además podrá modificar y borrar sus propios comentarios una vez los haya insertado. No tendrá acceso al apartado de administración Lugar del propietario. Usuario Interno Este tipo de usuario solo puede ser creado por el usuario administrador. Podrá realizar las mismas funciones que un usuario anónimo. Accederá al Lugar del propietario siendo capaz de listar todo el contenido que se encuentre en él, reservas realizadas mediante calendario, histórico de reservas. Pero no podrá realizar la función de modificar y eliminar ningún contenido. Usuario Administrador Solo existe un único usuario administrador creado junto con la aplicación. Realiza la misma función que un usuario interno y además: Será el encargado de realizar cualquier modificación (y eliminación) sobre la gestión de reservas. Podrá crear nuevos usuarios internos, como también usuarios registrados, además de tener acceso a la información del registro de usuario. Podrá modificar y eliminar comentarios creados por usuarios registrados.
42
3.1.3.- Requisitos funcionales Siguiendo una clasificación basada en la tipología de usuario, a continuación vamos a mostrar una descripción detallada de los casos de uso distintos en función del usuario, definiremos cada caso de uso mediante el acrónimo CU, distinguiéndolo con el número en concreto y siendo titulados: Usuario anónimo Recordamos que este tipo de usuario puede ser cualquier futuro cliente, tendrá acceso a la mayoría de apartados estáticos de la página web. CU-01 Registrarse en la página web
Introducción Entradas
Proceso
Salidas
El usuario anónimo decide formar parte de la página web como futuro usuario registrado, para poder acceder a nuevas funcionalidades, seguramente será un huésped que ya haya estado en la casa. Cada uno de los campos del formulario de registro. El sistema muestra el formulario de alta de nuevo usuario. Si el usuario confirma su envío, el sistema verifica que hayan sido cumplimentados los campos obligatorios. El nuevo usuario será insertado en la BD asegurándose de que el em@il no exista. Texto informando de que el proceso fue exitoso.
CU-02 Visualizar galería de imágenes Introducción Entradas Proceso Salidas
El usuario podrá visualizar todas las imágenes en una galería estática, para ello deberá pulsar la pestaña de imágenes. Pestaña “imágenes” seleccionada por el usuario en el menú de selección. El sistema recibe como entrada el código de la pestaña seleccionada, carga los estilos y las imágenes para representar la galería. Página con las imágenes en miniatura.
CU-03 Visualizar en detalle una imagen
Introducción Entradas
El usuario podrá aumentar el tamaño de las imágenes una vez seleccionada la galería, también podrá avanzar a la imagen siguiente y retroceder Imagen seleccionada por el usuario.
43
Proceso Salidas
El sistema recibe como entrada el código de la pestaña seleccionada, carga los estilos y el código javascript para representar la galería. Ventana con la imagen seleccionada, a una mayor resolución.
CU-04 Visualizar la descripción de la casa Introducción Entradas Proceso Salidas
El usuario en esta pestaña dispondrá de una descripción breve pero concisa de la casa, junto con 3 imágenes. Pestaña “la casa” seleccionada por el usuario. El sistema recibe como entrada el código de la pestaña seleccionada, carga el texto, las imágenes y los estilos para representar dicha página. Página con la descripción de la casa.
CU-05 Visualizar la ubicación en el mapa
Introducción Entradas Proceso Salidas
El usuario en esta pestaña dispondrá de breve descripción para que sea capaz de acceder a la casa rural, junto con un mapa dinámico de la zona elaborado por gmaps. Pestaña “ubicación” seleccionada por el usuario en el menú de selección. El sistema recibe como entrada el código de la pestaña seleccionada, carga el texto, las imágenes y los estilos para representar dicha página. Página con la información sobre ubicación y el mapa.
CU-06 Visualizar las tarifas
Introducción Entradas Proceso Salidas
El usuario en esta pestaña dispondrá de una tabla con las tarifas correspondientes por temporada, para que conozca los precios dependiendo de cuando decida venir a la casa. Pestaña “tarifas” seleccionada por el usuario en el menú de selección. El sistema recibe como entrada el código de la pestaña seleccionada, carga el texto, los estilos y el calendario para representar dicha página. Página con las tarifas en función de la temporada y el calendario de disponibilidad.
CU-07 Visualizar el calendario de ocupación Introducción
El usuario en esta dispondrá de la visualización del calendario
44
Entradas Proceso Salidas
de ocupación, en gris estarán las fechas libres, mientras que en rojo los días ocupados, se abrirá una nueva ventana con solo el calendario, con el mes en concreto y dos adyacentes, con el selector podrá cambiar de mes hacia delante o atrás en el tiempo. Selección de la imagen del calendario. El sistema carga los estilos del calendario a crear, busca en la BD la ocupación confirmada para marcar en rojo las fechas no disponibles y crea el calendario de ocupación. Ventana emergente con la disponibilidad del calendario.
CU-08 Enviar una solicitud de reserva
Introducción Entradas Proceso Salidas
El usuario decide formar realizar una reserva para pasar unos días en la casa rural, cumplimenta los campos del formulario y espera a recibir un m@il con la disponibilidad y precios sobre sus fechas seleccionadas. Todos los campos obligatorios del formulario. El sistema crea un correo electrónico con los campos que han sido rellenados en el formulario y es enviado a la dirección de correo del administrador de la página. Texto informando sobre el correcto envío de la información.
CU-09 Acceder a un enlace Introducción Entradas Proceso Salidas
El usuario puede acceder a otras páginas de sitios relacionados o de interés común. Click en la imagen del sitio al que acceder El usuario es redirigido al website en concreto abriendo una nueva pestaña en el navegador. Website en concreto, el que hemos seleccionado.
CU-10 Visualizar opiniones ajenas Introducción Entradas Proceso Salidas
El usuario podrá visualizar las opiniones de otros huéspedes que han estado alojados en la casa rural anteriormente. Pestaña “opiniones” seleccionada por el usuario en el menú de selección. El sistema busca en la BD y extrae toda la información necesaria para cada usuario, luego estos mismos campos los introduce en una tabla y es lo que el usuario visualiza. La información en modo texto referente a los comentarios realizados por otros usuarios.
45
Usuario registrado Recordamos que un usuario registrado dispone de la misma funcionalidad que un usuario anónimo, además de las descritas a continuación. CU-11 Autenticarse en la página web
Introducción Entradas Proceso
Salidas
Para identificarse en la página web e iniciar así una sesión, será suficiente con que el usuario ingrese su Username y Password en el área de Usuarios. Los datos de Username y Password ingresados por el usuario. El sistema contrasta la información recibida con la BD. En caso de encontrar una tupla que coincida, valida la operación e inicia una sesión. Así el usuario tendrá acceso a otro tipo de contenidos. Mensaje de fallo en caso de una mala autenticación o de bienvenida en caso contrario.
CU-12 Modificar perfil y preferencias de usuario Introducción Entradas
Proceso
Salidas
El usuario puede editar los datos de registro así como alterar sus preferencias. Formulario cumplimentado con los campos modificados a conveniencia del usuario. El sistema muestra el sistema de modificación al usuario. Si éste confirma su envío, el sistema verifica que los campos modificados presentan el formato adecuado. A continuación modifica las tuplas con los nuevos valores en la BD. Se informa al usuario que la modificación concluyó con éxito o que el proceso fue cancelado.
CU-13 Realizar una pre-reserva mediante el calendario
Introducción Entradas Proceso
Salidas
El usuario puede reservar unas fechas modificando directamente el calendario de ocupación, siempre y cuando sea un usuario registrado, (aceptado por el sistema) Todos los campos obligatorios del formulario. El sistema verifica que hayan fechas libres para esa reserva, consultando la BD, entonces modifica los valores de ambas tablas, de reserva y del calendario, para confirmar que dicha reserva ha sido realizada. Calendario con los días seleccionados en rojo, junto con un mensaje al usuario de operación realizada con éxito.
46
CU-14 Insertar una opinión Introducción Entradas Proceso Salidas
El usuario registrado puede insetar una opinión en el área de opiniones. Formulario con el texto del mensaje y otros campos introducidos por el usuario. El sistema comprueba que los campos obligatorios han sido rellenados y que el texto de la opinión no contiene lenguaje ofensivo, en cuyo caso insertamos una nueva tupla en la BD. Se informa al usuario de que el mensaje fue insertado correctamente o error en caso contrario.
CU-15 Modificar una opinión
Introducción Entradas Proceso Salidas
El usuario puede modificar una opinión, siempre y cuando sea propietario de la misma. El sistema no dará la opción de modificado sino se cumple esta condición. Enlace “modificar opinión” junto con los datos a modificar. El sistema comprueba que los campos obligatorios han sido rellenados y que el texto de la opinión no contiene lenguaje ofensivo, en cuyo caso modificamos la tupla en la BD Se informa al usuario de que el mensaje fue modificado correctamente o error en caso contrario.
CU-16 Eliminar una opinión
Introducción Entradas Proceso Salidas
El usuario puede eliminar una opinión, siempre y cuando sea propietario de la misma. El sistema no dará la opción de borrado sino se cumple esta condición. Enlace “eliminar opinión” seleccionado por el usuario, el cual lleva asociado el identificador del mensaje a eliminar. El sistema borra de la BD la tupla asociada al identificador del mensaje. Se informa al usuario de que el mensaje fue eliminado correctamente.
CU-17 Cerrar sesión Introducción Entradas Proceso
El usuario puede cerrar la sesión activa en cualquier momento. Enlace “cerrar sesión” seleccionado por el usuario, el cual envía una variable de logout. Es destruido el identificador de sesión así como las variables de sesión.
47
Salidas
Se muestra la página desde donde hemos realizado logout con las opciones propias de un usuario anónimo.
Usuario interno Recordamos que este usuario es el responsable de gestionar las reservas que sucedan en tiempo real en la aplicación. CU-18 Visualizar histórico de reservas
Introducción Entradas Proceso Salidas
El usuario puede obtener un listado de reservas realizadas, utilizando un formulario de búsqueda en base al año de la estancia de la reserva. Selección del año a buscar. El sistema realizar una búsqueda de la reservas totales mediante consulta a la BD, mediante sentencias SQL es capaz de listar tan solo las estancias del año introducido. Listado de todas las reservas en una tabla, con todos sus atributos que aportan información adicional.
CU-19 Visualizar pre-reservas mediante calendario
Introducción Entradas Proceso Salidas
El usuario puede visualizar las pre-reservas realizadas por los usuarios registrados, para atender su petición y comenzar las gestiones. Selección de pestaña de pre-reservas. El sistema busca la pre-reserva en la BD y extrae toda la información necesaria de la tupla encontrada. Se informa al usuario interno de las nuevas pre-reservas mediante una tabla.
CU-20 Eliminar pre-reservas mediante calendario
Introducción Entradas Proceso Salidas
El usuario puede, en caso de no tener interés de llenar esos días la casa, anular la pre-reserva y ponerse en contacto con el cliente para confirmárselo. Selección de pre-reserva a eliminar en la tabla de pre-reservas. El sistema consulta la BD directamente, accede a la tupla en concreto y la borra. Se muestra un mensaje informando de la eliminación de la tupla, siempre tendrá éxito esta acción.
48
CU-21 Crear una reserva Introducción Entradas
Proceso
Salidas
El usuario puede dar de alta nuevas reservas, cumplimentando cada uno de los campos del formulario. Formulario cumplimentado y enviado por el usuario. El sistema muestra el formulario de apertura de una nueva reserva. Al cumplimentar el envío el sistema verifica que estén cumplimentados los campos obligatorios. Si se cumplen las condiciones anteriores en sistema introducirá una nueva reserva en la BD. Se informa al usuario de que la reserva fue introducida exitosamente.
Además el usuario interno es capaz de autenticarse y cerrar sesión en la página web, comportamientos ya descritos anteriormente en los casos de uso CU-11 y CU-17.
Usuario administrador Por último recordamos que este tipo de usuario dispone de las posibilidades de un usuario interno, además de las funcionalidades que se describen a continuación. CU-22 Visualizar usuario registrados en la página web
Introducción
Entradas Proceso Salidas
El administrador puede obtener un listado de todos los usuarios registrados en la página. El listado resultado estará ordenado en órden alfabético de primer apellido, mostrará sus datos y opciones como eliminación y visualización en detalle. Seleccionar la sección usuarios, dentro del panel del administrador. El sistema obtiene de la BD la información necesaria de cada usuario registrado en la misma. Listado ordenado alfabéticamente por apellido de todos los usuarios junto con algunas opciones.
CU-23 Visualizar los detalles de los usuarios Introducción Entradas Proceso Salidas
El administrador puede visualizar todos los detalles de un usuario determinado a excepción de su contraseña. Username seleccionado por el administrador. El sistema busca el usuario en la BD y extrae toda la información necesaria de la tupla encontrada. Ventana emergente mostrando toda la información disponible
49
sobre el usuario a excepción de su contraseña. CU-24 Crear un usuario Introducción Entradas
Proceso
Salidas
El administrador puede dar de alta nuevos usuarios, ya sea con privilegios de interno o de registrado. Formulario cumplimentado por el administrador. El sistema muestra el formulario de nuevo usuario. Si el administrador confirma su envío, el sistema verifica que hayan sido marcados los campos obligatorios. De ser así el nuevo usuario es insertado en la BD, siempre que no exista duplicidad en los campos username y em@il. Se informa al administrador que el evento fue introducido con éxito o que el proceso fue cancelado.
CU-25 Eliminar un usuario Introducción Entradas Proceso Salidas
El administrador puede eliminar usuarios de la BD a conveniencia. Formulario de confirmación de borrado de usuario, enviado por el administrador. El sistema muestra un formulario de confirmación de borrado. Si éste es confirmado, se elimina de la BD la tupla asociada al usuario. Se muestra un mensaje informando que la eliminación concluyó con éxito o bien que el proceso fue cancelado.
CU-26 Modificar una reserva Introducción Entradas Proceso Salidas
El administrador puede modificar una reserva de la BD. Formulario de confirmación de modificación de reserva enviado por el administrador. El sistema muestra un formulario de confirmación de modificación. Si éste es confirmado, se modifica de la BD la tupla asociada a la reserva. Se muestra un mensaje informando que el modificado concluyó con éxito.
CU-27 Eliminar una reserva Introducción Entradas
El administrador puede eliminar una reserva de la BD. Formulario de confirmación de borrado de reserva enviado por el administrador.
50
Proceso Salidas
El sistema muestra un formulario de confirmación de borrado. Si éste es confirmado, se elimina de la BD la tupla asociada a la reserva. Se muestra un mensaje informando que la eliminación concluyó con éxito.
CU-28 Eliminar una opinión
Introducción Entradas Proceso Salidas
El administrador puede eliminar cualquier opinión a conveniencia, con el fin de retirar comentarios ofensivos o simplemente si se diera el caso de que el mensaje no guarde relación con el contenido. Enlace de “eliminar opinión” seleccionado por el administrador. Se elimina de la BD la tupla correspondiente a la opinión seleccionada. Se muestra un mensaje informando que la eliminación concluyó con éxito.
3.2.- Análisis Una vez han sido descritos los requisitos capturados, en el capitulo anterior, es preciso profundizar en alguna metodología que propicie la detección de aquellos apartados generales que guardan una relación directa con esos requisitos. Esta metodología debe tener la virtud de ser lo suficientemente abstracta como para conseguir mantener la independencia con los diversos recursos tecnológicos disponibles para su implementación, los cuales serán abordados en capítulos posteriores. En la actualidad, existe una metodología ya consolidada y denominada RUP (Rational Unified Process), que cubre ampliamente las expectativas expresadas en el párrafo anterior. Esta metodología se apoya en modelos UML (Unified Modeling Language) que ayudan a describir la función, la arquitectura o el diseño del software. UML es el lenguaje de modelado de sistemas software mas utilizado actualmente, respaldado por el OMG (Object Management Group), que sirve eficazmente para describir procesos haciéndose valor para ello de elementos gráficos. Permite visualizar, especificar, construir y documentar un sistema. Ofrece por tanto de un estándar que podemos hacer servir óptimamente en nuestra aplicación web. UML dispone de diversos diagramas para identificar las diversas entidades del sistema a modelar. De entre todos ellos, nos basaremos en el Diagrama de Casos de Uso así como en el Diagrama de Clases para continuar con el desarrollo del proyecto que nos ocupa.
51
3.2.1.- Diagrama de casos de uso Un Diagrama de Casos de Uso muestra como debería reaccionar el sistema con el usuario, o bien con otro sistema, para conseguir un objetivo. Se trata por tanto de una representación de la secuencia de acciones entre un sistema y sus actores, respondiendo a un evento que inicia uno de los actores principales. El uso de este tipo de diagramas esta ampliamente extendido debido a la notación relajada de la que hace uso, resultando por tanto muy cercano para el usuario final. En la Figura 20 se muestran los diversos actores identificados cuyas peculiaridades ya fueron descritas en apartados anteriores. El diagrama pone de manifiesto la especialización de algunos de los usuarios. El usuario registrado hereda atributos del usuario anónimo, por otro lado el usuario interno también hereda atributos del usuario anónimo pero no del usuario registrado. Y definitivamente el usuario administrador hereda atributos del usuario interno.
Figura 20.- Actores principales del sistema
En los diagramas de casos de uso debemos tener en cuenta que han sido consideramos en las Figuras 23 y 24 tan solo los casos de uso propios de determinados usuarios, entendemos que los casos de uso del usuario administrador son heredados del usuario interno y este del usuario anónimo. Como sigue, el usuario registrado heredará los casos de uso del usuario anónimo, pero estos han sido obviados en los diagramos en concreto para facilitar su lectura. Expondremos a continuación los diferentes casos de uso para cada uno de los actores identificados.
52
Figura 21.- Casos de uso para el usuario anónimo
Figura 22.- Casos de uso para el usuario registrado
53
Figura 23.- Casos de uso para el usuario interno
Figura 24.- Casos de uso para el usuario administrador
3.2.2.- Diagrama de clases Los Diagramas de Clases muestran las diversas entidades que componen un sistema y como se relacionan unas con otras. Podríamos decir que son diagramas estáticos en tanto en cuanto describen la estructura del sistema. Una clase define los atributos y los métodos de una serie de objetos, de forma que todos los objetos de una clase determinada tienen el mismo comportamiento y el mismo conjunto de atributos. Para el caso que nos ocupa, un objeto podría ser un usuario, un contacto o una opinión. A continuación se muestra el Diagrama de Clases (Figura 25) que representa el sistema objeto de estudio. Asimismo se incluye la cardinalidad y nombre de algunas de las relaciones, con el objetivo de facilitar la comprensión de aquellos escenarios que podrían suscitar cierto grado de ambiguedad.
54
Figura 25.- Diagrama de clases del proyecto
55
3.3.- Diseño En este capitulo, la aplicación será descrita con un nivel de detalle todavía mas elevado si cabe que el conseguido en el capitulo de Análisis. Para conseguir el objetivo anterior, nos haremos servir de una arquitectura Web basada en el modelo de tres niveles. Arquitectura basada en tres niveles De entre todos los estilos arquitectónicos que podemos elegir para realizar el diseño de la aplicación (arquitecturas de flujos de datos, de componentes independientes, centradas en datos –repositorios–, de máquina virtual o arquitecturas heterogéneas) la que mejor se amolda los objetivos que se pretenden lograr con el desarrollo de la aplicación es la arquitectura de componentes independientes debido a que este esquema favorece tanto la distribución de los datos como el procesamiento que se va a realizar sobre ellos, en una serie de unidades independientes (los denominados componentes) que interactuarán entre sí para lograr un objetivo. Normalmente no se podrá acceder de forma directa al estado que almacena un componente sino que se deberá hacer invocando a sus operaciones. De hecho el adoptar este esquema arquitectónico va a permitir que nos podamos centrar más en los procesos que se llevarán a cabo sobre los datos, es decir, nos centraremos más en la funcionalidad que se está pidiendo para el sistema y en su organización en unidades independientes. Además, el hecho de seguir esta arquitectura nos va a reportar una ventaja adicional: al desarrollar cada una de las partes del sistema como una serie de unidades independientes va a favorecer al reutilización de las mismas (posteriormente las podremos utilizar en otras aplicaciones) además de que favorecerá el hecho de que cada componente pueda ser instalado en máquinas diferentes (lo que nos permitirá, por ejemplo, conseguir un mayor balanceo en las cargas de los servidores web ya que las máquinas en las que se instale la parte web pueden ser independientes de las máquinas donde estén almacenados los datos físicamente). Una vez que nos hemos decantado por este estilo arquitectónico dentro de él podemos englobar a varios estilos: sistemas basadas en niveles, sistemas cliente-servidor, sistemas orientados a objetos distribuidos, sistemas basados en eventos, sistemas orientados a servicios, sistemas de procesos paralelos y sistemas peer-to-peer. De entre todos ellos nos vamos a decantar por el estilo arquitectónico basado en niveles en el cual el sistema se representará de una forma jerárquica entre todos los elementos que los forman, de manera que cada una de las capas proporciona servicios a la capa que está inmediatamente por encima (o delante) de ella y se sirve los elementos de la capa que está inmediatamente por debajo (o detrás) de ella.
56
En el caso de la aplicación que estamos diseñando se ha realizado una división del sistema en las siguientes tres capas:
Figura 26.- Arquitectura de tres niveles
A continuación describiremos en detalle cada uno de los niveles: • Nivel de Interfaz o Presentación: formado por aquellos elementos que permiten al usuario interactuar con el sistema (formularios, imágenes, consulta de disponibilidad…). También utilizada por el sistema para informar al usuario (mensajes de error, información demandada,…). Asimismo, se refiere también al diseño y al formato en que es mostrada la información. Debe tener la virtud de resultar intuitiva y amigable para el usuario, esto es, comprender su funcionamiento en el menor tiempo posible, en pocas palabras: “ponerle las cosas fáciles” al usuario. El nivel de interfaz es el que se comunica con el nivel de aplicación. • Nivel de Aplicación o Lógico: formado por las funciones que implementan el comportamiento de las diferentes clases, ya especificado en el apartado de análisis. Es el apartado encargado por tanto de pilotar las operaciones, de aplicar la lógica de control, de procesar y gestionar la información. Este nivel representa el enlace que comunica los otros 2 niveles. • Nivel de Almacenamiento o Persistencia: integra la Base de Datos y el Sistema de Gestión de la Base de Datos (MySQL y phpMyAdmin respectivamente, en el caso que nos ocupa). No solo es el encargado de almacenar la información, sino también el responsable de la seguridad e integridad de la misma. A continuación se detalla como han sido abordados cada uno de los niveles para el caso en estudio.
57
3.3.1.- Nivel de presentación Esta capa será la encargada de generar la interfaz de usuario en función de las acciones que éste lleve a cabo en la aplicación, es decir, que deberá contener todos los componentes necesarios que permitan realizar la interacción de los usuarios con la aplicación. De hecho, en el estudio de los requisitos del sistema hemos visto que tenemos un total de cuatro usuarios diferentes: administradores, internos, registrados y anónimos, por lo que la capa de presentación deberá ofrecer las funcionalidades que permitan a todos ellos la realización de los casos de uso que cada uno ellos inicia. En la Figura 27, podemos observar la estrategia llevada a cabo para diseñar la página principal, todas las demás páginas tienen el mismo formato. Una cabecera que en todas las páginas es la misma, contiene una imagen del entorno y los rótulos de “Casa rural Sansofí”, un menú para acceder a las secciones de la página web y bajo de el menú un recuadro con el fondo en blanco con los contenidos de cada sección, de cara a los usuarios anónimos (posibles futuros huéspedes) tiene un aspecto, claro y conciso de la información, en la página principal se ha optado por mostrar una foto de la casa vista en perspectiva caballera, con las montañas de la Sierra de Corbera de fondo, dando el toque de calidez ideal que invitan al usuario a continuar visitando las demás secciones de la página web.
Figura 27.- Página principal
58
Figura 28.- Descripción de la casa
Figura 29.- Imágenes de la casa
59
En las secciones de las Figuras 28, 29, 30, 31 y 32 conservamos la misma misma plantilla, junto con la imagen de cabecera y el logo de la empresa, el menú con enlaces a contenidos, el cuerpo de la página (que incluirá la información propia de cada sección) y un pie de página para todas las secciones igual que incluye. En la Figura 28 realizamos una breve descripción de la casa, en el primer párrafo definimos su ubicación y el entorno, junto con una imagen acorde con el texto, esta estratégia será la misma para los otros dos párrafos. En el segundo explicamos el equipamiento del hogar y el tercero es un texto de puro marketing que intenta convencer a los futuros huéspedes de lo idónea que es la casa para su estancia. En la Figura 29 nos encontramos con la sección de imágenes, su contenido es muy característico, primero aparecen los exteriores, dando una mayor importancia a la piscna y barbacoa; luego aparecen las terrazas, comoder y cocina; para terminar los dormitorios. En la Figura 30 encontramos un applet de google maps ideal para situar la casa rural en un punto del mapa y poder acceder a los alrededores de forma dinámica. Junto al mapa se encuentra una breve descripción de la ubicación del lugar, ofreciendo dos posibilidades para llegar a la casa rural, bien por la autopista o por la carretera nacional. Y también se ofrecen las coordenadas GPS para que nos lleve dicho aparato.
Figura 30.- Ubicación de la casa
60
Figura 31.- Formulario de contacto
Figura 32.- Opiniones de huéspedes
61
La sección de la Figura 31 nos ofrece la posibilidad de ponerse en contacto con el administrador de la casa rural, para ello disponemos de un formulario de contacto visible y claro, en un fondo de color blanco, los campos a cumplimentar serán los necesarios para procesar una pre-reserva. También aparece la dirección de la casa, junto con el teléfono y nombre de la persona de contacto, pudiendo contactar por teléfono o por correo electrónico. En la Figura 32 observamos un diseño muy sencillo (en todas las secciones predomina el diseño sencillo) ofreciendo la información de manera muy clara y directa, obviando cualquier parafernalia que pueda entretener la mente del futuro cliente en detalles sin importancia. Los campos que aparecen a cumplimentar en esta sección son los necesarios, siendo el comentario el más importante, que transmitirá confianza a los lectores que tengan pensado pasar una estancia en la casa rural. La sección de la Figura 33 ofrece enlaces a otros sitios web, siendo el primero la cuenta de usuario de Facebook de la casa rural, importante tener allí una página (esto será comentado en el capítulo IV). El segundo un negocio de venta de naranjas del huerto de la casa rural y por último, un enlace a un portal especializado en turismo vacacional, donde se encuentra el anuncio en múltiples idiomas. Las secciones de tarifas y entorno no han sido comentadas en dicho PFC por motivos de privacidad.
Figura 33.- Enlaces a otros sitios
62
3.3.2.- Nivel de aplicación Este nivel contiene la lógica que modela los procesos de aplicación y será donde se realizará todo el procesamiento necesario para poder atender las peticiones de los usuarios (actores) que nos llegarán desde el nivel de presentación. Además este nivel es el responsable de interactuar con el nivel de acceso de acceso a datos para poder ejecutar su lógica. Es precisamente el papel de enlace descrito anteriormente, el que le confiere su carácter de independencia y que por tanto permite efectuar modificaciones en los otros 2 niveles, sin que ello suponga una revisión en profundidad en el resto de niveles.
Figura 34.- Diagrama de tareas
En la Figura 34 puede observarse una muestra de diagrama de procesos o tareas donde son representados los procesos externos como puntos de entrada de la información a la aplicación de la página objeto de estudio, así como también quedan representados los conjuntos de procesos internos que se desencadenaran respondiendo al “estimulo” de los primeros. Estos procesos internos pueden descomponerse en otros a su vez más específicos, en coherencia con las definiciones dadas en los casos de uso. Según puede extraerse de la figura anterior, el diagrama representa los procesos externos como aquellos que son accedidos por elementos “actor”, así como los conjuntos de tareas relacionadas con otras “subtareas”, relación manifiesta mediante el uso de flechas indicando relaciones de dependencia.
63
3.3.3.- Nivel de persistencia Esta capa, también denominada a veces capa de integración, será la encargada de implementar el acceso a los datos de los cuales se nutre la aplicación, habitualmente recurriendo a un gestor de base de datos relacional. A continuación analizaremos nuestro diseño lógico, esto es, la estructura de la base de datos representada en un lenguaje comprensible por cualquier sistema de gestión de bases de datos relacionales.
USUARIO (dni:varchar(9), nombre:varchar(20), apellidos:varchar(60), nacimiento:date, email:varchar(50), username: varchar(25), password: varchar(50), tipo:varchar(3)) CP:{id} VNN:{nombre, email, username, password, tipo}
RESERVAS (id:int(9), nombre:varchar(50), origen:varchar(50), observaciones:text, precio:int(4), email:varchar(45) ) CP:{id} VNN:{nombre, estancia, precio}
estancia:date,
PREFERENCIAS_USUARIOS (username: varchar(40), casa: varchar(8), ubicacion:int(4), tarifas: int(4), enlaces: int(4), contacto: int(4), opiniones: int(4), ) CP: {username} VNN: {casa, ubicacion, tarifas, enlaces, contacto, opiniones} CAj: {username} -> USUARIO
OPINIONES (id:int(3), username:varchar(25), nomb:varchar(50), ciudad:varchar(40), encontr:varchar(80), fecha:date, texto:text ) CP:{id} VNN:{id, username, nomb, ciudad, encontr, fecha, texto} CAj:{username} -> USUARIO
CALENDARIO (id, nombre, llegada, salida) CP:{id} VNN:{id, nombre, llegada, salida} CAj:{nombre} -> RESERVAS
64
3.4.- Implementación En el capitulo anterior, la aplicación objeto de este estudio fue estructurada en diversos niveles y fueron descritos todos ellos de la forma mas abstracta posible, evitando entrar en detalles sobre tecnologías o recursos de implementación. En el capitulo que nos ocupa, serán revisadas las tecnologías Web recurridas para implementar la aplicación, progresando de forma ordenada a través de la estructura de niveles que fue especificada.
3.4.1.- Tecnologías utilizadas A continuación serán descritas con mayor nivel de profundidad, las tecnologías utilizadas más importantes en este proyecto que ya fueron presentadas en el punto 1.4.- Materiales y métodos. HTML HTML, siglas de HyperText Markup Language (Lenguaje de Marcado de Hipertexto), es le lenguaje que predomina en el desarrollo de paginas web. Gracias a el, es posible no solo describir el contenido de texto de una pagina web sino tambien su forma o estructura, permitiendo incrustar imagenes y otros objetos en la misma. La historia del estandar se remonta a principio de 1990, cuando Tim Berners-Lee define el HTML como un subconjunto de un conocido lenguaje de etiquetas denominado SGML y ademas crea algo más valioso aun, el World Wide Web.
Figura 35.- Etiquetas empleadas por el lenguaje HTML
65
Este lenguaje se escribe a base de etiquetas delimitadas por corchetes angulares (< , > ). Cuando se utiliza una etiqueta, habitualmente debe utilizarse otra de cierre, la cual antepondra el simbolo de barra ( / ). Sirva un ejemplo:
Esto esta escrito con una fuente normal mientras que esto esta escrito con una fuente mas gruesa o negrita
El parrafo anterior sera mostrado como: Esto esta escrito con una fuente normal mientras que ésto está escrito con una fuente más gruesa o negrita El lenguaje HTML puede ser escrito y editado con cualquier editor de textos sencillo, aunque habitualmente se emplean editores potentes que permiten visualizar el resultado de lo que se esta haciendo asi como identificar errores de programación. Una página web HTML debe contener una estructura mínima de etiquetas como sigue: Una vez rellenado el formulario pasamos a crear el mensaje cogiendo cada campo del formulario con el método HTTP_POST_VARS, serán añadidos a la variable $cuerpo, si se han completado todos los campos enviamos un mail a [email protected] con el asunto “Reserva CASA RURAL SANSOFI” y el cuerpo el contenido de la variable $cuerpo.
CASA
RURAL
//doy las gracias por el envío print "Gracias por rellenar el formulario. Se ha enviado correctamente.\n"; print '
'; print "En breve nos pondremos en contacto con usted\n"; print '
'; print 'Regresar'; print '
'; } ?>
Nombre | Origen | Estancia | Observaciones | e-m@il | Precio |
---|---|---|---|---|---|
".htmlentities($array[1])." | "; "".htmlentities($array[2])." | "; "".$array[3]." | "; "".htmlentities($array[4])." | "; "".htmlentities($array[6])." | "; "".$array[5]."€ |
incluyendo en este las palabras clave preferiblemente dentro de , o ya que de alguna manera enfatiza la importancia por ser un ancla o enlace a lago, o estar resaltado para el usuario. Una vez hecho todo esto hay que asegurarse de que el texto está bien escrito, tiene sentido y se lee perfectamente. Todo esto es respecto al texto ya que Google y cualquier otro buscador, para tomar las decisiones de la importancia del contenido de nuestra Web, solo puede basarse en el texto. Tanto en el contenido como el cualquier otro ámbito de la optimización hay que saber que no podemos abusar de en la repetición de los términos buscando mayor valor ya que existen partes del algoritmo que categoriza ese contenido de SPAM, de forma que no solo pierde importancia sino que puede pasa a ser penalizado. De esta forma es bueno que en cada párrafo ( ) no se repita más de una vez el término pudiendo usar sinónimos que también serán valorados ya que los algoritmos usan semántica como ya vimos anteriormente.
4.1.4.- Contenido en imágenes y tamaño Una forma discreta de dar una mayor presencia a las palabras clave es empleando etiquetas alt y title en las imágenes. De esta forma podremos poner un texto acorde a la imagen en la etiqueta title que se mostrará al pasar el ratón por encima o dejarla vacía si no queremos que muestre nada, y una palabra clave interesante para los buscadores en la etiqueta alt, este texto nunca será visible para el usuario, solo se mostraría si por algún motivo la imagen no se pudiera cargar. Por ejemplo:
Cambiar por:
En este ejemplo vemos también que se ajusta el tamaño de la imagen a un tamaño determinado posiblemente porque la imagen fuese de mucho mayor tamaño. Con respecto a esto es recomendable transformar la imagen a un tamaño y formato que se
89
ajuste directamente al que queramos y así reducimos el tamaño de estas y tanto para el usuario como para el robot la carga de dicha imagen es más rápida. Por ejemplo una pequeña imagen para un enlace digamos a la página del Real Madrid no debe de tener una imagen de 500 x 500 px en formato .bmp, para que luego lo transformemos en mediante las etiquetas weight y height de en una imagen de 25 x 25 px. En este caso es mejor usar un formato .jpg o .png de tamaño 25 x 25 px de mucho menor tamaño en disco.
4.1.5.- Dominios y URLs amigables Para entender qué es una URL amigable o “friendly URL”, lo más sencillo es entender primero qué es una URL sucia o compleja o una “dirty URL”. Hoy en día existen una gran cantidad de sitios Web con contenido dinámico y que usan bases de datos, con lo cual es necesario de alguna manera enviar información de una página a otra para poder construir correctamente las páginas. Esta información es enviada al final de la URL como parámetros (después de un signo de interrogación – método GET). Este método es muy útil para la programación ya que una sola página dinámica puede mostrar diferente información según los parámetros enviados por la URL. Por ejemplo, cuando en Google realizamos una consulta para buscar “casa rural Valencia” la URL que pone Google es la siguiente: http://www.google.es/#hl=es&sugexp=frgbld&gs_nf=1&cp=13&gs_id=2n&xhr=t&q=c asa+rural+Valencia&pf=p&safe=off&output=search&sclient=psyab&oq=casa+rural+Va&aq=0&aqi=g4&aql=&gs_sm=&gs_upl=&gs_l=&pbx=1&bav=o n.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=a2e4743a97ab33d2&biw=1280&bih=661 A veces no hace falta ni siquiera que haya contenido dinámico para que las URLs no sean amigables, sino que el programador, o por desconocimiento del concepto de URL amigable o por dejadez en la programación utiliza URLs que no dicen absolutamente nada: http://www.mi-sitio.es/bagn/ptk_7.html Entonces llegamos a la conclusión de que una URL sucia es una URL difícil de escribir, de recordar y de conservar. Las URLs amigables son URLs descriptivas del contenido de la página, es decir, son URL que dicen algo sobre el contenido que se está visualizando en el navegador entre otras características. Características de las URLs amigables - Son fáciles de adivinar y son descriptivas del contenido. http://www.misitio.com/contactar
90
- Muestran la estructura del sitio. http://www.misitio.com/contactar/administrador http://www.misitio.com/contactar/comercial - Son fáciles de comunicar verbalmente en persona o por teléfono. - Son suficientemente cortas para copiar en un correo electrónico o documento sin que haya que realizar un cambio de línea (60 caracteres o menos). - Son estéticas para poner en catálogos, folletos y otros documentos. - Son fáciles de recordar. - Son fáciles de escribir. - Promueven la usabilidad evitando ser largas y complejas. - Evitan los espacios en blanco en los nombres de archivos y carpetas. Por ejemplo, un nombre de archivo como “especificaciones de producto.html”, provocaría una URL como “especificaciones%20de%20producto.html”. - Evitan los signos de puntuación en nombres de archivo y carpetas, como por ejemplo el signo “&”, la arroba (@), el porcentaje (%) o el guión bajo (“_”): especificaciones_de_producto.html. El guión bajo normalmente es difícil de comunicar y de escribir y este tipo de nombres normalmente denotan estructuras de Web mal diseñadas. En caso de ser requeridos nombres de este tipo recomendamos usar el guión, por ejemplo especificaciones-producto.html, ya que Google lo entenderá como un cambio de palabra. - Todas las letras que las componen son minúsculas. Puedes pensar que la mejor opción del caso anterior es la de poner EspecificacionesDeProducto.html, pero esto es un gran error ya que muchos servidores son sensibles a las mayúsculas y a las minúsculas y si un usuario pone especificacionesdeproducto.html cuando el nombre del fichero es EspecificacionesDeProducto.html el servidor retornará un error. - Evitan, siempre y cuando sea posible, introducir variables al final de la URL ya que en algunas ocasiones URLs del tipo www.misitio.com/noticias.php?id=5 son resultado de un uso de las páginas dinámicas inapropiado. - Los dominios son accesibles incluso cuando existe algún error de escritura por parte del usuario. Son muy comunes los errores a la hora de escribir, como por ejemplo al ir deprisa en vez de escribir video.google.es, escribir vido.google.es. Personalizar la página de error 404 ayudará al usuario a saber que ha llegado a la Web solo que se ha equivocado al escribir la URL. Un buscador en la página de error 404 le
91
ayudará a encontrar la página que buscaba. Además, si los usuarios se equivocan frecuentemente al escribir su dominio, puede ser conveniente comprar los dominios que coinciden con los errores más comunes (E.j.gogle.com). - Los dominios son accesibles en diferentes TLD (dominio de nivel superior). Es muy común en España no acordarse si un dominio acaba en .com o en .es, así que es muy recomendable pagar por el dominio en .com y por el dominio en .es,… http://www.misitio.com http://www.misitio.es http://www.misitio.net - Son persistentes en el tiempo, no deben desaparecer. No obstante en algunas ocasiones viene bien usar URLs sucias, son portátiles ya que generalmente contienen información necesaria para reconstruir una página dinámica. En algunos casos también puede ser útil usar una URL sucia cuando las desventajas de una URL sucia se convierten en una ventaja y es que existen casos en los que no es conveniente que el usuario pueda memorizar o escribir una URL. Esto se produce sobretodo en casos donde existe un control de acceso, si tienes una cuenta de gmail o hotmail podrás ver que es muy difícil memorizar las URLs que van apareciendo mientras consultas tu correo. Eso resulta ser una gran ventaja para la aplicación. Pero gran desventaja para el posicionamiento pero realmente esto es lo que se busca en estos casos. Con las URLs amigables conseguimos visitas gracias a un contenido claro y una fácil e intuitiva forma de navegar. Pero este tipo de URLs también es muy importante para el posicionamiento en buscadores. Anteriormente muchos motores de búsqueda ni siquiera indexaban páginas con variables incluidas al final de la URL con un interrogante (GET). Actualmente ya son indexadas, pero hay que tener en cuenta que los motores de búsqueda valoran mucho las palabras que hay en la URL. Aunque no se sabe a ciencia cierta, algunas teorías apuntan a que Google da más importancia a las palabras que hay en la URL que a las palabras que hay en el texto. Pero esto sí es seguro, Google valora mucho las palabras que hay en la URL y por tanto hay que procurar que las entienda. Por tanto, si tu URL es amigable y por tanto descriptiva, está claro que es muy probable que contenga palabras clave para las cuales quieras posicionar la página en concreto. Además, si las palabras están separadas con un guión (-) o una barra (/) google sabrá perfectamente qué palabras componen tus URLs. Una cuestión muy importante que hemos mencionado en las características de una URL amigable es que ésta debe ser permanente. ¿Por qué es importante este punto? Muy sencillo. Tu página Web va creciendo en importancia a medida que tus páginas son enlazadas por otras webs. Es más, pongamos que en tu Web hay un artículo muy
92
interesante y este ha sido enlazado desde muchas webs de terceros por la relevancia y el interés de su contenido. De repente lees este artículo y te das cuenta de que la URL de tu artículo es pobre y deseas cambiarla. Esto sería un gran error, ya que todos losenlaces que has conseguido se perderán en una página que retorna un error 404 (“Page not found”).. Si por lo que fuere es totalmente imprescindible cambiar la URL porque por ejemplo realizas un cambio de lenguaje de programación en el servidor (pasas de tecnología asp a php, por ejemplo) puedes realizar una redirección 301 “Moved Permanently”, ya que cuando la araña de google visite tu web toda la relevancia que había ganado tu página en *.asp se traspasará a tu página *.php. Cuando se realiza una Web desde cero estos puntos son muy importantes y tener una buena estructura con sentido ayuda y mucho en el posicionamiento. Por último y por cercanía a todo lo comentado en este punto esta la compra de dominios. Es bastante obvio que el nombre de nuestro dominio tiene que ser también descriptivo y que eso ayuda al posicionamiento ya que si tenemos una clínica dental estas dos palabras deberían estar en nuestro nombre de dominio. Otra técnica es la de compra de los nombres de dominio diferentes y redireccionarlos. En este caso Google y otros buscadores, en el mejor de los casos, si esta bien redireccionado, solo ven el dominio al que este redireccionado con lo que no ganaríamos nada.
4.1.6.- La geolocalización. Webs con idiomas En temas de posicionamiento nunca se está con la verdad absoluta, pero estudios realizados nos indican cuales son algunas técnicas como las descritas hasta ahora que son claramente mejor para usar. Una técnica que cada vez esta se va aclarando más es la forma de posicionar Webs Multilenguaje. Para esto primero explicaremos que es la geolocalización. Este término hace referencia a la importancia que dan los buscadores al ámbito territorial de cada página y de la persona que está realizando una búsqueda. Y sí, tanto Google como otros buscadores dan mucha importancia a este hecho y prueba de ello es el propio Google. Se puede comprobar que si escribimos www.google.com este nos redirigirá en la gran mayoría de los casos a www.google.es . Pero no solo esto es en lo que nos basamos. Estudios realizados a con diferentes praxis de diferentes localizaciones dan resultados totalmente diferentes. En ellos además Google también te redirecciona a Google.uk (Reino Unido), google.fr (Francia), etc. Y no solo haciendo búsquedas en los Google de cada país sino también en búsquedas de Google.com con cada proxis nos da resultados distintos. Hay que recordar que para todos estos estudios se ah tenido en cuenta que los robtos usan información de nuestro sistema para identificarnos como información en caché, historial., etc, que fue borrado previamente.
93
Hay que tener en cuenta los factores a los que los buscadores dan más importancia: el TLD, la ubicación del servidor, el idioma y dialecto del texto de la página, ubicación de los enlaces entrantes,… En definitiva, si tu mercado es España, lo ideal en cuanto a posicionamiento Web se refiere es coger un dominio .es, ubicar la Web en un servidor en España, obtener enlaces desde otros sitios Web en España, y utilizar el español de España y elegir las palabras clave con cuidado teniendo en cuenta el dialecto es algo muy importante. Con todo lo dicho al posicionar una Web multilenguaje hay que realizarlo de una manera concreta si queremos tener más fuerza. Está claro lo que hay que hacer si mi Web es en español pero qué hacer con los otros idiomas. En muchas ocasiones vemos colocar el cambio de idioma en la sesión de usuario y/o basado en cookies, de forma que al usuario entrar al sitio pueda escoger el idioma y el sitio sea capaz de recordar esa configuración para mostrarle el idioma correspondiente en la próxima visita. Esta opción podría funcionar bien para los usuarios, pero es pésima para los robots de búsqueda y registro en directorios. Básicamente se mostrarían el contenido de una misma página en varios idiomas en el mismo URL y ¿cuál indexarían los robots? Además que debemos tener en cuenta que los robots de búsqueda no soportan el manejo de sesiones, por lo que probablemente nunca lleguen a todos los idiomas, y aun así, ¿en que idioma guardarían la pagina en sus listados? Además de esto, habría solo un punto de entrada para el sitio, y por defecto el idioma inicial seria siempre uno solo, esto por un lado nos puede llevar a perder usuarios que no alcancen a ver la opción de cambio de idioma, y en cuanto al registro en directorios de los idiomas diferentes al por defecto puede que tampoco sea aceptable. Parecido es la opción de poner los distintos idiomas en distintas URLs. Además la página de inicio (la más valorada por los buscadores) solo seria una. La solución que tiene más adeptos es la de contratar distintos dominios, con las mismas características vistas anteriormente para cada país y enlazar unos con otros. Veamos que porque. La opción de dominios totalmente diferentes es mejor en este aspecto, aunque pudiera llegar a ser técnicamente más difícil lograrlo sin duplicar los códigos. Además, tiene un costo implicado (aunque pequeño), el de comprar los nombres de dominio, hosting (en dependencia del que se disponga), y encontrar los que deseemos. Esta opción daría la ventaja también que el compartir enlaces entre estos sitios otorga algo de PageRank y posicionamiento, no ubicándolos bajo la mismo IP y por tanto bajo el mismo servidor para cubrir todas las ganancias explicadas con anterioridad.
94
Una ultima opción es la de un subdominio por cada idioma parece más aplicable en general y se mantienen casi todas las ventajas. Muy en especial que los robots de búsqueda podrán indexar fácilmente cada subdominio como un sitio diferente, con cada versión de las páginas en los distintos idiomas, también ventajoso que para cada directorio donde se registre el sitio se le puede dar la dirección exacta del idioma que le corresponda, también en el caso de los subdominios generalmente no implica costo adicional.
4.1.7.- Técnicas fraudulentas. Penalizaciones Una vez que se entiende el funcionamiento y la importancia que le dan los buscadores a distintas partes de nuestra página empieza a funcionar las formas en como puedo convertir mi sitio en un sitio valorado por Google. Pero estás técnicas no siempre gustan a los buscadores ya que por unos motivos u otros los resultados o la información que Google u otros buscadores pueden llegar a mostrar no siempre es la que se espera y esto resta credibilidad a las búsquedas y por tanto al buscador. Como ya hemos dicho las una Web bien construida con contenidos interesantes y bien estructurada, “se posiciona bien sola”. Pero esto no suele ser siempre así, y en ocasiones en lugar de orientar las técnicas a este fin, el de dar counidos interesante y con sentido, se usan técnicas que se encuentran penalizadas por los buscadores, al tratar de manipular sus resultados en forma agresiva. Las principales técnicas de posicionamiento no permitidas son: Spamming El abuso de palabras clave, spam o 'keyword stuffing' consiste en situar palabras clave en un montón de elementos de una página Web y a la repetición de texto clave para de esta forma tratar de aumentar la densidad de palabra clave. Cada vez son más los webmasters que conocen los trucos para un buen posicionamiento Web, y quieren llevarlos hasta extremos. Si bien es preciso que la palabra clave a posicionar figure en alguna parte del texto, el excesivo uso de la misma puede traer como consecuencia una penalización. Doorway Pages Son páginas diseñadas con el específico propósito de generar tráfico de los buscadores. Muchos webmasters diseñan una página optimizada para los buscadores, repitiendo las palabras claves en el TITLE, en los H1, etc. De esta manera, crean una página casi ininteligible para los visitantes (debido al gran número de palabras clave por toda la página), pero altamente optimizada para determinadas búsquedas. Son páginas con contenido rico en palabras clave, contenido generalmente duplicado, mínima navegación o ninguna y suelen generarse automáticamente. Son páginas mal
95
armadas, y que al navegarlas, rápidamente el visitante toma conocimiento de que está hecha para los buscadores. Generarán tráfico natural que se trata de redireccionar hacia otras páginas del sitio, ya sea mediante click, mediante un <meta> refresh.o, via JavaScript, generalmente. Los robots no reconocen el JavaScritp, así que almacena simplemente la página diseñada para ellos. El caso de las páginas 'doorway' es un caso particular del 'Cloaking'. En el 'Cloaking' se identifica al robot de Google y, mediante lenguajes 'Server Side', se genera unos contenidos diferentes. En las páginas 'doorway' simplemente se redirecciona a los navegadores web de los visitantes. Cloaking en sitios web Muchos webmasters programan sus páginas Web para devolver contenidos distintos cuando pasa el bot y cuando un usuario normal visita el sitio Web. Un script del servidor le entrega una versión del sitio Web distinta, que contiene información que no se muestra en la página visible. De esta manera, por ejemplo, generan un mayor número de palabras claves cuando son visitados por este robot. Si hiciesen lo mismo cuando son visitados por el resto de usuarios, nos encontraríamos con una página Web casi ilegible, llena de palabras claves sin sentido. Esta técnica no es nueva, y es conocida como 'Cloaking' (a veces también se le denomina 'encubrimiento'). Si visitamos la cache de un sitio Web que practica el 'Cloaking', nos encontraríamos con una página diferente de la que veríamos nosotros. Texto oculto Se entiende fácilmente el porque nos puede penalizar un buscador. No hay que confundir texto oculto con ocultar texto, expliquemos esto. La manera de entender el porque nos pueden penalizar es muy simple, texto oculto es todo aquel que no es accesible para el usuario. Una técnica que es muy usada es la de escribir términos clave del mismo color de fondo de la página con lo que no podremos verlo pero si lo recogerá el robot. Otra es la de ocultación de capas. Mediante un contenedor
96
Pero en ocasiones podemos introducir texto con sentido ricos en términos que nos interesan perorando acceso a ellos mediante algún botón o enlace de manera que sea visible por el usuario. Páginas duplicadas Muchos webmasters generan el mismo contenido en dos o más páginas web. Por ejemplo, con un acceso a una base de datos, consiguen que el contenido de 'www.misitio.com/pagina1.php' sea el mismo que „www.misitio.com/contenidos/pagina2.php'. De esta manera, pueden desde estas dos páginas enlazar a otra tercera, que es la que realmente quieren promocionar. Han creado dos páginas Web (se pueden crear incluso más), pero solamente han hecho el trabajo de una. Enlaces ocultos Los enlaces ocultos son una variante del texto oculto. Esta técnica es realizada por muchos webmasters que quieren promocionar otros sitios web y, al no ser capaces de conseguir enlaces externos, utilizan sus propias páginas. Para crear estos enlaces (algunas veces suelen ser decenas de ellos), los insertan del mismo color que el fondo de las páginas, con el objetivo de que no sean vistos por los visitantes, pero sí por el robot de Google. Spam en weblogs y libros de firmas Muchos webmasters, al ser incapaces de conseguir enlaces externos desde otros sitios Web, recurren a una técnica que no necesita de la aprobación de los webmasters de estos sitios Web: el spam.
Figura 52.- Incremento del spam en los libros de firmas
97
La mayoría de los weblogs incluyen la posibilidad de que los visitantes puedan dejar sus opiniones acerca de las noticias publicadas en estos weblogs. Los libros de firmas ('guestbooks') son espacios de algunas páginas web donde la gente puede dejar sus saludos y comentarios. Tanto en los weblogs como en los libros de visitas se suele dar la opción de incluir el nombre y un enlace al sitio Web de la persona que opina o saluda. De esta manera, el enlace queda: Nombre del visitante Muchos 'spammers' insertan como su nombre las palabras clave, y como enlace el de la página Web que quieren promocionar. De esta manera, consiguen un enlace realmente óptimo, ya que muchos de estos weblogs y libros de firmas tienen un PageRank realmente apetecible. El comentario es lo menos importante en estos casos. Estos 'spammers' dejan mensajes tan simples como 'Felicidades por tu web' o 'Yo opino como tú'. Hay ocasiones en que ni siquiera es importante las palabras clave. Simplemente se busca aumentar el PageRank de las páginas, para poder vender enlaces en un futuro. Para los creadores de los weblogs y en los libros de firmas la solución es realizar los enlaces mediante JavaScript o diciéndole no_index, no_follow para que no lo indexe ni siga. Debido a que el robot de Google no los tiene en cuenta, los visitantes podrán acceder a estos sitios Web, pero no serán tenidos en cuenta para la trasmisión del PageRank. De todas maneras, se sospecha que Google, entre otros está comenzando a no tener en cuenta los enlaces provenientes de los libros de firmas. Aunque esta técnica está englobada como fraudulenta en ocasiones puede que nos interesa teniendo en cuenta las consecuencias, pero esto queda en manos del Webmaster.
98
4.2.- Ficheros complementarios Una de los puntos que tienen muy en cuenta los crawlers (robots de búsqueda) es la velocidad de carga de de las páginas y la velocidad de comprobación de un sitio Web. En este sentido podemos ayudarnos con ficheros externos al propio código de las páginas que nos ayudarán en este sentido.
4.2.1.- Sitemap Crear un mapa del sitio es importante tanto para el usuario como para los robots. Es por tanto que en este aspecto no hablemos de un solo fichero sino de varios. La creación de un fichero sitemap.html que nos informe del esquema que tiene la Web ayuda al usuario a la hora de moverse por la web pero de igual manera puede ayudar a los bots a indexar las páginas de nuestra web. De la misma manera podemos ayudar a los crawler con los ficheros sitemap.txt y sitemap.xml, este último es el más tenido en cuenta. Un sitemap.xml le da la idea mediante un lenguaje de marcado (como lo es HTML) de las páginas que componen nuestra Web. Se le puede introducir una serie de premisas:
99
informar a los motores de búsqueda de las páginas que considera más importantes para los rastreadores. La prioridad predeterminada de una página es 0,5. Finalmente hay que saber que aunque la mayoría de los robots recogen este fichero siempre que se encuentre en la raíz de mi alojamiento, existen herramientas para Webmaster como las de Google donde podemos indicar la ruta de nuestro fichero para mayor seguridad o simplemente porque no podemos colgarlo en la ubicación que indicábamos.
4.2.2.-Robots.txt Este fichero va más allá de la ya nombrada metatag robots. El fichero robots.txt es un archivo de texto que dicta unas recomendaciones para que todos los crawlers y robots de buscadores cumplan (¡ojo! recomendaciones, no obligaciones). Estas son: - Impedir acceso a robots determinados: Puede parecer contradictorio, pero algunos crawlers no nos proporcionarán sino problemas. Algunos robots no son de buscadores, e incluso algunos robots no son ni amigos. - Reducir la sobrecarga del servidor: Podrás controlar el flujo de algunos robots. Algunos de ellos son un verdadero descontrol de peticiones que pueden llegar a saturar nuestro servidor. - Prohibir zonas: Nos puede interesar tener disponible una zona en nuestra Web, que sea accesible para algunos, pero que no aparezca en buscadores. - Eliminar contenido duplicado: Uno de los casos más importantes, que casi siempre es olvidado por los webmasters. Si eliminamos la duplicidad de contenido, los buscadores nos puntuaran muy alto, aumentando el flujo de visitas. - Fijar mapas del sitio: También es posible acoplar un sitemap para indicar el buen camino a los robots. Sólo tenemos que crear un fichero de texto robots.txt y comenzar a escribir en el. En User-agent debemos introducir el nombre del robot, y a continuación las rutas donde queremos prohibir que acceda. Algunos ejemplos: - Disallow: / prohibe la entrada a todo el sitio. - Disallow: /admin/ prohíbe la entrada a los documentos del directorio admin. - Disallow: permite la entrada a todo el sitio. En algunos casos suele utilizarse en lugar de Disallow, la palabra Allow. Aunque por definición es correcta, es conveniente no utilizarla, puesto que las rutas omitidas se asumen que están permitidas por defecto, y algunos robots no entienden la palabra Allow.
100
Carpetas y ficheros que podemos introducir en estas líneas son carpetas que contengan imágenes, ficheros de estilos .css y javasciprt .js, también los ficheros flash .swf, aunque algunos bots empiezan a indexarlos pero no les da información, y carpetas de configuración de nuestro hosting. Es posible ir acumulando reglas para distintos crawlers, formando un robots.txt más largo y completo. Cada vez que escribamos un User-agent deberemos dejar una línea en blanco de separación. Además, existe una ligera adaptación que permiten usar comodines ($ y *) en las rutas en algunos crawlers (sólo Googlebot y Slurp). Si revisamos estadísticas y demás, también puedes observar que a veces algunos crawlers se exceden revisando nuestro sitio, y saturan de peticiones a nuestro servidor. Existe una manera de tranquilizar a los robots con Crawl-delay: 30 (el numero son segundos hasta el próximo acceso) Por último con Sitemap: http://www.casarural-sansofi.com/sitemap.xml le indicamos al robot un mapa del sitio.
4.2.3.- .htaccess .htaccess es un fichero de configuración oculto en la raíz de nuestro servidor (hosting) y que nos permite una serie de acciones para que Google u otros buscadores con consideren sitios de calidad y amigos con técnicas que ya hemos descrito anteriormente como las urls amigables o evitando contenido duplicado por distintos accesos. Obligar el uso del www: El contenido duplicado puede llevarnos a penalizaciones por parte de los buscadores. No hay una regla escrita de si se debe obligar al sitio a entrar son www o con él pero es muy recomendable decantarse por uno solo ya que el tener los dos accesos puede llevar a error a los buscadores pensando que el contenido está duplicado. Mi modo de pensar se inclina por el www ya que Internet esta ligado para muchas personas con este término. Se realiza mediante un redireccionamiento permanente 301. # Quitar el www del nombre de dominio 1. RewriteCond %{HTTP_HOST} ^www\.casarural-sansofi\.com$ [NC] 2. RewriteRule ^(.*)$ http:// casarural-sansofi.com/$1 [R=301,QSA,L] # Redirigir el dominio sin www a www 1. RewriteCond %{HTTP_HOST} ^ casarural-sansofi \.com$ [NC] 2. RewriteRule ^(.*)$ http://www. casarural-sansofi.com/$1 [R=301,QSA,L]
101
Lectura de URLs amigables por sus respectivas rutas dinámicas: Para esto ya tendrías que haber logrado la creación adecuada de las URLs amigables. Asumiendo eso ahora nos corresponde ejecutar en htaccess la segunda parte del proceso: lograr que esas URLs amigables sean leídas a través de sus respectivas URLs dinámicas. Redireccionar las antiguas URLs dinámicas a las nuevas amigables de forma permanente: Si antes utilizabas únicamente URLs dinámicas y has decidido cambiar a URLs amigables, es necesario hacérselo saber a los buscadores. Tendrás pues que establecer en el htaccess que TODAS las antiguas URLs dinámicas te las redirecciones permanentemente a sus respectivas amigables. Existe multitud de información más que se puede dar a través de este fichero como el bloquear el acceso a ciertos ficheros, pero estas dos son las importantes por haber hablado de ellas como técnicas de optimización de sitios Web.
4.2.4.- Estilos y javascript Ya hemos hablado de la descarga de tamaño de imágenes para aumentar la velocidad de carga de una página pero también los buscadores ven con muy buenos ojos que los ficheros tengan un tamaño al menos no muy grande. Una técnica que nos puede ayudar doblemente es la de sacar todos los códigos que sean posibles a ficheros externos y además bloquear estos con el fichero robots.txt y .htaccess. De esta manera quitamos más peso a las páginas pero, qué más ganamos. Con esta técnica podemos modificar los estilos de por ejemplo los evitando que tengan un tamaño muy grande y poderlo disimular más a vista del usuario pero no a vista de los robots de los buscadores. Veremos como hacerlo más adelante en el desarrollo de las optimizaciones.
102
4.3.- Promoción externa Primero hay que saber que se entiende por promoción externa. Como ya hemos visto los buscadores se basaban solo en los datos que recogen de las propias páginas para ordenar en sus buscadores los resultados de búsqueda. Pero Google revolucionó esta idea con su algoritmo de posicionamiento llamado PageRank. No fue el único pero si el primero y actualmente la idea se mantiene para el resto de buscadores. La idea de este algoritmo es valorar, y en gran medida, la presencia de una Web en Internet de forma externa a ella misma. La manera como harían esto es observando y valorando los enlaces a nuestro sitio desde otras páginas. En términos generales, cuando cualquier usuario ingresa una consulta en el motor de búsqueda, el motor de búsqueda necesita determinar cuál es el mejor resultado que debe retornar. Uno de los pasos claves, es evaluar que página relacionada con la consulta es la más importante, o que página tiene más autoridad de acuerdo a la búsqueda. Uno de los factores más importantes para decidir esto es el perfil del enlace del sitio que contiene la página web que se está evaluando. En principio, cada enlace a una página web se considera un voto para esa página Web. En términos simples, si hay dos páginas que son igualmente relevantes para una consulta en particular, la página con mejor número de perfiles de enlaces entrantes será posicionada mejor que las otras páginas. Lo motores de búsqueda no premian aquellos que se sientan a esperar que los enlaces lleguen a ellos. Promocionar el sitio corresponde al editor, quien debe decirle al mundo acerca de su sitio Web y conseguir personas que enlacen este. Los editores que no dedican tiempo al Link Building tienen un alto riesgo de perder su tráfico desde los motores de búsqueda o aquellos que nunca incrementan el número de sitios que apuntan hacia su sitio Web pueden no cumplir sus objetivos de tráfico. Cuando hacemos Link Building debemos pensar si un determinado enlace ayudara o no a posicionar una página en el largo plazo. Para ilustrar esto, hay varios tipos de enlaces que los editores pueden obtener pero que los motores de búsqueda penalizan. Por ejemplo, Google ha adoptado una postura fuerte contra la práctica de comprar enlaces con el propósito de influenciar la clasificación del índice en el motor. Sin embargo, mucha gente todavía compra enlaces y es posible que esta práctica funcione para muchos de ellos, al menos en el corto plazo. No obstante, Google invierte activamente recursos en encontrar enlaces pagados y otros esquemas que desvirtúan el servicio de búsqueda. Aunque estos enlaces trabajen en el corto plazo para los editores, no hay garantía que trabajara a largo plazo. Esto nos lleva a una elección que todo editor debe hacer: Si llevar a cabo estrategias a corto plazo, como la compra de enlaces, que pueden traer resultados más rápidos con menos esfuerzo, o aplicar estrategias a largo plazo que tienen un riesgo mucho menor.
103
Por todas las anteriores razones, nosotros no recomendamos comprar enlaces pagados como estrategia para mejorar la posición en los resultados de Google u otro motor búsqueda. Desde el punto de vista del posicionamiento la forma de conseguir esto es fácil pero muy complicada a la vez. Fácil porque la idea está clara, enlazar nuestra página desde otros sitios, pero cómo conseguir esos enlaces es lo complicado. Existen diferentes maneras de conseguirlo, no todas al alcance de cualquiera, y no todas con el mismo resultado como explicamos a continuación.
4.3.1.- Directorios Ya hablamos de los buscadores en la introducción. Cunado hablamos de estos nos referimos siempre a directorios de gran tamaño como el antiguo Yahoo o el actual DMOZ, aunque existen muchos más. Google y los principales buscadores buscan en estos directorios nuevas páginas que indexar y datos relativos a “presencia” de una Web por medio de los enlaces existentes en los diferentes directorios. Directorios Públicos: En la Red se encuentran una gran cantidad de directorios públicos donde podemos dar de alta nuestras Web. Al introducir los datos referentes a esta nos piden un titulo, descripción y unos términos que serán nuestros términos de búsqueda, de manera que muchos de estos enlaces al menos están bien construidos. Estos enlaces que conseguimos hacia nuestra página nos ayudan a dar presencia pero han de ser bastantes para que nos ayuden en gran medida a posicionamiento en buscadores. El motivo es que normalmente los enlaces vendrán de páginas muy internas de los directorios con una valoración de PageRank(en el caso de Google) muy bajo o nulo. Algo que si se tiene más encuentra son los directorios sectoriales que hablen del mismo sector del que es tu Web. Deberías intentarlo en DMOZ. Se trata de un directorio de carácter público y abierto, y está gestionado por editores voluntarios. Aparte de conseguir enlaces en dmoz.org, uno de los directorios con mayor PageRank es el de Yahoo!. A diferencia del primero, éste se trata de una compañía privada, pero también sus editores valoran la calidad de los sitios Web antes de aceptarlos. Directorios Privados: Si nos dedicamos al posicionamiento en buscadores nosotros mismos podemos crearnos nuestro mini directorio con páginas que no superen lo 60 link. Organizando por algún sector genérico y con páginas que con el tiempo vayan cogiendo PageRank gracias a promoción de estos directorios. Otra ventaja es que los gestionamos nosotros con lo que cremaos enlaces de la forma que más nos interese. Un enlace completo seria el compuesto por: nombre empresa-sitio
104
+ etiqueta con etiquetas de titulo y alternativas en la que ponemos términos clave + términos clave que serán los enlaces a nuestro sitio + descripción en la que nuevamente se habla de los términos pero sin abusar
4.3.2.- Enlaces desde otras páginas Hasta este punto toda persona puede servirse de sus conocimientos o de los recursos que le da la Internet. Pero si lo que queremos es hacer aun más fuerza tendremos conseguir una promoción de nuestra Web desde más páginas. El método más fácil para las empresas es la de linkar a sus clientes entre si, creando una página en cada cliente con no más de 60 link (evitar ser un 'link farms') que cuelgue de la Home para que tenga más peso, o incluso de la Home, en pocos enlaces. De la misma manera que antes podemos hacer enlaces de calidad tanto sobre código como por el hecho de que estos no son recíprocos. Solo hay un problema. Google penaliza las redes de enlaces con lo que nuestro trabajo, dentro de la organización, ha de ser caótico para no llegar a ser descubiertos y que pase por enlaces corrientes. En este sentido hay que ser cautos a la hora de enlazar un sitio pues una de las maneras en que Google puede darse cuenta es que no se va a creer que un sitio nuevo o sin serlo, sea enlazado de la noche a la mañana por multitud de páginas. Esto es conocido por el efecto Sandbox de Google el cual te restringe la entrada a los primeros puestos durante los primeros periodos de vida de tu dominio para comprobar que posteriormente sigues recibiendo nuevos enlaces y de ser así permitir su acceso. Dentro de estas penalizaciones está la posibilidad de ser enlazados por páginas de contenido bélico, sexual, temas de salud en los que están implicados problemas de anorexia, contenido xenófobo…Desde mi punto de vista no seremos penalizados, ya
105
que cualquiera que nos quiera hacer daño lo haría por este medio, pero serán enlaces con muy poca fuerza o ninguna. Como hemos dicho conseguir este tipo de enlaces es más fácil para una empresa que para un particular. Pero no hay que rendirse. La Red es enorme y siempre hay gente dispuesta a recibir información para la creación de sitios nuevos. La mejor manera de empezar a pedir enlaces es estudiando a tu competencia. link:http://www.casarural-competencia.com (muestra los llamados 'backlinks', los sitios Web que lo enlazan con un PR mayor que 3 ó 4). Así sabrás en qué sitios ha conseguido tu competencia sus links. Nosotros podemos hacer lo mismo. Otra de las acciones es la de compra de enlaces. Por supuesto, Google no va a tolerar que nadie cobre dinero por insertar enlaces desde sus páginas gracias al PageRank conseguido, y lo que está haciendo en algunas ocasiones es penalizar a estos sitios web que insertan los links. En estos casos la compra de enlaces puede ser una opción pero peligrosa ya que podemos ser penalizados aunque normalmente Google no elimina de los resultados, y quizá tampoco reduzca su PageRank, ya que Google considera que la información que contiene puede resultar valiosa para algunas búsquedas. Lo que hace sencillamente es impedir la posibilidad de que estas páginas Web 'transmitan' el PageRank. Simplemente, no sigue los enlaces desde ellas. El link Building es una práctica en SEO que tiene como objetivo que otros sitios Web creen vínculos hacia un sitio Web en particular.
4.3.3.- Posicionamiento con “pago por click” Los sistemas de pago por click (PPC) consisten básicamente en pagar por poner publicidad de tu sitio en otras páginas Web y buscadores. Es un modelo de publicidad en el que el anunciante paga una cantidad específica de dinero cada vez que un usuario pincha en un enlace (anuncio) que le lleva a su sitio Web. Los más populares (Google Adwords, Overture, etc.) representan una buena manera de aumentar nuestras visitas rápidamente, aunque no todo el mundo tiene el presupuesto para hacerlo. Su funcionamiento es sencillo. Los anuncios se muestran en la página ordenados según la cantidad de dinero que paga el anunciante por click, de forma que los que más pagan son que aparecen primero.
106
Figura 53.- Anuncios adwords de google
Adwords de Google Adwords es seguramente el sistema de pago por click más conocido y usado. Es una buena forma de conseguir tráfico hacia tu Web. Con este servicio de Google puedes anunciar tu Web en el buscador apareciendo en las primeras páginas de los resultados de búsqueda (en los enlaces patrocinados) para las palabras que más te interesen. Los anuncios también aparecen en páginas Web relacionadas con el contenido de lo que anuncias, estas páginas provienen de la base de datos del programa de Adsense, que paga a los webmasters por mostrar publicidad en sus páginas. En el caso de Adwords, los resultados y la posición en la que salga tu anuncio depende del dinero que estés dispuesto a pagar y la temática de la Web, entre otras cosas (hay temas con más anunciantes y por tanto más caros). Pero no te asustes, no hay que invertir grandes cantidades de dinero para anunciarse en Google (la cantidad mínima al mes son 30 euros). Hacemos los anuncios como creamos conveniente, indicamos las palabras clave para las que quieres que tu anuncio compita por los primeros puestos en los enlaces patrocinados de las búsquedas y estableces la cantidad máxima a pagar por click. Por supuesto, esto sólo es un mínimo resumen acerca de lo que AdWords es, para obtener una referencia más amplia puedes visitar: Blog de AdWords, Centro de aprendizaje de AdWords. Este sistema resulta muy útil para aquellas webs que empiezan y necesitan comenzar a tener visitas rápidamente, para publicitar un producto específico, para conseguir tráfico segmentado hacia tu Web (altamente interesado en lo que ofreces), para dar a conocer tu empresa y para salir en las primeras páginas de los resultados de búsqueda para las palabras clave que trabajas cuando el posicionamiento aún no ha dado sus frutos.
107
4.3.4.- Redes sociales El auge en los últimos años de las redes sociales ha llevado a la idea de crear campañas similares a las ofrecidas por buscadores pero en este ámbito. Facebook y Twiter son los principales precursores como redes sociales en implantar este servicio. Página de la casa rural en facebook: http://www.facebook.com/profile.php?id=100001400339239 Para muchos negocios desarrollar una estrategia de marketing basada en redes sociales es esencial y es la más rentable de las promociones posibles. En principio, una estrategia de redes sociales es imprescindible para aquellas empresas que cumplan uno o más de los siguientes requisitos: - Que sus productos o servicios sean de consumo repetitivo. - Que sus productos o servicios sean contratados basados principalmente en la recomendación de amigos o familiares. - Que sus productos se comercialicen en base a modas o comportamientos sociales de aceptación de marca.
4.4.- Publicación en portales especializados Ya sea vía online o vía medios físicos, la realización de campañas de publicidad de nuestra empresa nos va a generar nuevamente tráfico a nuestra página y por tanto mejorar la valoración por los buscadores. Nos vamos a centrar en la publicidad online, concretamente en la publicación en portales especializados del sector, puesto que la mayoría del mercado no llegará a nuestra página web directamente, sino que lo hará por medio de un portal web donde nos pueda encontrar junto con otros alojamientos rurales, para así comparar precios, situación, disponibilidades, etc… Para ello de nuevo utilizamos el buscador google del dominio .es e introducimos los términos de búsqueta más genéricos “casa rural” tal y como hemos visto en el punto 4.2.- Técnicas de posicionamiento, concretamente en el apartado “estudio de los términos” Tras realizar la búsqueda en google.es, estos son el nombre de los 8 primeros portales que aparecen al introducir los términos “casa rural”: www.toprural.com
108
www.casarural.es www.escapadarural.es www.todaslascasarurales.com www.todocasarural.com www.rinconesdelmundo.com www.tuscasasrurales.com www.e rural.com Que aparezcan bien posicionados en el dominio google.es no es sinónimo recibir más visitas que otro portal que este peor posicionado, para asegurarnos de ello haremos uso de la herramienta Alexa, provee información acerca de la cantidad de visitas que recibe un sitio web y los clasifica en un ranking. Alexa recoge información de los usuarios que tienen instalado Alexa Toolbar, lo cual le permite generar estadísticas acerca de la cantidad de visitas y de los enlaces relacionados. También proporciona una gráfica donde se puede apreciar perfectamente el crecimiento/decrecimiento de las visitas a una página web, además de la información diaria (solo las 100.000 primeras páginas de la clasificación), media semanal y media de los últimos tres meses. Analizando en la web de alexa.com cada portal de alojamientos rurales obtenemos la siguiente información:
Información de sitio para toprural.com Tráfico en el ranking de Alexa: 17,349 Enlaces al sitio: 3,475
Tráfico en el ranking ES: 419
Información de sitio para casarural.es Tráfico en el ranking de Alexa: 4,028,336 No hay información regional Enlaces al sitio: 26 Información de sitio para escapadarural.com Tráfico en el ranking de Alexa: 43,347 Enlaces al sitio: 691
Tráfico en el ranking ES: 897
Información de sitio para todaslascasarurales.com Tráfico en el ranking de Alexa: 272,104 Enlaces al sitio: 628
Tráfico en el ranking ES: 13,210
109
Información de sitio para todocasarural.com Tráfico en el ranking de Alexa: 323,205 Enlaces al sitio: 458
Tráfico en el ranking ES: 14,064
Información de sitio para rinconesdelmundo.com Tráfico en el ranking de Alexa: 163,723 Enlaces al sitio: 550
Tráfico en el ranking ES: 4,310
Información de sitio para tuscasasrurales.com Tráfico en el ranking de Alexa: 480,254 Enlaces al sitio: 772
Tráfico en el ranking ES: 21,195
Información de sitio para erural.com Tráfico en el ranking de Alexa: 649,897 Enlaces al sitio: 1,049
Tráfico en el ranking ES: 47,738
Como información complementaria añadiremos un portal extranjero www.iha.com, puesto que tiene difusión a nivel mundial, aunque nos centraremos en analizar y comparar su dominio francés iha.fr, los alojamientos rurales de la costa Mediterranea son muy demandados por los franceses
Información de sitio para iha.fr Tráfico en el ranking de Alexa: 90,563
Tráfico en el ranking FR: 3,942
Enlaces al sitio: 2,747 A parte despreciaremos el dominio casarural.es, puesto que en el ranking Alexa estaba muy desplazado de los demás, se podría considerar un dato anómalo, aunque tuviera buen posicionamiento en google se ha demostrado que es un portal que no interesa.
110
700000 600000
toprural.com iha.fr
500000
escapadarural.com 400000
todaslascasasrurales.com
300000
todocasarural.com rinconesdelmundo.com
200000
tuscasarurales.com erural.com
100000 0 1
Figura 54.- Gráfico del tráfico en el ranking Alexa
En la figura 54 podemos observar como a nivel del ranking Alexa tenemos tres dominios destacados, fijémonos que estamos hablando de posicionamiento y que por tanto un mejor posicionamiento pertenece a un número menor, en este caso los tres mejores posicionados son toprural.com, iha.fr y escapadarural.com, en cuarto lugar estaría rinconesdelmundo.com, pero a una distancia el doble de alejada que iha.fr, por tanto en este gráfico nos quedamos con los tres dominios anteriormente mencionados.
60000 50000
toprural.com iha.fr
40000
escapadarural.com todaslascasasrurales.com
30000
todocasarural.com rinconesdelmundo.com
20000
tuscasarurales.com erural.com
10000 0 1
Figura 55.- Gráfico del tráfico en el ranking nacional
En la anterior figura obtenemos un resultado muy similar al obtenido en la Figura 54, aunque aquí la diferencia entre rinconesdelmundo.com e iha.fr es mucho menor, de
111
todos modos elegimos escapadarural.com e iha.fr
como
los
tres
mejor
posicionados
toprural.com,
4000 3500
toprural.com
3000
iha.fr
2500
escapadarural.com todaslascasasrurales.com
2000
todocasarural.com
1500
rinconesdelmundo.com
1000
tuscasarurales.com erural.com
500 0 1
Figura 56.- Gráfico de los sitios que enlacen con dichos portales
En cuanto a sitios que enlazan con el portal web observamos como toprural.com e iha.fr están en cabeza destacados, perseguidos por erural.com a casi el triple de diferencia de estos dos en cabeza, luego vienen los demás portales rurales. Por tanto, tras realizar el siguiente estudio de mercado en cuanto a portales rurales, nos decantamos por analizar ahora los portales escapadarural.com, iha.fr y toprural.com Escapada rural Podemos decir que es el segundo portal detrás de toprural.com mejor posicionado y que más visitantes recibe a nivel nacional. En la Figura 57 podemos observar el aspecto gráfico del anuncio en el portal escapada rural, aportando la información necesaria a los futuros huéspedes: -
Ubicación Capacidad Precio medio Tipo de alquiler Teléfono Página web
112
Figura 57.- Aspecto del anuncio en escapada rural
Figura 58.- Aspecto de la descripción del anuncio en escapada rural
113
Y las secciones son muy similares a las elegidas en nuestro proyecto en el punto 3.3.1 Nivel de presentación, esto se puede apreciar en la Figura 58, las secciones en este portal en concreto son: Alojamiento, Precios, Fotos, Como llegar y Contactar. En la siguiente tabla mostramos un símil de las secciones de escapada rural con las de nuestro sitio web Escapada rural Página web
Alojamiento La Casa
Precios Tarifas
Fotos Como llegar Imágenes Ubicación
Contactar Contacto
Tabla 4.- Secciones escapada rural
Para modelar el anuncio hemos usado las mismas imágenes y texto que para nuestra página web, aunque este tipo de portales por su diseño nos ofrece una mayor capacidad para describir el lugar y una galería dinámica de hasta 50 imágenes. En este portal podemos registrar nuestro alojamiento rural de gratuita, aunque nuestro anuncio se encontrará en los últimos resultados de búsqueda, tendremos galería limitada y el anuncio no dispondrá de foto principal. La siguiente opción es la ficha completa, disponible por 180€/año, por delante en los resultados de búsqueda que estando gratuitamente y por último nos encontramos con la ficha completa plus, se ofrece por 320€/año y nos sitúa por delante de la ficha completa. IHA
Figura 59.- Aspecto del anuncio en IHA
114
La interfaz gráfica del anuncio en iha es un poco diferente al anterior diseño de escapada rural, que a su vez este diseño era muy similar al elegido nosotros al realizar el sitio web del presente proyecto. En la Figura 60 observamos como la galería de imágenes se trata de un video de las fotos que aparecen en la sección de imágenes en la página web de la casa rural y tras intervalos de 5 segundos van cambiando. Nos ofrece también este portal una gran variedad de especificaciones técnicas de la casa y su entorno, tal y como vemos en las Figuras 60 y 61.
Figura 60.- Aspecto de la descripción en IHA
La estructura de la página es algo compleja, pero toda la información se encuentra en el mismo archivo principal, solo hay que ir arrastrando el scroll para desplazarse hacia abajo y encontrar más información. En este portal la estrategia a seguir en cuanto a packs de pago es la misma que en escapada rural, podemos tener nuestro anuncio gratuitamente durante un periodo ilimitado o podemos decidir pagar y cuanto mayor sea la cuota anual que pagamos mejor posicionados estaremos y mayores serán las funcionalidades que nos ofrecerá el portal para mejorar nuestro anuncio. Los packs llevan el nombre de piedras preciosas: diamante este será el más caro, por 135€/año, zafiro por 105€/año y esmeralda nos saldrá por 75€/año.
115
Figura 61.- Aspecto de la continuación de la descripción en IHA
Top rural
Figura 62.- Aspecto del anuncio en top rural
116
El portal Top rural nos ofrece una interfaz con casi las mismas secciones que hemos elegido para nuestra página web, incluyendo por su parte una sección de vídeos y otra de ofertas. Por otro lado observamos como su interfaz gráfica es casi idéntica a la de escapada rural, ambos portales compiten entre si por ser el número uno a nivel nacional, aunque top rural desde hace bastantes años consigue los mejores resultados. En cuanto a novedades, si lo comparemos con escapada rural, este portal ofrece la sección de opiniones, muy importante para generar confianza a los futuros huéspedes y las secciones de vídeos y ofertas ya citadas anteriormente.
Figura 63.- Aspecto de la descripción en top rural
Observamos como la página principal del anuncio, la sección “ficha” concretamente es similar en cuanto a idea de diseño que los anuncios del portal iha, en él aparece toda la información a modo de resumen y el usuario solo debe desplazar el scroll hacia abajo para recorrer la información que en dicha sección aparece. Esto lo podemos apreciar en las Figuras 63 y 64, siendo esta la continuación de su predecesora.
117
Figura 64.- Aspecto de la continuación de la descripción en top rural
En este portal la estrategia a seguir en cuanto a packs de pago es la misma que en escapada rural e iha, a excepción de incluir la posibilidad de registrarse gratuitamente en la página. Este portal está muy bien posicionado y puede permitirse el lujo de no ofrecer fichas gratuitamente. Como en los anteriores portales cuanto mayor sea la cuota anual que pagamos mejor posicionados estaremos y mayores serán las funcionalidades que nos ofrecerá el portal para mejorar nuestro anuncio. Aunque en este caso lo más cotizado es el buen posicionamiento. Existen 4 modalidades: exclusiva, por 5000€/año, prestigio por 1296€/año, oro por 432€/año y plata por 165€/año Cabe mencionar que las diferencias son notorias, por ello tanta diferencia de precio. Top rural domina el mercado y crea tendencia, de ahí que el formato de los anuncios de escapada rural sea tan similar al ofrecido por Top rural.
118
CAPITULO V
Conclusiones En este apartado enumeraremos las conclusiones a las que he llegado durante la elaboración del Proyecto Fin de Carrera y además citaremos una serie de trabajos futuros sobre este tema.
Conclusión Principalmente me ha servido de ayuda la realización del presente PFC para ponerme al día en cuanto a tecnologías de la red, puesto que he abarcado una gran temática en el presente trabajo. Tanto como instalador y configurador de sistemas; pasando por programador haciendo uso de los lenguajes y tecnologías más comunes de la red; y por último enfrontándome a la red para conseguir un mejor posicionamiento. También me ha servido de ayuda para documentar algunas tareas que realicé desde hará un par de años atrás hasta prácticamente hoy, puesto que el punto 3 de creación del entorno web fue una tarea que empecé hace un par de años y no existía documentación alguna sobre ello, para esto ha sido de relevante importancia la asignatura de ingeniería del software. No solamente eso, sino que he podido conocerme más a mi mismo y descubrir una capacidad de organización y constancia que siempre había tenido pero no he sido consciente de ella hasta ahora. Me he tenido que valer de la realización de un plan de trabajo para llevar el control del tiempo y las tareas que iba llevando a cabo en cada momento. Concluyendo y con total convicción, puedo afirmar que todo lo aprendido hasta el día hoy, ha superado ampliamente mis expectativas iniciales y me siento afortunado de haber seleccionado esta temática para mi Proyecto Final de Carrera.
Trabajos Futuros En cuanto a trabajos hay que mencionar en concreto la implementación de ciertos casos de uso para mejorar la funcionalidad de la página web que en su momento fueron citados en dicho proyecto, pero que no han podido ser llevados a cabo. También cabe mencionar, una vez realizado el proyecto y viso desde fuera, que el título más coherente del proyecto hubiera sido: “Instalación, desarrollo y promoción de
119
aplicación web estudiando diversas alternativas”, pero es algo que decides antes de la realización del proyecto y en este momento no se puede cambiar. Otro trabajo futuro sería montar un servidor en casa, puesto que durante la realización se hizo pero de modo experimental, no fue contratada una ip estática, ni se compró un SAI para alimentar el equipo en caso de cortes de corriente ni tampoco el hardware fue el más indicado. A decir verdad me he quedado con ganas de experimentar más con servidores. En cuanto a la parte software siempre se puede mejorar más, pero ello el tiempo lo dirá, como se trata de un proyecto sobre un negocio familiar no tendré ningún problema en mejorar la página web en futuras ocasiones.
120
CAPITULO VI
Bibliografía – Álvarez, M.A. Desarrollo Web, Tu mejor ayuda para aprender a hacer webs. (http://www.desarrolloweb.com). – Buendía, F. Una guía para la realización y supervisión de proyectos final de carrera (PFC) en el ámbito de la web. – Factoría de Internet, S.L. WebTaller (http://www.webtaller.com). – Sanger L., Wales J. Wikipedia, La enciclopedia libre. (http://es.wikipedia.org). – Welling L., Thomson L. Programación Desarrollo Web con PHP y MYSQL. Ed. Anaya Multimedia, S.A., 2009. - Jaime Sivorich, Cristian Darie Optimización del posicionamiento en buscadores con PHP. Profesional. Editorial ANAYA http://www.cinetube.es/documentales/google_fabrica_de_ideas.html http://www.promocionatuweb.com/articulos/tipos-buscadores.php http://www.ylos.com/spa/item/Clases-de-buscadores.html http://www.emezeta.com/articulos/robots-txt-todo-lo-que-deberia-saber http://posicionamientobuscadores.developers4web.com/posicionamiento-websitiosmulti-idioma http://seoteca.com/foro-seo/421-los-buscadores-miran-el-contenido-de-un-iframe.html http://www.turnkeylinux.org/screenshots/lamp-turnkey-control-panel
121
ANEXO A Manual de instalación del Servidor
Se puede descargar en la dirección http://www.turnkeylinux.org/lampstack siendo la versión 11.2 la última versión estable en el momento de la realización de este manual. Al tratarse de software libre no es necesario estar registrado en la página web.
Figura A.1 Portal de TurnkeyLinux (lampstack)
Consiste en un Ubuntu reducido, con los elementos necesarios para realizar la tarea de servidor Web. Su versión es la 10.04 LTS, nombre en clave Lucid, y ofrece soporte hasta Marzo de 2015, incluye el Kernel 2.6.32 y no lleva instalada la interfaz gráfica. Todo se realiza desde la consola, para optimizar recursos. Los requisitos del sistema son muy básicos 256MB de memoria RAM, 2GB de espacio en disco duro, adaptador Ethernet, tarjeta gráfica de 64MB, monitor, teclado y unidad de CD-ROM para instalar el sistema. Ahora pasamos a comentar figura a figura, que en este caso corresponden a las capturas de pantalla realizadas durante la instalación. En la pantalla de bienvenida (Figura A.2) seleccionamos “Install to hard disk”, para instalar el sistema en nuestro propio disco duro. El idioma de instalación no lo modificamos, en esta distribución solo esta disponible el inglés
122
Figura A.2 Pantalla de bienvenida
Seleccionamos el método manual, para crear nosotros mismos nuestras particiones. Es recomendable realizar 4 particiones: /: directorio raíz /var: para archivos log, archivos de servidores de correo, servidores web /boot: punto de arranque Swap: memoria virtual
Figura A.3 Método de instalación
123
Figura A.4 Selección de disco
Seleccionamos nuestro disco duro físico donde instalar el sistema. NOTA: estas capturas de pantalla corresponden con un sistema virtual, por ello los tamaños de las particiones y del disco duro no son los más óptimos.
Figura A.5 Selección de partición
124
Ahora escogemos el espacio disponible para crear la nueva partición.
Figura A.6 Creación de partición
Creamos una nueva partición primaria, como solo vamos a crear 4 particiones las podemos crear todas primarias sin ningún tipo de restricciones del sistema.
Figura A.7 Tipo de partición
125
Figura A.8 Selección de directorio a instalar
Primero seleccionamos la partición a crear, como dijimos anteriormente crearemos 4 particiones, la primera será la /, la segunda /var, la tercera /boot y por último la swat, en las tres primeras utilizaremos el sistema de ficheros ext4 y la última la lleva su propio tipo de ficheros.
Figura A.9 Tipo de archivos
126
Figura A.10 Selección área de intercambio
En este punto podemos observar como quedan las 4 particiones finalmente. NOTA: estas capturas de pantalla corresponden con un sistema virtual, por ello los tamaños de las particiones y del disco duro no son los más óptimos.
Figura A.11 Particiones finalizadas
127
Figura A.12 Instalación del arranque
Nos pregunta si queremos instalar el sistema de arranque (GRUB) en el MBR, no tendremos ningún inconveniente en decir que si, puesto que solo instalaremos un único sistema operativo y no causará ningún conflicto. Tras instalar el sistema de arranque debemos reiniciar la máquina.
Figura A.13 Reinicio
128
Figura A.14 Contraseña de superusuario
Tras reiniciar la máquina nos pide la contraseña del usuario root del sistema y la del superusuario de MySQL, en nuestro caso para simplificar elegiremos la misma. Nos la pregunta un par de veces para asegurarse que introducimos los datos correctamente.
Figura A.15 Contraseña gestión base de datos
129
Figura A.16 Inicialización de servicios
Saltamos el primer paso dándole a “skip”, a continuación nos pregunta si queremos instalar las actualizaciones, paso muy importante. Decimos que si, dándole a “install”, esto tardará unos minutos, dependiendo de los rápido que sea nuestra conexión a internet.
Figura A.17 Instalación de las actualizaciones
130
Figura A.18 Consola de configuración
Aquí concluye la instalación, a partir de aquí entraremos en el punto de configuración del sistema.
131
ANEXO B Archivos de configuración del servidor
Archivo de la interfaz de red. /etc/network/interfaces # UNCONFIGURED INTERFACES # remove the above line if you edit this file auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 auto eth1 iface eth1 inet dhcp
Archivo de configuración de sitio. /etc/apache2/sitesavailabe/casarural-sansofi.com
132
Archivo de la configuración de Apache2. /etc/apache2/apache2.conf # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Based upon the NCSA server configuration files originally by Rob McCool. This is the main Apache server configuration file. It contains the configuration directives that give the server its instructions. See http://httpd.apache.org/docs/2.2/ for detailed information about the directives. Do NOT simply read the instructions in here without understanding what they do. They're here only as hints or reminders. If you are unsure consult the online docs. You have been warned. The configuration directives are grouped into three basic sections: 1. Directives that control the operation of the Apache server process as a whole (the 'global environment'). 2. Directives that define the parameters of the 'main' or 'default' server, which responds to requests that aren't handled by a virtual host. These directives also provide default values for the settings of all virtual hosts. 3. Settings for virtual hosts, which allow Web requests to be sent to different IP addresses or hostnames and have them handled by the same Apache server process. Configuration and logfile names: If the filenames you specify for many of the server's control files begin with "/" (or "drive:/" for Win32), the server will use that explicit path. If the filenames do *not* begin with "/", the value of ServerRoot is prepended -- so "/var/log/apache2/foo.log" with ServerRoot set to "" will be interpreted by the server as "//var/log/apache2/foo.log".
### Section 1: Global Environment
133
# # The directives in this section affect the overall operation of Apache, # such as the number of concurrent requests it can handle or where it # can find its configuration files. # # # ServerRoot: The top of the directory tree under which the server's # configuration, error, and log files are kept. # # NOTE! If you intend to place this on an NFS (or otherwise network) # mounted filesystem then please read the LockFile documentation (available # at
134
KeepAlive On # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 15 ## ## Server-Pool Size Regulation (MPM specific) ## # prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves
135
ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0
136
# # DefaultType is the default MIME type the server will use for a document # if it cannot otherwise determine one, such as from filename extensions. # If your server contains mostly text or HTML documents, "text/plain" is # a good value. If most of your content is binary, such as applications # or images, you may want to use "application/octet-stream" instead to # keep browsers from trying to display binary files as though they are # text. # DefaultType text/plain
# # HostnameLookups: Log the names of clients or just their IP addresses # e.g., www.apache.org (on) or 204.62.129.132 (off). # The default is off because it'd be overall better for the net if people # had to knowingly turn this feature on, since enabling it means that # each client request will result in AT LEAST one lookup request to the # nameserver. # HostnameLookups Off # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a
137
# Include ports listing Include /etc/apache2/ports.conf # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # If you are behind a reverse proxy, you might want to change %h into %{XForwarded-For}i # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{UserAgent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # # Define an access log for VirtualHosts that don't define their own logfile CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
# Include of directories ignores editors' and dpkg's backup files, # see README.Debian for details. # Include generic snippets of statements Include /etc/apache2/conf.d/ # Include the virtual host configurations: Include /etc/apache2/sites-enabled/
Archivo de los repositorios. /etc/apt/sources.list.d #deb http://archive.turnkeylinux.org/ubuntu lucid main #deb http://archive.turnkeylinux.org/ubuntu lucid universe deb http://es.archive.ubuntu.com/ubuntu lucid main restricted universe deb-src http://es.archive.ubuntu.com/ubuntu lucid main restricted universe deb http://es.archive.ubuntu.com/ubuntu lucid-security main restricted universe deb http://es.archive.ubuntu.com/ubuntu lucid-updates main restricted universe deb http://es.archive.ubuntu.com/ubuntu lucid-proposed main restricted universe
138
deb-src http://es.archive.ubuntu.com/ubuntu lucid-security main restricted universe deb-src http://es.archive.ubuntu.com/ubuntu lucid-updates main restricted universe deb-src http://es.archive.ubuntu.com/ubuntu lucid-proposed main restricted universe deb http://es.archive.ubuntu.com/ubuntu lucid partner deb-src http://es.archive.ubuntu.com/ubuntu lucid partner
Archivo de configuración del programa VSFTP. /etc/vsftpd.conf # Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES # # Run standalone with IPv6? # Like the listen parameter, except vsftpd will listen on an IPv6 socket # instead of an IPv4 one. This parameter and the listen parameter are mutually # exclusive. #listen_ipv6=YES # # Allow anonymous FTP? (Disabled by default) anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. #write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 #
139
# Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. #anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # If enabled, vsftpd will display directory listings with the time # in your local time zone. The default is to display GMT. The # times returned by the MDTM FTP command are also affected by this # option. use_localtime=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. #xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120
140
# # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES # # You may fully customise the login banner string: ftpd_banner=Bienvenido al servidor Molio # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. #chroot_local_user=YES # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by
141
# default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # Debian customization # # Some of vsftpd's settings don't fit the Debian filesystem layout by # default. These settings are more Debian-friendly. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd/empty # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/private/vsftpd.pem
142
ANEXO C Comprar nombre de dominio en 1and1 Nos dirigimos a la página principal de 1and1, http://www.1and1.es
Figura C.1.- Página principal 1and1
Seleccionamos el apartado “dominios” en la Figura C.1, y en la Figura C.2 seleccionamos el nombre de dominio y la extensión, casarural-sansofi.com
Figura C.2.- Selección de nombre de dominio
143
Damos al botón de comprobar para verificar que ese nombre de dominio en concreto esta libre. Una vez aceptado el nombre de dominio como libre, damos al botón de siguiente y nos aparecerán ofertas de 1and1, nosotros no las aceptamos.
Figura C.3.- Selección de pack
Hasta llegar a la ventana de la Figura C.3, donde elegir el pack a comprar. En nuestro caso compramos el 1&1 Dual Pack.
Figura C.4.- Condiciones de la compra
Aceptamos y en la siguiente ventana prodeceremos a completar los datos del cliente.
144
Figura C.5.- Datos del cliente
Aquí introducimos nuestros datos personales y en la siguiente ventana procederemos al último punto, el pago mediante tarjeta de crédito o PayPal. Una vez realizado el pago ya tenemos nuestro nombre de dominio comprado con 1and1 y también un panel de control a través de la web, ya somos cliente de 1and1.
145
ANEXO D Minitutorial SEO Punto 1: Elegir el objetivo Para conseguir buenos resultados es básico escoger un buen objetivo. Dedicaremos nuestros esfuerzos a un objetivo concreto. De su elección dependerá el éxito o fracaso de la web en cuanto a posicionamiento se refiere. Se llama keyword (o palabra clave) a la palabra por la que intentaremos posicionar nuestra web. Un sitio web se puede posicionar para varias palabras a la vez. La mejor estrategia es que el sitio web entero trate una temática concreta; por eso la estrategia fundamental debe de ser la de posicionar la página de inicio para una búsqueda importante y luego hacerlo con las páginas interiores para búsquedas más específicas. Tal como veremos más adelante, el posicionar la página principal del dominio nos atraerá más enlaces a nuestra página web, ya que la gente suele enlazar siempre a la página de inicio del dominio y no a páginas interiores. Por eso, tal como se ha dicho, posicionaremos para aparecer bien en la búsqueda por esa temática, y luego posicionaremos las páginas interiores para búsquedas más concretas sobre esa temática y alguna que otra que no tenga que ver. Si realmente queremos conseguir todas las visitas que puedas, es muy importante escoger bien tus palabras clave. Por un lado, puedes intentar competir por una búsqueda tan difícil por la que jamás conseguirás posicionar alto y no recibirás visitas. Por otro lado puedes escoger una keyword poco buscada y aún siendo primero no conseguirás demasiadas visitas. Para saber la dificultad de posicionarse por una keyword no hay un método exacto ni una escala exacta, pero se puede deducir la dificultad de diversas maneras. Después de leer el tutorial entero, sabrás más para poder determinar la dificultad de una keyword. Aquí van unas sugerencias: -Mira el PR de las páginas de esa búsqueda. EL PR no significa posicionarse mejor, es al revés; un buen posicionamiento suele implicar un buen PR. -Mira cuántos links entrantes tienen las primeras webs. Esto se hacebuscando en los buscadores de muchas maneras. Por ejemplo, en Yahoo! puedes buscarlo introduciendo en el cajón de búsqueda linkdomain:dominio.com; he aquí un ejemplo del resultado. En Msn tienes comandos linkdomain (para el dominio entero) y link (para una página concreta). En Google también existen esos comandos, pero Google
146
muestra muchos menos de los que conoce, por lo que no se suele usar para este motivo. Para saber lo buscada que es una palabra hay muchos métodos y herramientas. Uno puede ser mirar las estadísticas del sitio web que ocupa la posición que deseamos, si el sitio web las facilita. Sistemas de sugerencias de keywords: Overture: Uno de los más usados, ofrece resultados para varios países. Google AdWords: Google nos hará una selección de palabras interesantes con esta herramienta originalmente pensada para AdWords, pero que ya es muy utilizada con este propósito. Google Suggest: No diseñado para esto, puede servirnos. Google Zeitgeist: Lo más buscado, apto para saber las tendencias. Ofrece las búsquedas más frecuentadas.
Punto 2: Calidad La calidad es uno de los pilares de un buen posicionamiento en buscadores. El contenido de calidad nos beneficia en muchos sentidos. Por un lado, la finalidad de los buscadores es llevar a los internautas a aquello que buscan, y lo que buscan es calidad y contenido útil para ellos. Entonces, tarde o temprano los buscadores irán afinando su algoritmo hasta posicionar bien a las webs con contenido de calidad. Sobre todo, el contenido de calidad hace que otras webs citen, enlacen y hagan publicidad de tu web por su calidad, lo interesante que resulta o por ser, en general, de las mejores en su ámbito. La calidad no es el único factor. Por un lado hay webs puramente comerciales que no pueden generar un contenido lo suficientemente interesante, de forma que otros lo enlacen, por lo que el contenido de calidad es algo inaplicable en estos casos. Por el otro lado, un contenido de calidad que nadie conoce no genera estos links de la gente que valora nuestro trabajo, pues a la hora de la verdad, por desgracia, el contenido y la calidad no lo son todo.
Punto 3: Optimizar la web
147
Los buscadores se fijan en ciertos aspectos de una web y le dan importancia a ciertos factores. Por eso es muy importante saber qué valoran los buscadores en una página y optimizarlos. Para comenzar, mucha gente cree que los buscadores le dan mucha importancia a las "metas", especialmente la meta keywords y la meta description: <meta name="Keywords" content="Posicionamiento en 10 pasos, tutorial, manual, SEO" /> <meta name="Description" content="Posicionamiento en 10 pasos" /> Esto no es verdad. La meta keywords (los buscadores grandes) la ignoran hoy en día. Ni Google, Msn ni Yahoo! la valoran desde que se convirtió en puro spam. En la actualidad se sigue usando básicamente por costumbre y porque hay algunos pequeños buscadores que aún las usan, pero esta meta carece de gran valor a la hora de la verdad. La meta description no cuenta para posicionar una web; no obstante es importante tenerla, ya que, por ejemplo, Google la usa a veces para realizar el "Snippet" de sus resultados (al buscar una web en Google, aparece su título, que es a la vez un link, y luego aparece el snippet, que es una pequeña descripción o fragmento de texto de la web; luego aparece la URL y otros datos). Una meta description atractiva puede atraer visitantes si es usada como snippet. Para hacer una meta keywords, introduce unas 30 palabras clave relacionadas con tu página. Para la meta description usa una descripción de la web que sea atractiva para quien la lea. Hay una tag muy importante en el posicionamiento web y buscadores:
148
Hay otras tags que sirven para indicar importancia. Procura poner algunas de ellas con tus keywords:
Las
Punto 4: Conseguir links Este es un punto crucial. Para posicionar una web se valoran ciertos factores. Pues bien, los enlaces que apuntan a una web es un factor muy importante para esta valoración. Los links entrantes son interpretados por los buscadores como una especie de voto a esa web. Normalmente, a la hora de diseñar webs se enlaza a webs interesantes, de buena calidad... En definitiva, recomendamos al visitante una web, y eso es lo que más valoran los buscadores. Los buscadores básicamente valoran más los enlaces que en su "anchor text" (es el texto del enlace; en las imágenes se considera el atributo ALT como su equivalente para los buscadores) tengan la keyword y que vengan de webs de temática relacionada. ¿Cómo deben de ser los enlaces? Los enlaces más valiosos son los que vienen de webs relacionadas con nuestra temática. Al contrario de lo que creen muchos, en esto el PR no vale para nada. Hay links que no siguen los buscadores (y por eso no cuentan). Existen enlaces que incluyen el atributo nofollow en la etiqueta . Estos enlaces no son seguidos por los buscadores. Si tienes Firefox, hay un plugin muy útil para detectarlos de forma fácil: http://www.mundogeek.net/archivos/2005/03/16/nofollowalert-01/ No todos los links son igualmente válidos, y además nos pueden llegar a perjudicar. Por un lado, debemos evitar una popularidad artificial, que está penalizada por los buscadores. Además, debemos conservar una cierta naturalidad a la hora de conseguir enlaces para no ser sospechosos a la vista de los buscadores. Por un lado buscaremos una variación en el anchor text de los links, utilizando nuestros anchors texts principales y consiguiendo otros enlaces con otros anchor texts distintos. También es de reseñar que es bueno conseguir enlaces a un ritmo constante y tranquilo, ya que conseguir links de golpe y en gran cantidad puede hacer pensar a los buscadores que intentamos manipular sus resultados.
149
Hay muchas formas de conseguir enlaces. Existen sistemas de intercambios de enlaces gratuitos. Además, buscando en la red encontrarás multitud de webs deseosas de intercambiar enlaces contigo. Pero si tienes que dar un link a cambio, evita intercambiar con sites inapropiados. Por otro lado, es normal entre webmasters enviar emails a gente que no conocemos, para intercambiar enlaces. Directorios: en Internet hay multitud de directorios webs donde podremos conseguir links sugiriendo nuestras webs. Por ejemplo, www.DNVip.info
Punto 5: Indexación La indexación es el proceso por el que el buscador va rastreando el sitio y va incorporando a su base de datos el contenido de esas URLs. Es muy importante, la indexación es lo único que puede hacer que tu web, tu trabajo pueda aparecer en Google, toda página que el robot no haya rastreado ni indexado no figurará en los resultados. Los buscadores poseen un robot que es una especie de programa que se dedica a rastrear las webs e incorporar lo que cree interesante a la base de datos de su buscador, tanto para indexar nuevas webs como para actualizar los contenidos de su base de datos. Facilitar la indexación: lo básico. Los buscadores no indexan todo lo que recorren; sólo indexan lo que creen oportuno. Para mejorar nuestra indexación hay que conseguir que los robots pasen a menudo por nuestras páginas, por lo que, a más pasadas, más probabilidades de que las acabe indexando. Para aumentar la frecuencia de paso de los robots por nuestra web, hay que conseguir links entrantes y actualizar a menudo nuestra web. Para facilitar la indexación se puede empezar por evitar o arreglar las variables en las URLs (URLs dinámicas) que, por ejemplo, puede generar el PHP. Para servidores que corran sobre Apache existe un mod llamado mod_rewrite que sirve para reescribir URLs, mediante el cuál y con un fichero.htaccess se puede convertir esa URL a ojos de los buscadores en esta:http://www.dominio.extension/foro/index.php/board,4.0.html en otra más atractiva a los ojos de los buscadores.
Punto 6: Actualizarse
150
Los buscadores cambian y evolucionan constantemente, y hay webs, blogs y foros que te mantendrán informado de estos cambios. Encontrarás muchos más sitios donde informarte, tanto en español como en inglés. Es importante, no obstante, escoger fuentes fiables, ya que existen muchos en los que predominan leyendas urbanas y gente que realmente no sabe.
Punto 7: Penalizaciones La penalización es un método que tienen los buscadores para mejorar la calidad de los resultados. Si detectan una web que hace trampas para acceder a los primeros puestos, lo que hacen es penalizarla, que puede ser desde hacerla perder puestos hasta quitarla de sus resultados. a) Texto oculto El texto oculto es una técnica que consiste en ocultar texto o links a los visitantes de forma que sólo sea visible a los ojos de un robot buscador como Googlebot, Msnbot... Con esto el webmaster llena de palabras clave la web (bien para aumentar la densidad de palabras clave, bien para conseguir nuevas palabras claves) o pone links ocultos a otras webs (práctica muy común, sobretodo entre empresas SEO). Las formas para ocultar texto son muchas, desde poner el texto con el mismo color que el fondo, hasta los más sofisticados que lo ocultan en el código, usando con malos fines etiquetas como noscript o noembed entre otras. b) Webs duplicadas Las webs o páginas duplicadas consisten en crear webs idénticas, con el mismo contenido. Con esto consiguen links para la web que realmente quieren posicionar. c) Popularidad artificial La popularidad artificial consiste en técnicas para aumentar de forma postiza los links entrantes a una web. Hay diferentes modalidades: -Spam en weblogs y libros de firmas -Consiste en aprovecharse de blogs y libros de firmas para conseguir links. -Las FFA (Free For All) y granjas de enlaces son webs dedicadas a dar enlaces sin sentido de forma masiva. En unas puede ser gratis o pagando, pero la única finalidad de estas webs es dar un enlace. d) Cloaking
151
El cloaking es una sofisticada técnica mediante la cual se consigue hacer webs distintas en función de quién la visite. Es útil para redireccionar a los visitantes a las páginas de su idioma, deduciéndolo según su procedencia, por ejemplo. El problema está si la única misión de este cloaking es presentar a los usuarios una web normal y a los robots de los buscadores una página radicalmente distinta y optimizada con fines de posicionar mejor. e) Doorways Las doorways son páginas web optimizadas para posicionar alto en los buscadores y, normalmente, con una redirección que no ven los buscadores para que cuando llega un visitante sea redirigido a la página correcta.
Punto 8: Altas en buscadores Una vez que tenemos hecha nuestra página, lo siguiente que queremos hacer es aparecer en los buscadores. Nos podemos dar de alta en buscadores, y casi todos los buscadores disponen de formularios para hacerlo de forma fácil y sencilla. No obstante, el alta en buscadores es una práctica poco provechosa y sin demasiados beneficios. Será muy posible que navegando por la red topemos con webs que se dedican a esto, y que quieran incluso cobrarnos por ello, prometiendo altas en miles de buscadores. Realmente existen muchísimos buscadores, pero en la práctica sólo una decena de buscadores aportan visitas alguna vez, ya que entre Google, Yahoo!, Msn y buscadores que usan los datos de estos primeros (como Terra, Ya.com o AOL, que tienen acuerdos con estos buscadores) acaparan casi la totalidad del mercado, con más de un 95% de las búsquedas totales en la mayoría de países del mundo, destacando América y Europa. Por ello el darse de alta en más de 30 buscadores no es ninguna prioridad ni algo realmente que dé demasiadas visitas, y mucho menos sería lógico pagar a alguien para ello. Recomendamos como mínimo: Google.com, Yahoo.com, MSN.com, Altavista.com...
Punto 9: Seguimiento Para el posicionamiento es útil tener controladas las posiciones de nuestra web. Con monitorizar nuestras posiciones conseguiremos actuar a tiempo en caso de pérdida de posiciones, por si nos hubiesen penalizado u otros motivos. Para monitorizar resultados hay programas y webs online. Especialmente popular para controlar posiciones se ha convertido el programa Free Monitor for Google, un
152
programa gratuito por el que podremos controlar de forma cómoda nuestras posiciones. Pero hay que tener en cuenta a la hora de controlar posiciones, por ejemplo, los movimientos bruscos. Es habitual encontrarse sustos como pérdidas de posiciones repentinamente o cualquier cambio impensado. En posicionamiento esto habitual y normal, especialmente para webs nuevas. Normalmente los buscadores pueden darnos estos sustos que muchas veces duran sólo unos días como máximo. Antes de alarmarse es mejor esperar unos pocos días. En estos movimientos bruscos juegan un peso importante los datacenters de Google, por ejemplo. Controlar las visitas Es también muy importante ver como evolucionan las visitas y ver si se obtienen las visitas que esperamos, ver nuestros logros, ver dónde vamos bien y dónde vamos mal. Nos será útil también ver quién nos enlaza o descubrir nuevas keywords interesantes para posicionar páginas web. Hay muchas formas de controlar estas visitas. Existen muchos servicios online con los que copiando un pequeño código en nuestras páginas conseguiremos tener unas estadísticas sobre nuestras visitas. Para usuarios más avanzados existen también scripts que instalando en nuestro servidor también nos darán los datos que deseemos, por ejemplo phpMyVisites, PowerPhlogger..., entre muchos otros. También nuestro Hosting de pago es posible que nos proporcione en nuestro panel de control estadísticas más fiables (puesto que se basan en los logs) como Webalizer o los atractivos a la vista Urchin y AWStats.
153