153
1 Instalación, configuración y desarrollo de aplicación Web estudiando diversas alternativas de alojamiento Ingeniería Técnica en Informática de Sistemas Marzo 2012 Alumno: Jorge Molió Latorre Director: Ángel Rodas Jordá

Montando Servidor Turnkey Linux

Embed Size (px)

Citation preview

Page 1: Montando Servidor Turnkey Linux

1

Instalación, configuración y desarrollo de

aplicación Web estudiando diversas alternativas

de alojamiento

Ingeniería Técnica en Informática de Sistemas

Marzo 2012

Alumno: Jorge Molió Latorre

Director: Ángel Rodas Jordá

Page 2: Montando Servidor Turnkey Linux

2

Resumen

El presente documento recoge la Memoria del Proyecto Fin de Carrera que hemos

realizado. Los capítulos que en él se encontrarán son descritos brevemente a

continuación:

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.

Alojamiento web

En este segundo capítulo haremos hincapié en la importancia de un buen nombre de

dominio y elaboraremos un estudio sobre las empresas registradoras de dominios.

También describiremos como instalar y configurar nuestro propio servidor Web, y

también, por el contrario expondremos las distintas posibilidades donde hospedar un

sitio Web.

Creación del entorno web

En este tercer capítulo nos hemos centrado en el descubrimiento y descripción de los

requisitos funcionales de la aplicación. Donde explicaremos detalladamente los Casos

de Uso. Describiremos todas las tareas que se han realizado para lograr la elaboración

del Modelo Conceptual de Datos. Explicaremos los componentes que interactúan entre

sí en cada uno de los tres niveles de diseño. Y haremos una breve descripción de las

tecnologías que se han utilizado en el desarrollo de la aplicación, las herramientas con

las que hemos trabajado y las pruebas que se han realizado sobre el producto

realizado.

Promoción y posicionamiento Web

En este cuarto capítulo analizaremos las técnicas de posicionamiento web SEO y las

utilizaremos para posicionar mejor nuestro sitio web. También realizaremos un estudio

sobre portales especializados en turismo rural y presentaremos un análisis de las

características de los tres mejores portales.

Conclusiones

Ya para finalizar se listan una serie de conclusiones a las que hemos llegado durante la

elaboración de este Proyecto Fin de Carrera.

Page 3: Montando Servidor Turnkey Linux

3

Índice de contenidos

1.- Introducción…………………………………………………………………………………………………. 5

1.1.- Motivación………………………………………………………………………………….…... 5

1.2.- Objetivos…………………………………………………………………………………….….. 6

1.3.- Definiciones, acrónimos y abreviaturas………………………………………….…… 6

1.4.- Materiales y métodos…………………………………………………………………….…. 8

2.- Alojamiento Web…………………………………………………………………………………….…… 12

2.1.- Nombre de dominio………………………………………………………………………… 12

2.2.- Alojamiento propio…………………………………………………………………………. 15

2.2.1.- Instalación Turnkey Lamp………………………………………………….. 16

2.2.2.- Configuración del servidor...………………………………………………. 17

2.2.2.1.- Configuración de la interfaz de red...………..…………... 17

2.2.2.2.- Actualización de los repositorios………………………….… 19

2.2.2.3.- Configuración de los servidores virtuales……………….. 20

2.2.2.4.- Instalación y configuración servidor vsftp…………….... 22

2.2.2.5.- Uso de MySQL e iptables………………………………….…… 26

2.2.3.- Redireccionar hacia nuestro servidor……………………………..……. 29

2.3.- Alojamiento en la red…………………………………………………………….……….. 32

2.3.1.- Estudio de las empresas de hosting…………………………….……… 33

2.3.2.- Elección de 1and1………………………………………………………..…… 36

2.3.3.- Asociar nombre a nuestra cuenta……………………………………..… 36

3.- Creación del entorno web…………………………………………………………………………….. 39

3.1.- Especificación de los requisitos……………………………………………………….. 39

3.1.1.- Propósito y ámbito………………………………………………………....… 39

3.1.2.- Descripción general…………………………………………………………… 40

3.1.3.- Requisitos funcionales…………………………………………………….…. 43

3.2.- Análisis………………………………………………………………………………………….. 51

3.2.1.- Diagramas de casos de uso……………………………………………….. 52

3.2.2.- Diagrama de clases…………………………………………………………… 54

3.3.- Diseño…………………………………………………………………………………………… 56

3.3.1.- Nivel de presentación………………………………………………………… 58

3.3.2.- Nivel de aplicación………………………………………………………....... 63

3.3.3.- Nivel de persistencia………………………………………………….……… 64

3.4.- Implementación Web………………………………………………………………..……. 65

3.4.1.- Tecnologías utilizadas…………………………………………………..…… 65

3.4.2.- Implementación de la interfaz……………………………………………. 72

3.4.3.- Implementación de la funcionalidad………………………………..….. 75

3.4.4.- Implementación de la gestión de datos………………………….……. 78

3.4.5.- Pruebas……………………………………………………………………….….. 80

Page 4: Montando Servidor Turnkey Linux

4

4.- Promoción de una página Web……………………………………………………………………… 81

4.1.- Técnicas de posicionamiento Web SEO…………………………………………….. 82

4.1.1.- Etiqueta <TITLE>…………………………………………………………….. 84

4.1.2.- Metatag…………………………………………………………………………... 85

4.1.3.- Contenidos en etiquetas <H1>,<p>…………………………….…….. 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

Page 5: Montando Servidor Turnkey Linux

5

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

Page 6: Montando Servidor Turnkey Linux

6

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.

Page 7: Montando Servidor Turnkey Linux

7

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ón-

respuesta 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.

Page 8: Montando Servidor Turnkey Linux

8

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,

Page 9: Montando Servidor Turnkey Linux

9

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.

Page 10: Montando Servidor Turnkey Linux

10

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,

Page 11: Montando Servidor Turnkey Linux

11

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.

Page 12: Montando Servidor Turnkey Linux

12

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 [email protected]

que de una cuenta de correo proporcionada gratuitamente como

[email protected].

Page 13: Montando Servidor Turnkey Linux

13

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:

Page 14: Montando Servidor Turnkey Linux

14

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

Page 15: Montando Servidor Turnkey Linux

15

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

Page 16: Montando Servidor Turnkey Linux

16

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

Page 17: Montando Servidor Turnkey Linux

17

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

Page 18: Montando Servidor Turnkey Linux

18

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

Page 19: Montando Servidor Turnkey Linux

19

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

Page 20: Montando Servidor Turnkey Linux

20

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

Page 21: Montando Servidor Turnkey Linux

21

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

<VirtualHost *:80> ServerName www.casarural-sansofi.com ServerAlias casarural-sansofi.com SSLEngine on SSLCertificateFile /etc/ssl/certs/cert.pem DocumentRoot /var/www2/ </VirtualHost> <Directory /var/www2/> Options Indexes FollowSymLinks MultiViews Order allow,deny allow from all <IfModule mod_php5.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_flag register_globals Off php_value include_path . </IfModule> </Directory>

Ahora solamente nos queda activar el sitio:

#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

Page 22: Montando Servidor Turnkey Linux

22

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

Page 23: Montando Servidor Turnkey Linux

23

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.

Page 24: Montando Servidor Turnkey Linux

24

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

Page 25: Montando Servidor Turnkey Linux

25

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

Page 26: Montando Servidor Turnkey Linux

26

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

Page 27: Montando Servidor Turnkey Linux

27

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

Page 28: Montando Servidor Turnkey Linux

28

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

Page 29: Montando Servidor Turnkey Linux

29

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.

Page 30: Montando Servidor Turnkey Linux

30

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.

Page 31: Montando Servidor Turnkey Linux

31

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 .

Page 32: Montando Servidor Turnkey Linux

32

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

Page 33: Montando Servidor Turnkey Linux

33

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

Page 34: Montando Servidor Turnkey Linux

34

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 País Cuota

de mercado

Dominios

totales

1 WILDWESTDOMAINS.COM 25.0729 % 32,565,524

2 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

Page 35: Montando Servidor Turnkey Linux

35

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.

Proveedor 1&1 Arsys Abansys Dinahosting Piensa

solutions

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

Transferencia mensual

Ilimitada 3 GB Ilimitado 10 GB 4 GB

Cuentas correo

10 (2 GB por

buzón)

40 (3 GB por buzón)

10 (250 MBs el buzón)

20 -

MySQL 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

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

Page 36: Montando Servidor Turnkey Linux

36

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.

Page 37: Montando Servidor Turnkey Linux

37

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.

Page 38: Montando Servidor Turnkey Linux

38

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.

Page 39: Montando Servidor Turnkey Linux

39

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.

Page 40: Montando Servidor Turnkey Linux

40

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 pre-

reserva. 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.

Page 41: Montando Servidor Turnkey Linux

41

- 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.

Page 42: Montando Servidor Turnkey Linux

42

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.

Page 43: Montando Servidor Turnkey Linux

43

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

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.

Entradas Cada uno de los campos del formulario de registro.

Proceso

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.

Salidas Texto informando de que el proceso fue exitoso.

CU-02 Visualizar galería de imágenes

Introducción El usuario podrá visualizar todas las imágenes en una galería

estática, para ello deberá pulsar la pestaña de imágenes.

Entradas Pestaña “imágenes” seleccionada por el usuario en el menú de

selección.

Proceso

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.

Salidas Página con las imágenes en miniatura.

CU-03 Visualizar en detalle una imagen

Introducción

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

Entradas Imagen seleccionada por el usuario.

Page 44: Montando Servidor Turnkey Linux

44

Proceso

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.

Salidas Ventana con la imagen seleccionada, a una mayor resolución.

CU-04 Visualizar la descripción de la casa

Introducción El usuario en esta pestaña dispondrá de una descripción breve

pero concisa de la casa, junto con 3 imágenes.

Entradas Pestaña “la casa” seleccionada por el usuario.

Proceso

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.

Salidas Página con la descripción de la casa.

CU-05 Visualizar la ubicación en el mapa

Introducción

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.

Entradas Pestaña “ubicación” seleccionada por el usuario en el menú de

selección.

Proceso

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.

Salidas Página con la información sobre ubicación y el mapa.

CU-06 Visualizar las tarifas

Introducción

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.

Entradas Pestaña “tarifas” seleccionada por el usuario en el menú de

selección.

Proceso

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.

Salidas 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

Page 45: Montando Servidor Turnkey Linux

45

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.

Entradas Selección de la imagen del calendario.

Proceso

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.

Salidas Ventana emergente con la disponibilidad del calendario.

CU-08 Enviar una solicitud de reserva

Introducción

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.

Entradas Todos los campos obligatorios del formulario.

Proceso

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.

Salidas Texto informando sobre el correcto envío de la información.

CU-09 Acceder a un enlace

Introducción El usuario puede acceder a otras páginas de sitios relacionados

o de interés común.

Entradas Click en la imagen del sitio al que acceder

Proceso El usuario es redirigido al website en concreto abriendo una

nueva pestaña en el navegador.

Salidas Website en concreto, el que hemos seleccionado.

CU-10 Visualizar opiniones ajenas

Introducción El usuario podrá visualizar las opiniones de otros huéspedes

que han estado alojados en la casa rural anteriormente.

Entradas Pestaña “opiniones” seleccionada por el usuario en el menú de

selección.

Proceso

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.

Salidas La información en modo texto referente a los comentarios

realizados por otros usuarios.

Page 46: Montando Servidor Turnkey Linux

46

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

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.

Entradas Los datos de Username y Password ingresados por el usuario.

Proceso

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.

Salidas 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 El usuario puede editar los datos de registro así como alterar

sus preferencias.

Entradas Formulario cumplimentado con los campos modificados a

conveniencia del usuario.

Proceso

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.

Salidas 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

El usuario puede reservar unas fechas modificando

directamente el calendario de ocupación, siempre y cuando

sea un usuario registrado, (aceptado por el sistema)

Entradas Todos los campos obligatorios del formulario.

Proceso

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.

Salidas Calendario con los días seleccionados en rojo, junto con un

mensaje al usuario de operación realizada con éxito.

Page 47: Montando Servidor Turnkey Linux

47

CU-14 Insertar una opinión

Introducción El usuario registrado puede insetar una opinión en el área de

opiniones.

Entradas Formulario con el texto del mensaje y otros campos

introducidos por el usuario.

Proceso

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.

Salidas Se informa al usuario de que el mensaje fue insertado

correctamente o error en caso contrario.

CU-15 Modificar una opinión

Introducción

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.

Entradas Enlace “modificar opinión” junto con los datos a modificar.

Proceso

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

Salidas Se informa al usuario de que el mensaje fue modificado

correctamente o error en caso contrario.

CU-16 Eliminar una opinión

Introducción

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.

Entradas Enlace “eliminar opinión” seleccionado por el usuario, el cual

lleva asociado el identificador del mensaje a eliminar.

Proceso El sistema borra de la BD la tupla asociada al identificador del

mensaje.

Salidas Se informa al usuario de que el mensaje fue eliminado

correctamente.

CU-17 Cerrar sesión

Introducción El usuario puede cerrar la sesión activa en cualquier momento.

Entradas Enlace “cerrar sesión” seleccionado por el usuario, el cual

envía una variable de logout.

Proceso Es destruido el identificador de sesión así como las variables de

sesión.

Page 48: Montando Servidor Turnkey Linux

48

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

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.

Entradas Selección del año a buscar.

Proceso

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.

Salidas 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

El usuario puede visualizar las pre-reservas realizadas por los

usuarios registrados, para atender su petición y comenzar las

gestiones.

Entradas Selección de pestaña de pre-reservas.

Proceso El sistema busca la pre-reserva en la BD y extrae toda la

información necesaria de la tupla encontrada.

Salidas Se informa al usuario interno de las nuevas pre-reservas

mediante una tabla.

CU-20 Eliminar pre-reservas mediante calendario

Introducción

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.

Entradas Selección de pre-reserva a eliminar en la tabla de pre-reservas.

Proceso El sistema consulta la BD directamente, accede a la tupla en

concreto y la borra.

Salidas Se muestra un mensaje informando de la eliminación de la

tupla, siempre tendrá éxito esta acción.

Page 49: Montando Servidor Turnkey Linux

49

CU-21 Crear una reserva

Introducción El usuario puede dar de alta nuevas reservas, cumplimentando

cada uno de los campos del formulario.

Entradas Formulario cumplimentado y enviado por el usuario.

Proceso

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.

Salidas 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

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.

Entradas Seleccionar la sección usuarios, dentro del panel del

administrador.

Proceso El sistema obtiene de la BD la información necesaria de cada

usuario registrado en la misma.

Salidas Listado ordenado alfabéticamente por apellido de todos los

usuarios junto con algunas opciones.

CU-23 Visualizar los detalles de los usuarios

Introducción El administrador puede visualizar todos los detalles de un

usuario determinado a excepción de su contraseña.

Entradas Username seleccionado por el administrador.

Proceso El sistema busca el usuario en la BD y extrae toda la

información necesaria de la tupla encontrada.

Salidas Ventana emergente mostrando toda la información disponible

Page 50: Montando Servidor Turnkey Linux

50

sobre el usuario a excepción de su contraseña.

CU-24 Crear un usuario

Introducción El administrador puede dar de alta nuevos usuarios, ya sea con

privilegios de interno o de registrado.

Entradas Formulario cumplimentado por el administrador.

Proceso

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.

Salidas Se informa al administrador que el evento fue introducido con

éxito o que el proceso fue cancelado.

CU-25 Eliminar un usuario

Introducción El administrador puede eliminar usuarios de la BD a

conveniencia.

Entradas Formulario de confirmación de borrado de usuario, enviado por

el administrador.

Proceso

El sistema muestra un formulario de confirmación de borrado.

Si éste es confirmado, se elimina de la BD la tupla asociada al

usuario.

Salidas 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 El administrador puede modificar una reserva de la BD.

Entradas Formulario de confirmación de modificación de reserva enviado

por el administrador.

Proceso

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.

Salidas Se muestra un mensaje informando que el modificado

concluyó con éxito.

CU-27 Eliminar una reserva

Introducción El administrador puede eliminar una reserva de la BD.

Entradas Formulario de confirmación de borrado de reserva enviado por

el administrador.

Page 51: Montando Servidor Turnkey Linux

51

Proceso

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.

Salidas Se muestra un mensaje informando que la eliminación

concluyó con éxito.

CU-28 Eliminar una opinión

Introducción

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.

Entradas Enlace de “eliminar opinión” seleccionado por el administrador.

Proceso Se elimina de la BD la tupla correspondiente a la opinión

seleccionada.

Salidas 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.

Page 52: Montando Servidor Turnkey Linux

52

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.

Page 53: Montando Servidor Turnkey Linux

53

Figura 21.- Casos de uso para el usuario anónimo

Figura 22.- Casos de uso para el usuario registrado

Page 54: Montando Servidor Turnkey Linux

54

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.

Page 55: Montando Servidor Turnkey Linux

55

Figura 25.- Diagrama de clases del proyecto

Page 56: Montando Servidor Turnkey Linux

56

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.

Page 57: Montando Servidor Turnkey Linux

57

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.

Page 58: Montando Servidor Turnkey Linux

58

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

Page 59: Montando Servidor Turnkey Linux

59

Figura 28.- Descripción de la casa

Figura 29.- Imágenes de la casa

Page 60: Montando Servidor Turnkey Linux

60

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

Page 61: Montando Servidor Turnkey Linux

61

Figura 31.- Formulario de contacto

Figura 32.- Opiniones de huéspedes

Page 62: Montando Servidor Turnkey Linux

62

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

Page 63: Montando Servidor Turnkey Linux

63

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.

Page 64: Montando Servidor Turnkey Linux

64

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), estancia:date,

observaciones:text, precio:int(4), email:varchar(45) )

CP:{id}

VNN:{nombre, estancia, precio}

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

Page 65: Montando Servidor Turnkey Linux

65

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

Page 66: Montando Servidor Turnkey Linux

66

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:

<p>Esto esta escrito con una fuente normal mientras que <strong>esto esta escrito

con una fuente mas gruesa o negrita</strong></p>

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:

<html>

<head>

<title>Aquí iría el título de la página</title>

</head>

<body>

Aquí debe ir el contenido de la página

</body>

</html>

El diseño en HTML debe respetar unos criterios de accesibilidad web, siguiendo unas

pautas o normativas. Se encuentra disponible y desarrollado por el W3C a traves de las

Pautas de Accesibilidad al Contenido Web 1.0 WCAG

CSS

El lenguaje HTML está algo limitado si queremos emplearlo para definir la forma de un

documento, ya que no fue concebido precisamente para este fin. Aun asi, durante

mucho tiempo los disenadores han debido recurrir a “trucos” para salvar esta

dificultad, causando a menudo problemas en las paginas a la hora de su visualizacion

en distintas plataformas.

CSS u hojas de estilo en cascada (Cascading Style Sheets), es un lenguaje usado para

definir la presentacion de un documento estructurado escrito en HTML. Lo que se

pretende con esta tecnologia es separar la estructura de una página web de su

Page 67: Montando Servidor Turnkey Linux

67

presentación, esto es, el contenido en si a mostrar de la forma con que se desea que

aparezca.

CSS puede incorporarse en el mismo documento HTML o bien adjuntarse como un

documento por separado (obviamente el documento HTML debera entonces

referenciarle).

Enumeraremos algunas de las ventajas de CSS:

• Podemos definir la forma de presentación de un website entero, de solo una página o

una porción de la misma. Se agilizan por tanto enormemente, las tareas de

modificación: por ejemplo, bastaría con editar una hoja de estilo CSS para que tuviera

una repercusión inmediata en todas las páginas del website.

• El documento HTML es mas fácil de entender, pues conseguimos con CSS separar la

forma del contenido (el código que hace referencia a la forma, ya no estará

entremezclado con el código restante).

• Una misma pagina Web puede ser mostrada de forma correcta en diversos

dispositivos de salida: un móvil, una impresora, una PDA. Para ello bastara con

sustituir la hoja de estilo empleada.

• Aumento considerable de la accesibilidad, ya que un navegador web permite a un

usuario especificar su propia hoja de estilo local. Idóneo por tanto para usuarios con

deficiencias visuales (hojas que aumentan el tamaño de letra o la combinación de

colores).

Otro de los recursos ampliamente buscados por diseñadores web y que están basados

en CSS son los denominado Framewoks CSS. Estos no son mas que declaraciones de

estilos escritas en CSS que preparan y agilizan la maquetación de una pagina web,

principalmente porque resetean y normalizan los estilos, con el fin de homogeneizar los

resultados (conseguimos que nuestras paginas sean mostradas del mismo modo en

cualquier navegador web).

Modelo de caja en CSS

CSS pone a disposición del diseñador otro recurso muy extendido que es el Modelo de

Caja. Este modelo permite estructurar los diferentes contenidos de la pagina como si

de cajas rectangulares de tratara. Cada caja puede pertenecer a un servicio (por

ejemplo, el buscador), una sección (por ejemplo el apartado de noticias) o a su vez

una parte de una sección (por ejemplo la fotografía de la noticia).

Page 68: Montando Servidor Turnkey Linux

68

Las cajas a su vez están compuestas por partes o capas, presentando en conjunto una

estructura tridimensional. De esta forma, toda caja tiene una parte que es el borde,

otra que es el relleno, un margen, un color y una imagen de fondo, un relleno y

finalmente un contenido. Cada una de estas partes podríamos representarlas como una

estructura de capas superpuestas, como puede verse en la Figura 36.

Figura 36.- Modelo de caja en CSS

Las cajas se implementan en HTML, delimitándolas con un par de etiquetas <div>

</div>. Posteriormente se asigna a cada caja una serie de estilos CSS a través de un

identificador o una clase. Sirva como ejemplo el siguiente extracto de código HTML que

describe una de las diversas cajas empleadas en nuestro portal objeto de estudio:

PHP

PHP (PHP Hypertext Pre-processor) es un lenguaje de programación interpretado,

diseñado originalmente para la creación de páginas web dinámicas. Fue creado en

1994 por el programador danes-canadiense Rasmus Lerdorf (Personal Home Page

Tools por aquel entonces) para mostrar su curriculum vitae y conocer el tráfico que su

web recibía.

Page 69: Montando Servidor Turnkey Linux

69

PHP es un lenguaje poderoso y esta ampliamente extendido, se utiliza en mas de 20

millones de sitios web además de en un millón de servidores. Uno de los motivos es un

gran perecido con otros populares lenguajes de programación estructurada, lo que

facilita su dominio en el menor tiempo. Otra de las razones es que es libre (licencia

GNU) y por tanto, fácilmente accesible a todos. Y por añadir alguna razón más,

indicaremos que PHP permite ser ejecutado en la mayoría de los sistemas operativos e

interactuar con los servidores web y motores de base de datos más populares.

El código fuente escrito en PHP es invisible al navegador y al cliente. El servidor es el

encargado de ejecutar el código y enviar su resultado HTML al navegador (véase

Figura 37). Esto hace que la programación en PHP sea segura y confiable.

Fig. 37. - Esquema funcionamiento PHP

Nuestro caso de estudio esta fundamentado principalmente en PHP, integrado entre el

código HTML. El esquema de funcionamiento para un potencial usuario que visualizara

alguna de sus paginas web es muy similar al descrito en la Figura 37, y ayuda a

entender 2 conceptos con los que abríamos la introducción de este apartado: PHP

como “lenguaje interpretado” y orientado al desarrollo de “paginas web dinámicas”. A

continuación describiremos brevemente un posible escenario de nuestro portal web

que se ajusta a la figura anterior.

Un usuario pretende visualizar alguna de las paginas de nuestro, posiblemente

enviando alguna información adicional a través de un formulario. El navegador web

realizara esta solicitud. La petición será recibida por el servidor web donde estará

alojada la pagina web, analizara la misma y allí donde encuentre instrucciones PHP, las

interpretara y las “cambiara” por un resultado ya escrito en HTML. Si fuera necesario,

podría consultar a la Base de Datos para incorporar alguna información sustraída de la

misma. Finalmente devolverá el resultado final al cliente (navegador web) que inicio la

solicitud o petición.

Page 70: Montando Servidor Turnkey Linux

70

Como es posible comprobar en la descripción del escenario anterior, la página web

será interpretada por el servidor previo a ser devuelta al cliente y además, su

contenido se generara a partir de algún dato introducido por el usuario, probablemente

a través de un formulario, es decir, este contenido no estaba inicialmente en el archivo

HTML original, lo que responde al concepto de página web dinámica (el resultado

no siempre es el mismo como sucedería en una pagina web estática).

Javascript

JavaScript es un lenguaje de scripting, esto es, un archivo de ordenes, generalmente

almacenado en formato de texto plano, que representa a un programa habitualmente

de complejidad sencilla que puede efectuar diversas tareas como combinar

componentes o bien interactuar con el sistema operativo o con el usuario, motivo por

el que es frecuentemente recurrido para diseñar interfaces de usuario.

JavaScript es interpretado por la amplia totalidad de navegadores web modernos.

Puede incluirse en cualquier documento y es compatible con HTML en el navegador del

cliente. La W3C define que el método óptimo para utilizar JavaScript es incluirlo en un

archivo externo, por razones de accesibilidad y rendimiento.

Fue desarrollado por Brendan Eich de Netscape con el nombre de Mocha, el cual fue

renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript

coincidiendo con el anuncio de que Netscape soportaría oficialmente Java en su, por

aquel tiempo, popular navegador web, estrategia que no estuvo exenta de algunas

polémicas. En nuestro caso utilizamos Javascript para generar un calendario dinámico

donde los clientes pueden seleccionar las fechas de entrada y salida de sus estancias,

véase la Figura 38.

Figura 38.- Calendario dinámico en Javascript

Page 71: Montando Servidor Turnkey Linux

71

MySQL

MySQL es un sistema de gestion de base de datos, relacional, multihilo y multiusuario.

Relacional porque se sustenta en un modelo de datos (modelo relacional) basado en la

logica de precicados y en la teoria de conjuntos. Multihilo porque permite el acceso

concurrente a la informacion, de forma ordenada y segura. Finalmente es multiusuario

porque permite proveer servicio a multiples usuarios simultaneamente.

MySQL se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, lo

que implica comprar una version comercial licenciada si el usuario no se ajusta al GPL

o requiere introducir codigo MySQL en aplicaciones comerciales. Al contrario de

proyectos como Apache, donde el software es desarrollado por una comunidad pública

y los derechos de autor del código están en poder del autor individual, MySQL es

patrocinado por una empresa privada, que posee el copyright de la mayor parte del

código.

El uso de MySQL esta muy extendido en aplicaciones web, en plataformas

(Linux/Windows-Apache-MySQL-PHP/Perl/Python). Su popularidad como aplicación

web esta muy ligada a PHP, que a menudo aparece en combinacion con MySQL. Su

origen se remonta al ano 1995 cuando la empresa MySQL AB busca adaptar el

lenguaje SQL (que ya existia desde 1981) de forma que continue cumpliendo su

estandar pero sin sacrificar velocidad, fiabilidad o usabilidad.

Figura 39.- Tabla de la utilidad phpMyAdmin para la gestión de base de datos

Para el caso que nos ocupa, se opto por MySQL por su extremada sencillez de manejo,

gracias en parte a la interface PHPMyAdmin. Esta inferface organiza la informacion en

base a tablas y permite manipular a informacion, tanto de contenido como de

estructura, de forma rapida y confiable.

Page 72: Montando Servidor Turnkey Linux

72

3.4.2.- Implementación de la interfaz

Presentamos a continuación los elementos CSS que han sido necesarios para la

implementación de la página web junto con sus configuraciones. La página consta de

cuatro elementos básicos que aparecen en todos los archivos .php y .html, el top, sirve

para separar la cabecera del menú, el menú, el content, donde aparecera el contenido

de cada sección, el bottom, un pequeño marco que realiza la función de recuadro y el

footer, más abajo del bottom.

Figura 40.- Conjunto de elementos CSS

En la Figura 40, vemos los elementos CSS utilizados por separado sin ninguna

configuración. A continuación vamos a detallar cada elemento con su configuración.

Cabecera

Figura 41.- Cabecera

La cabecera consiste en una imagen estática justamente acoplada al ancho de los

demás elementos, enmarcada el el <div> principal #wrap

Top

Figura 42.- Top

Page 73: Montando Servidor Turnkey Linux

73

El top es utilizado como marco separador entre la cabecera y el menú, a continuación

detallamos su configuración:

#top {

background: #555 url(imagenes/top.jpg) no-repeat;

padding: 5px 0;

}

Menu

Figura 43,- Menu

El menu es utilizado para definir el nombre de las secciones, a continuación detallamos

su configuración:

#menu {

height: 30px;

line-height: 30px;

background: #2B9B0B url(imagenes/menu.jpg) no-repeat;

}

#menu ul {

padding-left: 10px;

list-style-type: none;

}

#menu ul li {

display: block;

float: left;

}

#menu ul li a {

color: #eee;

padding: 0 13px;

text-decoration: none;

font-weight: 600;

}

#menu ul li a:hover {

color: #fff;

text-decoration: underline;

}

Page 74: Montando Servidor Turnkey Linux

74

Content

Figura 44.- Content

El content es utilizado para almacenar toda la información de cada sección de la página

web, a continuación detallamos su configuración:

#content {

padding-top: 10px;

padding-right: 20px;

padding-bottom: 10px;

padding-left: 20px;

background-color: #525252;

background-image: url(imagenes/content.jpg);

background-repeat: repeat-y;

}

Bottom

Figura 45.- Bottom

El bottom es utilizado como marco final entre el content y el footer, a continuación

detallamos su configuración:

#bottom {

background: #555 url(imagenes/bottom.jpg) no-repeat;

padding: 6px 0;

}

Footer

Figura 46.- Footer

El footer es utilizado como pie de página, donde encontramos la información de

contacto, ubicación de applet de facebook, a continuación detallamos su configuración:

#footer {

text-align: center;

Page 75: Montando Servidor Turnkey Linux

75

color: #eee;

font-size: 11px;

padding: 0px 20px 5px 0px;

}

Nos encontramos en la hoja de estilos CSS (style.css) el elemento body, que define las

características generales de la página web, el tipo de letra predominante ha sido el

verdana y el color de fondo el #FF6600, naranja característico que cubre el fondo de la

pantalla del navegador web. A continuación detallamos su configuración del body:

body {

background: #FF6600;

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 15px;

line-height: 18px;

color: #333333;;

}

3.4.3.- Implementación de la funcionalidad

En este apartado, se expondrán algunas secciones de código que implementan las

funciones o procesos que forman parte del nivel de Aplicación. Por cuestiones de

privacidad y por evitar adentrarnos en exceso en el tema del software (no es objetivo

del presente PFC) tan solo comentaremos una única clase, mostrando para ello el

código necesario en HTML y PHP.

Formulario de contacto

Este método es recursivo sobre si mismo, sino se ha invocado al método

HTTP_POST_VARS, el flujo de ejecución espera a su invocación:

<?php

if (!$HTTP_POST_VARS){

?>

A continuación observamos el código HTML necesario para crear una tabla, donde cada

casilla contendrá un campo a rellenar y este más adelante será recogido por el método

POST:

<form action="contacto.php" method="post" enctype="multipart/form-data"

id="form1">

Page 76: Montando Servidor Turnkey Linux

76

<table width="586" height="199" border="0" bgcolor="#FFFFFF">

<tr>

<td width="218"><span class="Estilo14">

<label>Persona de contacto: </label>

</span></td>

<td width="358"><input name="nombre" type="text" size="30"

maxlength="25" /></td>

</tr>

<tr>

<td><span class="Estilo14">

<label>Teléfono:</label>

</span></td>

<td><input name="telefono" type="text" tabindex="30"

value="+34" size="30" maxlength="16"/></td>

</tr>

<tr>

<td><span class="Estilo14">E-m@il:

<label></label>

</span></td>

<td><input name="mail" type="text" tabindex="30" size="30"

maxlength="35" /></td>

</tr>

<tr>

<td><span class="Estilo14">Fecha de entrada:</span></td>

<td><input name="fecha_ent" type="text" id="inputField" size="12"

maxlength="12" /></td>

</tr>

<tr>

<td><span class="Estilo14">Fecha de salida:</span></td>

<td><input name="fecha_sal" type="text" id="inputField2"

size="12" maxlength="12" /></td>

</tr>

<tr>

<td><span class="Estilo14">Número de ocupantes: </span></td>

<td><input name="ocupantes" type="text" size="3" maxlength="1"

/>

<span class="Estilo14">(máximo 6) </span></td>

</tr>

<tr>

<td><span class="Estilo14">Comentarios:</span></td>

<td><span class="Estilo11">

<textarea name="comentarios" cols="50"></textarea>

</span></td>

</tr>

Page 77: Montando Servidor Turnkey Linux

77

<tr>

<td><input name="submit" type="submit" value="Enviar" /></td>

<td><input name="Submit2" type="reset" value="Borrar" /></td>

</tr>

</table>

</form>

<p class="Estilo12">

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.

<?php

}else{

//Estoy recibiendo el formulario, compongo el cuerpo

$cuerpo = "Formulario enviado\n";

$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";

$cuerpo .= "Telefono: " . $HTTP_POST_VARS["telefono"] . "\n";

$cuerpo .= "Email: " . $HTTP_POST_VARS["mail"] . "\n";

$cuerpo .= "Fechas de entrada: " . $HTTP_POST_VARS["fecha_ent"] .

"\n";

$cuerpo .= "Fechas de salida: " . $HTTP_POST_VARS["fecha_sal"] .

"\n";

$cuerpo .= "Ocupantes: " . $HTTP_POST_VARS["ocupantes"] . "\n";

$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentarios"] . "\n";

$flag=true;

//mando el correo...

if( flag ) mail("[email protected]","Reserva CASA RURAL

SANSOFI",$cuerpo);

//doy las gracias por el envío

print "Gracias por rellenar el formulario. Se ha enviado correctamente.\n";

print '<p>&nbsp;</p>';

print "En breve nos pondremos en contacto con usted\n";

print '<p>&nbsp;</p>';

print '<a href=contacto.php>Regresar</a>';

print '<p>&nbsp;</p>';

}

?>

Page 78: Montando Servidor Turnkey Linux

78

3.4.4.- Implementación de la gestión de datos

En este apartado, se expondrán algunas secciones de código que implementan las

funciones o procesos que forman parte del nivel de Persistencia. Por cuestiones de

privacidad y por evitar adentrarnos en exceso en el tema del software (no es objetivo

del presente PFC) tan solo comentaremos una única clase, mostrando para ello el

código necesario en PHP y MySQL.

Operaciones de consulta

En el módulo de funciones.php tenemos las funciones encargadas de realizar la

conexión a la base de datos, seleccionando en concreto la base de datos con la que

vamos a trabajar, estas funciones han sido estraidas en un nódulo a parte, puesto que

serán necesarias cada vez que queramos realizar una nueva transacción con la base de

datos. En la función mysql_connect definimos como primer argumento el sitio en la red

donde tenemos instalado nuestro servidor MySQL, el segundo campo es el nombre de

usuario y el tercero la contraseña, en este caso no la ofrecemos por obvios motivos de

seguridad.

Módulo funciones.php

<?php

mysql_connect("db157.1and1.es","dbo279164252","contraseña_secreta") or die

("No se ha podido conectar a la base de datos");

mysql_select_db("db279164252") or die("Error al tratar de selecccionar

esta base de datos");

?>

En el módulo operaciones tenemos todo el código necesario para realizar las

operaciones de consulta, insertado, eliminación y modificación de las reservas en la

base de datos.

Módulo operaciones.php

<?php

include 'funciones.php';

if ($_SESSION["autentificado"] != "SI") {

print "<script>window.location='/lugar_del_propietario.php';</script>";

exit();

}

?>

Page 79: Montando Servidor Turnkey Linux

79

Aquí irá el código HTML encargado de implementer la tabla donde se mostrará la

opción a elegir, nosotros en este punto nos encargaremos de tratar la consulta de

reservas.

<?php

$opcion = $HTTP_POST_VARS['opcion'];

if($opcion=="consultar"){

$consulta = "SELECT * FROM Reservas";

$resultado = mysql_query($consulta);

print "<br><br>";

print "<table>";

print

Primero seleccionamos todas las tuplas de la tabla reservas y guardamos el resultado

de mysql_query en la variable $resultado. A continuación recorremos el resultado con

mysql_fetch_row, en cada iteración del bucle estamos nos desplazamos una tupla y

por cada tupla nos desplazamos un elemento, mediante $array[indice], a su vez

estamos creando la tabla que aparecerá con los campos correspondientes a cada

campo de la tabla Reservas. Asi estamos observando cada todas las reservas

confirmadas.

"<tr><th>Nombre</th><th>Origen</th><th>Estancia</th><th>Observaciones</th

><th>e-m@il</th><th>Precio</th></tr>";

while( $array=mysql_fetch_row($resultado) ){

print "<tr><td>".htmlentities($array[1])."</td>";

print "<td>".htmlentities($array[2])."</td>";

print "<td>".$array[3]."</td>";

print "<td>".htmlentities($array[4])."</td>";

print "<td>".htmlentities($array[6])."</td>";

print "<td>".$array[5]."€</td></tr>";

}//del while

print "</table>";

}else if( $opcion=="insertar" ){ // Estas opciones de inserter, eliminar

}else if( $opcion=="eliminar" ){ // y modificar no serán objeto de estudio

}else if( $opcion=="modificar" ){ // en el presente PFC

}

?>

Page 80: Montando Servidor Turnkey Linux

80

3.4.5.- Pruebas

Durante el desarrollo del software y una vez hemos finalizado la implementación del

mismo se han ido desarrollando una serie de pruebas que nos ayuden a medir y

mejorar la calidad del mismo. En este apartado de la Memoria vamos a mencionar los

diferentes tipos de pruebas que hemos realizado, con qué fin y cuándo las hemos

llevado a cabo.

Pruebas Unitarias: este tipo de pruebas las hemos utilizado para comprobar el correcto

funcionamiento de un módulo de código que se ha desarrollado, permitiéndonos de

esta manera asegurar que cada uno de ellos funcionará correctamente por separado.

Para la realización de estas pruebas nos hemos basado en la escritura de una serie de

casos de prueba en los cuales se definen una serie de datos de entrada y de datos de

salida esperados; una vez ejecutado el caso de prueba hemos cotejado los datos

obtenidos con los datos esperado de tal manera que si existiese algún tipo de error o

desviación en los mismos (o en los resultados esperados) actuar para corregirlo. Con el

fin de no alargar más de lo necesario este documento de la Memoria no hemos incluido

todos los casos de prueba que se han realizado.

Pruebas de Integración: una vez se han ido realizando las diferentes pruebas

funcionales relacionadas con los distintos módulos de la aplicación, y se comprueba

que estos funcionan correctamente, hemos pasado a realizar estas pruebas en las

cuales se han visto cómo interaccionan cada uno de los módulos entre sí (por ejemplo,

hemos tenido que ver cómo interaccionan los diferentes componentes de las capas de

la arquitectura para realizar una operación concreta). Una vez sabemos que todos los

módulos funcionan correctamente podremos pasar a realizar las pruebas funcionales

sobre los mismos.

Pruebas Funcionales: al realizar estas pruebas lo que perseguimos es ver, con la

ejecución de una transacción, que el sistema desarrollado ofrece lo que realmente se

le está demando y, en el caso de que no fuese así, corregirlo para que lo ofrezca con el

fin de ofrecer a los usuarios una aplicación de calidad.

Al igual que ocurría con las pruebas unitarias estas pruebas funcionales se han

realizado en el momento en que el que se daba por finalizadas las pruebas unitarias

relacionadas con una transacción y justo antes de poder dar por finalizado el desarrollo

de la misma.

Pruebas de Validación: estas son los últimos tipos de pruebas que hemos llevado a

cabo sobre la aplicación. Simplemente consisten en comprobar que el sistema que se

ha desarrollado cumple con todas las especificaciones que se han definido sobre el

mismo y además que realiza lo que se esperaba de él.

Page 81: Montando Servidor Turnkey Linux

81

CAPITULO IV

Promoción de una página Web

Una vez que hemos lanzado una web no es suficiente, hay que promocionarla dándola

a conocer a la audiencia de Internet, porque un site no puede venderse por sí sólo

(salvo en casos de sites muy solicitados por la gente); el promocionar una web tiene

como objetivo conseguir tráfico, pues serán los visitantes quienes generen beneficios

para nosotros.

Posicionamiento Web SEO

Hace unos años, con el nacimiento de Google, los webmasters se dieron realmente

cuenta cómo de importante era tener un site "bien posicionado", estos es, que tras

hacer búsquedas con ciertos términos (keywords) en Google apareciese, o bien el site

en los primeros resultados, o bien muchos links a su site, lo cual aseguraría visitas.

SEO significa (Search Engine Optimization). Actualmente existen un nuevo tipo de

usuarios que se ganan la vida como SEO's, dicho sea de paso con sueldos bastante

elevados. Su labor consiste en mantener un site perfectamente promocionado y

posicionado, tal como dice la definición optimizando los motores de búsqueda (no sólo

Google).

La tarea de optimizar la estructura de una web y el contenido de la misma, así como la

utilización de diversas técnicas de linkbuilding, linkbaiting o contenidos virales con el

objetivo de aparecer en las primeras posiciones de los resultados de los buscadores

(cuando un usuario busca por una determinada palabra clave o keyword), es conocida

como SEO.

La aplicación de técnicas SEO suele ser más intensa en sitios web con mucha

competencia y lo que se pretende con su aplicación es el posicionarse por encima de

los competidores por determinadas palabras clave.

Tradicionalmente, los sitios web, cuando los motores de búsqueda solamente

mostraban resultados de los algoritmos de búsquedas orgánicas, eran más fáciles de

optimizar. Las técnicas para posicionarse en los motores de búsqueda eran las ya

conocidas y enumeradas anteriormente. Sin embargo, últimamente están apareciendo

en los buscadores diversas nuevas tecnologías que han insertado muchas nuevas

variables que es necesario tomar en cuenta para la optimización de un sitio web.

Podemos decir a ciencia cierta, que hacer la labor SEO es la más importante a la hora

de vender servicios de Internet en nuestro website.

Page 82: Montando Servidor Turnkey Linux

82

4.1.- Técnicas de posicionamiento Web SEO

Cuando hablamos de técnicas de posicionamiento de páginas Web podemos concretar

una serie de pasos a seguir que de alguna manera siempre son comunes. Obviamente

el objetivo es conseguir la mejor posición para una serie de términos. Y es éste el

punto de partida para el posicionamiento. Pero no hay que olvidar que quien contrata

este servicio no busca el solo el hecho de estar ahí sino que para esas búsquedas se

genere un negocio.

En el posicionamiento tenemos la limitación de los idiomas por lo que en muchos de

los pasos que vamos a ir explicando nos centraremos en buscadores .es pero el

funcionamiento es igual para cualquier país en el que nos encontremos.

Realmente hablamos de técnicas de optimización como si fuese algo complementario a

añadir a las páginas pero la gran mayoría de estos cambios no son más que la forma

más correcta de tener una página para que muestre lo que realmente queremos, decir

que van a encontrar las personas que visitan esa Web, y por tanto esto mismo es lo

que van buscando los motores de búsqueda pues todos los algoritmos por muy

automáticos que sean están pensados para dar el resultado más próximo a lo que una

persona este buscando.

Hay que aclarar que muchas de las técnicas realmente son suposiciones basadas en la

experiencia de meses/años trabajando sobre las búsquedas y viendo el

comportamiento que estas tienen sobre los resultados con lo que todo lo que se

explica no es la verdad absoluta.

Estudio de los términos

Hay que destacar que Google.es se lleva aproximadamente un 98% de las búsquedas

realizadas en España, por lo que tendremos ejemplos y explicaciones basándonos

principalmente en búsquedas sobre el motor de Google.

El estudio de términos es el primer paso a la hora del posicionamiento y por tanto los

pilares de un buen resultado en este trabajo. Para este desempeño y muchos otros

Google dispone de herramientas que nos ayudan en nuestro desempeño. En concreto

para hacer un estudio de términos nos ayudaremos de una herramienta llamada

Google Keywords Tool (https://adwords.google.com/select/KeywordToolExternal).

Esta es una herramienta creada para la parte de pago por click y que Google llama

Google Adwords. Los resultados que nos proporcionan son sobre las búsquedas que

genera esta sección pero es bastante obvio que lo que funciona en la parte de pago

funcionará de igual forma en las búsquedas normales salvo algunas excepciones con

las que habrá que tener cuidado por la fecha en la que se realice. No vamos a tener ni

muchísimo menos resultados parecidos tanto en cantidad de búsquedas como en

Page 83: Montando Servidor Turnkey Linux

83

competencia si por ejemplo estamos estudiando el término cestas de Navidad en

Diciembre como en Agosto.

Esta herramienta nos proporciona una serie de términos con alternativas, sinónimos,

etc, con el volumen de búsquedas y la competencia que tiene ese término. Por ejemplo

supongamos que tenemos una Web de un negocio que es una clínica de odontología.

Para comenzar pondremos una serie de términos que nos puedan parecer interesantes

como: rural casa, casas rurales, casa rurales, casas rural, hotel en casa, alojamientos

rurales, turismo rural, hotel rural, casas rurales, casa turismo, casas turismo, turismo

casas…

Un detalle es el hecho de incluir palabras de enlace como para, en, de… Se dice que

los algoritmos de los principales buscadores eliminan estas palabras antes de ponerse

en marcha con el algoritmo de búsqueda en si.

Nuestro trabajo en ambos casos es jugar con las dos posibilidades en dependencia de

la parte del código que se este optimizando y si este texto va a ser más o menos

visible ya que tampoco queremos dar una mala imagen como puede ser no poniendo

acentos.

En esta primera tormenta de términos debemos jugar con palabras que indiquen el

sector, la ubicación, algún detalle específico que nos caracteriza, jugar con sinónimos y

con los singulares y plurales.

Figura 47.- Colección de términos

Page 84: Montando Servidor Turnkey Linux

84

Para poder manipular mejor los resultados podemos exportarlos a un fichero .csv,

donde podemos ordenar los resultados por número de visitas globales mensuales y

comprobar su competencia. De esta forma buscaremos términos con una relación

búsquedas competencia que nos parezca aceptable. Debemos recordar que estos datos

son solo orientativos para la elección de unos buenos términos ya que varían mes a

mes y son referentes a la parte de pago por click.

Para hilar más fino lo interesante es que partiendo de estos resultados hagamos

búsquedas con términos que nos parezcan interesantes tras este primer estudio,

observemos que términos pueden estar utilizando páginas que aparecen en las

primeras posiciones de esas búsquedas y realizando nuevamente otro estudio con la

herramienta de Google.

Con estas ideas, para el ejemplo dado podíamos elegir como término: alojamiento

valencia, turismo rural, casa rural, casas rurales, turismo casas…

Hemos de saber que aunque nuestra idea sea posicionarnos con exactamente estos

términos de alguna forma también estamos yendo por términos más genéricos como

casa rurales, alojamiento rural.

4.1.1.- La etiqueta <TITLE>

La etiqueta title es sin duda la etiqueta más valorada por Google y los principales

buscadores, para entender la importancia de esta etiqueta solo hay que realizar una

búsqueda cualquiera en Google, comprobaremos que la mayoría de las páginas bien

posicionadas por el término que busquen contiene esta palabra en los textos resaltados

en azul de los resultados de Google. Estos textos azules son los title de las páginas.

Para entender y optimizar esta etiqueta debemos tener en cuenta varios factores:

- La etiqueta title tiene un valor, este valor se reparte entre todas las palabras

que contenga, por lo que cuantas más palabras contenga el title menos valor tendrá

cada una de las palabras que lo componen.

- La importancia de las palabras decrece de izquierda a derecha con lo que

daremos más importancia a los términos colocados en primera posición.

Veamos un ejemplo:

Para la búsqueda casa rural sansofi la página que aparece en primer lugar contiene

este title.

Page 85: Montando Servidor Turnkey Linux

85

Figura 48.- Etiqueta title

Como podemos observar el término esta contenido en la etiqueta, no es un title largo y

además coge mayor fuerza pues sus otras partes también hablan de clínica dental.

Esta etiqueta no tiene que ser única para todas las páginas que componen la Web sino

que deberán de ir cambiando dependiendo de la sección en la que nos encontremos.

Los principales motores dan mayor importancia a la home (pagina principal) y van

disminuyendo ésta en función de si son paginas secundarias que cuelgan de la home,

terciarias… Esto podemos optimizarlo para ganar mayor puntuación poniendo en

ocasiones un menú inferior en la home para que los buscadores vean más páginas de

segundo nivel. La técnica de meter un menú inferior también nos sirve para indexar las

páginas, que por problemas con menús complejos, no han sido bien indexadas y

seguidas.

En definitiva este title de la home ha de dar a entender de forma global que se trata

en toda la Web y algún servicio o dato de interés que pueda caracterizarnos de forma

importante.

4.1.2.- Las etiquetas <META>, METATAG.

Las etiquetas meta no son valoradas de igual forma por todos los buscadores. Como ya

vimos en la introducción, antiguamente eran una de las pocas cosas que almacenaban

los motores de búsqueda y los resultados dependían en gran medida del contenido de

éstas. En la actualidad el hecho de poder indexar páginas completas hace que los

buscadores busquen información en otras partes. No obstante es la suma de estas

pequeñas cosas lo que diferencia una Web completamente optimizada de otra no

tanto.

La etiqueta meta keyword nos permite introducir términos de búsqueda y por tanto

indica a los buscadores por que términos la gente va a encontrar información útil en

nuestra Web.

Page 86: Montando Servidor Turnkey Linux

86

Figura 49.- Metaetiqueta Keywords

Esto no siempre es así pues se meten muchos términos y no siempre se habla de ellos

en la página. Este es el motivo por el que algunos buscadores bajaron la importancia

que se le daban a esta etiqueta.

Funciona de la misma manera que el title en lo que a peso se refiere con lo que no hay

que recargarla en exceso de términos, lo idóneo es que en cada pagina se personalicen

los términos de los que se está hablando en ella sí en este caso se juegue un poco con

los términos con acento y sin él al igual que palabras en singular y plural.

La etiqueta meta descrption nos permite introducir una breve descripción del sitio.

Figura 50.- Metaetiqueta description

Al igual que explicábamos en el paso anterior esta meta no es tenida tan en cuenta

como antiguamente pero en este caso si nos puede ayudar en mayor medida si la

trabajamos bien. El primer punto es que muchos buscadores usan el contenido de esta

descripción para mostrarlo como descripción de la búsqueda mostrada. El otro factor

es el humano si esa descripción llama la atención del consumidor es más probable que

clicke para entra en la Web.

De esta forma el texto contendrá los términos clave concretos del contenido de cada

página y además usar mayúsculas para intensificarlas junto con palabras como

Page 87: Montando Servidor Turnkey Linux

87

OFERTA, AL MEJOR PRECIO, PRECIO DE LANZAMIENTO o PRIMERA VISITA GRATIS

de ser este el caso, hay que tener en cuenta que de nada vale atraer la atención del

consumidor si tras entrar en nuestra Web no encuentra lo que estaba esperando pues

su visita no solo será corta sino que además se llevara mala imagen de nuestro

servicio.

La etiqueta meta robots, dentro de las posibles etiquetas con Metainformaciones

acerca de un documento web, sirve para llevar un control exhaustivo de lo que puede

o no puede hacer un robot de indexación cuando visita nuestro sitio web. Los

comportamientos más típicos que podemos definir son permitir o no indexar una

página y seguir o no sus enlaces. En el atributo de la etiqueta meta debemos colocar

las directrices que deseemos para buscadores, tantas como deseemos, separadas por

comas. Las distintas directrices a aplicar son las siguientes:

INDEX / NOINDEX: Sirve para indicar si se desea o no permitir la indexación de la

página por los motores de búsqueda.

FOLLOW / NOFOLLOW: Con esta directriz se indica si se debe o no permitir a los

motores de búsqueda recorrer o seguir recorriendo la web a través de los enlaces que

encuentre en el cuerpo del documento.

ARCHIVE / NOARCHIVE: Esto permite decir si deseamos o no que el motor de

búsqueda archive el contenido del sitio web en su caché interna. Como habremos

podido ver, buscadores como Google tienen una caché y podemos ver las páginas web

tal como las tiene cacheadas el buscador. Para ello, en los resultados de las búsquedas

aparece un enlace que pone caché. Si decimos que no archive la página, no debería

mostrar ese enlace de caché. Esto en realidad, según Google, no evita que se guarde

en caché la página, sino que no permite verla a los usuarios del buscador y por lo

tanto no muestra el enlace.

SNIPPET / NOSNIPPET: Esta directriz en principio no resulta muy útil, al menos a

primera vista. Sirve para que el motor de búsqueda no muestre ninguna descripción de

un sitio, sólo su título. Si utilizas NOSNIPPET automáticamente defines un NOARCHIVE,

por lo que la página tampoco se mostrará en caché.

ODP / NOODP: Sirve para decirle al buscador que debe, o no, mostrar el título y

descripción de la página iguales a los que se encuentra en el Open Directory Project.

En algunos casos, algunos buscadores muestran como título y descripción de una web

los que se han publicado en el ODP (ENLACE A http://www.dmoz.org/).

YDIR / NOYDIR: Es básicamente lo mismo que ODP / NOODP, con la diferencia que

es para que no se pueda, o si, mostrar la descripción y título que aparece en el

directorio de Yahoo.

Page 88: Montando Servidor Turnkey Linux

88

Cuando no existe esta etiqueta los buscadores interpretan las condiciones más

favorables para ellos, es decir, que pueden hacer todo lo que suelen hacer con otras

páginas a la nuestra, como indexarla, seguir sus enlaces, archivarla, etc. Gracias a esta

etiqueta más que mejorar, lo que nos ayuda es a no ser penalizados ya que si nuestra

Web tiene contenidos bélicos, sexuales o puede dar alguna interpretación de

problemas de salud como la anorexia, interpretaciones xenófobas… es mejor evitar que

esa página sea indexada por el robot o que enlaces salientes a ciertos contenidos no

sean seguidos para evitar ser penalizados.

El último metatag es el del título, influye en alguna medida en la valoración de cada

página: <META NAME="Title" CONTENT=" ">. En el título se deben poner

palabras que describan los contenidos de la página, e incluso, palabras clave que

describan los productos y servicios que se ofrecen y por los que queremos ser

encontrados de la misma forma que explicaba para la etiqueta <title>.

4.1.3.- Los contenidos de las etiquetas <H1>,<H2>…

Tanto Google como los principales buscadores dan gran importancia sobretodo a una

página bien estructurada limpia y con sentido. Prueba de ello es la propia página de

Google, limpia, facil de manejar, nada recargada y da la idea global de lo que contiene

y para que esta construida.

Las etiquetas H1, H2… le dan al robot una idea de estructuración. Estas etiquetas

toman más valor cuanto más arriba y a la izquierda se encuentren de la misma manera

que las personas que realizan búsquedas, estos tienden a llevar sus miradas y clicks a

esa parte como muestra este grafica:

Figura 51.- Mirada humana en una página web

Page 89: Montando Servidor Turnkey Linux

89

Pues la estructura que debería tener nuestras páginas ha de ser algo similar a esto:

- El título en un <h1> incluyendo ahí las palabras clave.

- El subtítulo/s en un <h2>/<h3> incluyendo más conceptos clave sin entrar en

la repetición con el h1.

- El texto en un <p> incluyendo en este las palabras clave preferiblemente

dentro de <a>, <strong> o <em> 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 (<p>) 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:

<img border="0" src="imagenes/piscina.jpg" alt="" width="195" height="146" />

Cambiar por:

<img border="0" src="imagenes/piscina.jpg " alt="casa rural piscina" title="piscina"

width="195" height="146" />

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

Page 90: Montando Servidor Turnkey Linux

90

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 <img> 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=psy-

ab&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

Page 91: Montando Servidor Turnkey Linux

91

- 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

Page 92: Montando Servidor Turnkey Linux

92

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

Page 93: Montando Servidor Turnkey Linux

93

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.

Page 94: Montando Servidor Turnkey Linux

94

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.

Page 95: Montando Servidor Turnkey Linux

95

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

Page 96: Montando Servidor Turnkey Linux

96

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 <div> se oculta la capa

mediante la propiedad visibility:”hidden” de forma que el usuario no pueda verlo. Por si

los bots detectan esta propiedad y les salta una alerta se inventó la idea de mandarlo

al infinito. Se pone texto rico en palabras clave en un contenedor y se le dan unas

coordenadas de posición muy lejanas. Con la propiedad overflow:”hidden” evitamos

que salgan los Scholl de los navegadores para no hacer feo.

Estas y otras como la de poner texto diminuto o poner capa sobre capa, son algunas

de las técnicas de ocultación de código.

Page 97: Montando Servidor Turnkey Linux

97

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

Page 98: Montando Servidor Turnkey Linux

98

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:

<A href=http://www.sitio-web-del-visitante.com>Nombre del visitante</A>

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.

Page 99: Montando Servidor Turnkey Linux

99

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:

<loc>: es la única de las nombradas que es obligatoria. Indica la URL de la página.

Esta URL debe comenzar con el protocolo (por ej., http) y acabar con una barra

diagonal, si su servidor Web así lo requiere. Este valor debe contener menos de 2.048

caracteres.

<lastmod>: Fecha de la última modificación del archivo. Esta fecha debe encontrarse

en formato Fecha y hora de W3C.

<changefreq>:Frecuencia con la que puede cambiar esta página. Este valor

proporciona información general a los motores de búsqueda y es posible que no se

corresponda exactamente con la frecuencia de rastreo de la página. Valores aceptados:

Always, hourly, daily, weekly, monthly, yearly,,never

El valor "always" (siempre) debe utilizarse para describir documentos que cambian

cada vez que se obtiene acceso a ellos. El valor "never" (nunca) debe utilizarse para

describir direcciones URL archivadas.

Jay que tener en cuenta que el valor de esta etiqueta se considera una sugerencia y no

una orden.

<priority> La prioridad de esta dirección URL es relativa con respecto a las demás

URL de su sitio. Los valores válidos abarcan desde 0,0 a 1,0. Este valor no afecta a la

comparación de sus páginas con respecto a las de otros sitios; únicamente permite

Page 100: Montando Servidor Turnkey Linux

100

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.

Page 101: Montando Servidor Turnkey Linux

101

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]

Page 102: Montando Servidor Turnkey Linux

102

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 <h1> 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.

Page 103: Montando Servidor Turnkey Linux

103

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.

Page 104: Montando Servidor Turnkey Linux

104

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

Page 105: Montando Servidor Turnkey Linux

105

+ etiqueta <a> 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

<Ahref=http://www.sitio.com/pagina.html>Palabra(s) clave(s)</A>

Además hay que añadir que Google y otros buscadores consideran enlaces de más

calidad los que vienen de páginas externas a nuestro sitio pero que no tienen

respuesta por nuestra parte, es decir que no son recíprocos. El motivo es que Google

considera que se está linkando porque el sitio externo considera que nuestro contenido

es de calidad.

Existe una amplia lista de directorios en la red. El alta en estos se recomienda hacerla

de forma manual con descripciones diferentes y rellenando en cada caso los datos que

nos pidan de la forma más completa. No obstante existen herramientas para

automatizar estatarea agilizando este trabajo pero perdiendo en calidad.

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

Page 106: Montando Servidor Turnkey Linux

106

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.

Page 107: Montando Servidor Turnkey Linux

107

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.

Page 108: Montando Servidor Turnkey Linux

108

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

Page 109: Montando Servidor Turnkey Linux

109

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 Tráfico en el ranking ES: 419

Enlaces al sitio: 3,475

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 Tráfico en el ranking ES: 897

Enlaces al sitio: 691

Información de sitio para todaslascasarurales.com

Tráfico en el ranking de Alexa: 272,104 Tráfico en el ranking ES: 13,210

Enlaces al sitio: 628

Page 110: Montando Servidor Turnkey Linux

110

Información de sitio para todocasarural.com

Tráfico en el ranking de Alexa: 323,205 Tráfico en el ranking ES: 14,064

Enlaces al sitio: 458

Información de sitio para rinconesdelmundo.com

Tráfico en el ranking de Alexa: 163,723 Tráfico en el ranking ES: 4,310

Enlaces al sitio: 550

Información de sitio para tuscasasrurales.com

Tráfico en el ranking de Alexa: 480,254 Tráfico en el ranking ES: 21,195

Enlaces al sitio: 772

Información de sitio para erural.com

Tráfico en el ranking de Alexa: 649,897 Tráfico en el ranking ES: 47,738

Enlaces al sitio: 1,049

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.

Page 111: Montando Servidor Turnkey Linux

111

0

100000

200000

300000

400000

500000

600000

700000

1

toprural.com

iha.fr

escapadarural.com

todaslascasasrurales.com

todocasarural.com

rinconesdelmundo.com

tuscasarurales.com

erural.com

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.

0

10000

20000

30000

40000

50000

60000

1

toprural.com

iha.fr

escapadarural.com

todaslascasasrurales.com

todocasarural.com

rinconesdelmundo.com

tuscasarurales.com

erural.com

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

Page 112: Montando Servidor Turnkey Linux

112

todos modos elegimos como los tres mejor posicionados toprural.com,

escapadarural.com e iha.fr

0

500

1000

1500

2000

2500

3000

3500

4000

1

toprural.com

iha.fr

escapadarural.com

todaslascasasrurales.com

todocasarural.com

rinconesdelmundo.com

tuscasarurales.com

erural.com

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

Page 113: Montando Servidor Turnkey Linux

113

Figura 57.- Aspecto del anuncio en escapada rural

Figura 58.- Aspecto de la descripción del anuncio en escapada rural

Page 114: Montando Servidor Turnkey Linux

114

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

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

Escapada rural Alojamiento Precios Fotos Como llegar Contactar

Página web La Casa Tarifas Imágenes Ubicación Contacto

Page 115: Montando Servidor Turnkey Linux

115

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.

Page 116: Montando Servidor Turnkey Linux

116

Figura 61.- Aspecto de la continuación de la descripción en IHA

Top rural

Figura 62.- Aspecto del anuncio en top rural

Page 117: Montando Servidor Turnkey Linux

117

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.

Page 118: Montando Servidor Turnkey Linux

118

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.

Page 119: Montando Servidor Turnkey Linux

119

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

Page 120: Montando Servidor Turnkey Linux

120

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.

Page 121: Montando Servidor Turnkey Linux

121

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-web-

sitiosmulti-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

Page 122: Montando Servidor Turnkey Linux

122

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

Page 123: Montando Servidor Turnkey Linux

123

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

Page 124: Montando Servidor Turnkey Linux

124

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

Page 125: Montando Servidor Turnkey Linux

125

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

Page 126: Montando Servidor Turnkey Linux

126

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

Page 127: Montando Servidor Turnkey Linux

127

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

Page 128: Montando Servidor Turnkey Linux

128

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

Page 129: Montando Servidor Turnkey Linux

129

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

Page 130: Montando Servidor Turnkey Linux

130

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

Page 131: Montando Servidor Turnkey Linux

131

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.

Page 132: Montando Servidor Turnkey Linux

132

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/sites-

availabe/casarural-sansofi.com

<VirtualHost *:80>

ServerName www.casarural-sansofi.com

ServerAlias casarural-sansofi.com

SSLEngine on

SSLCertificateFile /etc/ssl/certs/cert.pem

DocumentRoot /var/www2/

</VirtualHost>

<Directory /var/www2/>

Options Indexes FollowSymLinks MultiViews

Order allow,deny

allow from all

Page 133: Montando Servidor Turnkey Linux

133

<IfModule mod_php5.c>

AddType application/x-httpd-php .php

php_flag magic_quotes_gpc Off

php_flag track_vars On

php_flag register_globals Off

php_value include_path .

</IfModule>

</Directory>

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

Page 134: Montando Servidor Turnkey Linux

134

#

# 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 <URL:http://httpd.apache.org/docs-2.1/mod/mpm_common.html#lockfile>);

# you will save yourself a lot of trouble.

#

# Do NOT add a slash at the end of the directory path.

#

ServerRoot "/etc/apache2"

#

# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.

#

#<IfModule !mpm_winnt.c>

#<IfModule !mpm_netware.c>

LockFile /var/lock/apache2/accept.lock

#</IfModule>

#</IfModule>

#

# PidFile: The file in which the server should record its process

# identification number when it starts.

# This needs to be set in /etc/apache2/envvars

#

PidFile ${APACHE_PID_FILE}

#

# Timeout: The number of seconds before receives and sends time out.

#

Timeout 300

#

# KeepAlive: Whether or not to allow persistent connections (more than

# one request per connection). Set to "Off" to deactivate.

#

Page 135: Montando Servidor Turnkey Linux

135

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

<IfModule mpm_prefork_module>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

</IfModule>

# worker MPM

# StartServers: initial number of server processes to start

# MaxClients: maximum number of simultaneous client connections

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadsPerChild: constant number of worker threads in each server process

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule mpm_worker_module>

StartServers 2

MinSpareThreads 25

MaxSpareThreads 75

Page 136: Montando Servidor Turnkey Linux

136

ThreadLimit 64

ThreadsPerChild 25

MaxClients 150

MaxRequestsPerChild 0

</IfModule>

# event MPM

# StartServers: initial number of server processes to start

# MaxClients: maximum number of simultaneous client connections

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadsPerChild: constant number of worker threads in each server process

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule mpm_event_module>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadLimit 64

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

# These need to be set in /etc/apache2/envvars

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

#

# AccessFileName: The name of the file to look for in each directory

# for additional configuration directives. See also the AllowOverride

# directive.

#

AccessFileName .htaccess

#

# The following lines prevent .htaccess and .htpasswd files from being

# viewed by Web clients.

#

<Files ~ "^\.ht">

Order allow,deny

Deny from all

Satisfy all

</Files>

Page 137: Montando Servidor Turnkey Linux

137

#

# 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 <VirtualHost>

# container, error messages relating to that virtual host will be

# logged here. If you *do* define an error logfile for a <VirtualHost>

# container, that host's errors will be logged there and not here.

#

ErrorLog /var/log/apache2/error.log

#

# LogLevel: Control the number of messages logged to the error_log.

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

#

LogLevel warn

# Include module configuration:

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:

Include /etc/apache2/httpd.conf

Page 138: Montando Servidor Turnkey Linux

138

# 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 %{X-

Forwarded-For}i

#

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-

Agent}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

Page 139: Montando Servidor Turnkey Linux

139

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

#

Page 140: Montando Servidor Turnkey Linux

140

# 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

Page 141: Montando Servidor Turnkey Linux

141

#

# 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

Page 142: Montando Servidor Turnkey Linux

142

# 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

Page 143: Montando Servidor Turnkey Linux

143

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

Page 144: Montando Servidor Turnkey Linux

144

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.

Page 145: Montando Servidor Turnkey Linux

145

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.

Page 146: Montando Servidor Turnkey Linux

146

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

Page 147: Montando Servidor Turnkey Linux

147

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

Page 148: Montando Servidor Turnkey Linux

148

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:

<title>Posicionamiento en 10 pasos</title>

A esta tag los buscadores le asignan mucho valor. De hecho es el título de la página, el

que aparece por ejemplo en los navegadores, en las pestañas y en la barra. Procura

hacer un título muy breve y con algunas de las keywords de esa página. Mejor si no

sobrepasa los 60 caracteres; así darás más densidad a tus keywords.

También se dice mucho que cuanta más densidad de las keywords tenga una web,

más alto estará posicionada. Esto no es del todo verdad. La densidad puede dar

resultados en algunos buscadores (se ha dicho mucho que Yahoo! la valora bastante),

y es recomendable que una web tenga un poco de densidad, pero que no sea

excesiva. Una muy elevada densidad podría hacer pensar a los buscadores que eres un

spammer. Consejo: hay herramientas online que calculan la densidad de keywords.

Encuentra con el buscador la palabra que desees y haz la media aproximada de

densidad de las keywords de las primeras webs para esa búsqueda. Así tendrás una

orientación.

Page 149: Montando Servidor Turnkey Linux

149

Hay otras tags que sirven para indicar importancia. Procura poner algunas de ellas con

tus keywords: <h1> <h2> <h3> <h4> <h5> <h6> <b> <i><u> <strong>

Las <hx> indican títulos dentro de la página, siendo los de números más bajos los más

importantes <b> y <strong> negritas. Como siempre, úsalas con moderación.

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 <a>. 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.

Page 150: Montando Servidor Turnkey Linux

150

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

Page 151: Montando Servidor Turnkey Linux

151

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

Page 152: Montando Servidor Turnkey Linux

152

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

Page 153: Montando Servidor Turnkey Linux

153

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.