Manual de apache .pdf



Nombre del archivo original: Manual de apache.pdf


Vista previa del documento


Apache

AULA
MENTOR

educacion.es

Nipo: 030-12-321-5
Autora:
Elvira Mifsuf Talón
Coordinación pedagógica:
Aula Mentor
Ilustración de portada:
María Guija Medina

Curso Mentor Apache

Apache

Unidad 1: Introducción a Apache

En este capítulo aprenderás:
el concepto de servidor web y sus funciones.
el origen y evolución del servidor web Apache2 y sus características mas relevantes.
el protocolo HTTP como conjunto de normas que regulan el mecanismo de intercambio de
mensajes entre el servidor web y el cliente web (navegador).
a utilizar los tipos MIME para la interpretación del contenido de los archivos transferidos
entre servidor y cliente.
Material complementario:

1 de 31

1.

Actividades de la unidad. Archivo U1_Actividades.pdf

2.

Mapa conceptual del capítulo. Archivo U1_mapaconceptual.png

3.

Glosario completo del curso. Archivo glosario.pdf

Curso Mentor Apache

Introducción
Objetivos
Conocer el concepto de servidor web y cuáles son sus funciones.
Conocer los servidores web mas importantes y/o mas utilizados.
Estudiar las características mas relevantes del servidor web Apache.
Conocer el protocolo HTTP, sus funciones y diferentes versiones.
Conocer los tipos MIME y sus funciones.

Conocimientos previos
Es la primera unidad y, por lo tanto, no requiere del alumno ningún requisito previo. Únicamente tener la disponibilidad necesaria
para adquirir los conocimientos teóricos que constituirán la base de todo el curso.
Aunque la unidad parezca muy densa y con mucha información variada, es importante que se asimile correctamente.

Contenidos
Unidad 1: Introducción a Apache
A. Ubuntu y Windows
1. ¿Qué es un servidor web?
1. Objetivo y Esquema de funcionamiento
2. Acceso al servidor web
3. Comparativa entre servidores web
4. Introducción a Apache2
5. Un poco de historia
6. Características generales del servidor Apache 2
7. Apache: servidor web
8. El protocolo HTTP
9. Tipos MIME
B. Fin de unidad
1.
2.
3.
4.

2 de 31

Glosario
Fuentes de información
Resumen final
Autoevaluación

Curso Mentor Apache

¿Qué es un servidor web?
Definición

La wikipedia define el servidor web como:
“Un programa que implementa el protocolo HTTP (hypertext transfer protocol). Este protocolo está diseñado para transferir lo que
llamamos hipertextos, páginas web o páginas HTML (hypertext markup language): textos complejos con enlaces, figuras,
formularios, botones y objetos incrustados como animaciones o reproductores de sonidos.”

Arquitectura del servidor web
La arquitectura utilizada es cliente/servidor, es decir, el equipo cliente hace una solicitud o petición al equipo servidor, y éste atiende
dicha solicitud.
En el equipo cliente se ejecuta una aplicación llamada 'navegador o cliente web' que:
sirve de interfaz con el usuario: atiende sus peticiones, muestra los resultados de las consultas y proporciona al usuario
un conjunto de herramientas que facilitan su comunicación con el servidor.
se comunica con el servidor web: transmite las peticiones de los usuarios.
En el equipo servidor la única tarea es:
atender las peticiones recibidas desde los navegadores o clientes web y hacerlo de forma eficiente y segura. Este es
el caso de los servidores web seguros que solicitan un nombre de usuario y una contraseña para permitir el acceso sólo a
usuarios registrados y por tanto, con permiso para visualizar la página/s.

Un paso mas en la seguridad proporcionada por los servidores web se basa en el establecimiento de conexiones cifradas con el
navegador. Este nivel de seguridad es básico, por ejemplo, para las transacciones comerciales realizadas desde Internet.

Saber más ... sobre la arquitectura de un servidor web
Busca en la web información general sobre servidores web.

3 de 31

Curso Mentor Apache

Objetivo y Esquema
Objetivo del servidor web
El objetivo de un servidor web es servir o suministrar páginas web a los clientes web o navegadores que las solicitan.

Ejemplo:
1. Un usuario desde el navegador Firefox, al hacer 'click' sobre un enlace a una página web está enviando una solicitud al
servidor web que aloja dicha página para que se la muestre (eso se llama servir la página).
2. El servidor web si la encuentra la envía y si no la encuentra devuelve al cliente un mensaje de error.
3. El cliente cuando recibe la página web interpreta el código HTML mostrando las fuentes, colores, imágenes que la
componen, etc, de forma correcta.

Pero el servidor web, además de servir páginas web HTML estáticas, también permite la ejecución de una serie scripts en
diferentes lenguajes de programación, que proporcionan dinamismo a las páginas web. Estos lenguajes son: PHP, CGI, applets de
Java, etc.

Esquema
La figura siguiente muestra el esquema de funcionamiento de un servidor web.
En ella observamos los tres elementos básicos que componen las peticiones web dinámicas:
el cliente que hace la petición
el servidor que atiende la petición
y los datos solicitados mediante la petición

4 de 31

Curso Mentor Apache

Saber más ... sobre paǵinas web
1. Para conocer mejor el concepto de página web puedes acceder a http://es.wikipedia.org/
2. ¿Hay alguna diferencia entre página web y sitio web?
En esta referencia http://www.masadelante.com/faqs/sitio-web puedes comprobar la diferencia entre ambos conceptos.

5 de 31

Curso Mentor Apache

Acceso al servidor web
Acceso desde un navegador web
Para que el navegador pueda llegar al servidor web (ya sea en una red local o en Internet) el servidor debe tener asignada una
dirección IP (Internet Protocol) única que identifica el equipo en la red.
Cuando el navegador hace una petición de página al servidor web utiliza un nombre que identifica al servidor y esta solicitud se
transmite a un servidor DNS. Éste resuelve el nombre y devuelve la dirección IP que corresponde al nombre.
La solicitud del navegador, entonces, se encamina al servidor web correcto.
La información que el usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource
Locators).
Una URL de solicitud de un recurso consta de:
1.
2.
3.
4.
5.

Protocolo a utilizar: http, https, ftp, ftps,...
// : hace las veces de separador
Servidor: es la dirección IP o el nombre del servidor (FQDN) que contiene el recurso.
Ruta_al_recurso: directorio y subdirectorios del sitio web donde está ubicado el recurso
Recurso: recurso al que se quiere acceder.

Por lo tanto una URL indica la forma de acceder a un recurso utilizando un determinado protocolo de comunicación.
Por ejemplo: la URL http://recursostic.educacion.es/observatorio/web/es/home

Saber más ... sobre algunos términos
FQDN (Fully Qualified Domain Name, Nombre de dominio totalmente cualificado) es un nombre que incluye el nombre del equipo y
el nombre del dominio asociado a esa máquina

6 de 31

Curso Mentor Apache

Comparativa entre servidores web
Comparativa
Existen multitud de servidores web, pero los dos mas conocidos e importantes por sus niveles de implantación son Apache e IIS
(Internet Information Service).
Normalmente se asocia Apache a entornos Unix/GNU Linux (existen versiones de Apache para Windows) y IIS para entornos
Windows (no existen versiones para GNU Linux).
Sin entrar en detalles de las características técnicas se puede decir que:

Apache

IIS

Es software libre

Es software propietario (Microsoft)

Es modular

Es modular a partir de la versión 6

Utilizado en los grandes servidores raíz de Internet

Utilizado en entornos corporativos

Ejecutado desde un usuario diferente del superusuario root Ejecutado desde el propio usuario administrador del sistema
del sistema
hasta la versión 6
La implantación de cada uno de ellos se puede ver en la figura del epígrafe Evolución.
Comprobar como el porcentaje de utilización de Apache es bastante superior al de IIS.

Evolución
La figura siguiente muestra la implantación de diferentes servidores web y su evolución en el tiempo.

7 de 31

Developer February 2011

Percent March 2011

Percent Change

Apache

60.10

60.31

171,195,554

179,720,332

0.21

Curso Mentor Apache

Microsoft

57,084,126

20.04

57,644,692

19.34

-0.70

Google

14,454,484

5.07

15,161,530

5.09

0.01

1,953,966

0.69

1,796,471

0.60

-0.08

puede

de http://news.netcraft.com/archives

Lighttpd
Esta información actualizada,
/web_server_survey.html

8 de 31

incluida

la

imagen,

se

obtener

Curso Mentor Apache

Introducción a Apache2
¿Qué es Apache?
El servidor HTTP Apache2 es un servidor web de software libre desarrollado por la Apache Software Foundation
(ASF). El producto obtenido de este proyecto es un servidor de código fuente completo, descargable y gratuito.
La página web del proyecto es www.apache.org.
Apache2 es robusto y con un ciclo de desarrollo muy rápido gracias a la gran cantidad de colaboradores voluntarios de
que dispone.
Es también un servidor estable, eficiente, extensible y multiplataforma.
Estable: es una consecuencia de su probada robustez que impide caídas o cambios en el servidor inesperados.
Flexible y eficiente: es capaz de trabajar con el estándar HTTP/1.1 (RFC2616) y con la mayor parte de las
extensiones web que existen en la actualidad, como son los módulos PHP, SSL, CGI, SSI, proxy,...
Extensible: dispone de gran cantidad de módulos que amplían su funcionalidad.
Multiplataforma ya que está disponible para diferentes plataformas como GNU/Linux, Windows, MacOS.
Desde el año 1996 es el servidor más utilizado en Internet y es el utilizado en los sistemas GNU/Linux. En concreto, a
fecha de Marzo de 2011 más del 60% de los sitios web de Internet utilizan Apache.

Busca el significado de los términos...
SSL (Secure Sockets Layer)
SSI (Server Side Includes)

9 de 31

Curso Mentor Apache

Un poco de historia
Origen de Apache
En los comienzos de Internet hablar de 'servicio web' se limitaba a la publicación de páginas en formato HTML
utilizando el protocolo HTTP sobre redes TCTP/IP.
Al poco tiempo de la aparición de la Web un grupo de personas del Centro Nacional de Actividades de
Supercomputación (National Center for Supercomputing Activities, NCSA) de la Universidad de Illinois, creó un servidor
web (HTTPd NCSA) que fue el más utilizado hasta 1994. Su principal desarrollador, Rob McCool, abandonó el NCSA y
el proyecto.
Pero a partir de aquel momento varios webmasters comenzaron a desarrollar diferentes 'parches' para el código fuente
de este servidor y mediante el correo electrónico sincronizaban sus aportaciones. De esta forma apareció el proyecto
Apache, cuyo nombre se debe a:
“A PAtCHy server”

La primera versión que aparece de Apache es la 0.6 en Abril de 1995, que tomó como punto de partida la versión
httpd 1.3 de NCSA.
El proyecto evolucionó muy rápidamente y en él también colaboraron desarrolladores de NCSA. La versión 1.0
apareció en diciembre de 1995. Y en un año pasó a ser el servidor web más utilizado en Internet a nivel mundial.
En 1998 se llegó a un acuerdo con IBM que permitió que Apache funcionara también en plataformas Windows
convirtiéndose así en una alternativa al servidor IIS (Internet Information Server).
En estos momentos se está trabajando con versiones 2.2.X, aunque todavía muchos servidores web en producción
utilizan la última versión más extendida que es la 1.3.33. La última versión de Apache es la 2.2.17 (Abril 2011).
Se recomienda utilizar la versión 2.2 ya que incluye nuevas funcionalidades (http://httpd.apache.org/docs/2.2/es/). La
página correspondiente a la documentación en castellano es la indicada.

Licencia de Apache
Respecto a la licencia de Apache 2 están disponibles sus términos en la URL http://httpd.apache.org/docs/2.2/en/license.html.
En resumen se puede decir que, la licencia:
Permite:
Descargar y usar libremente el software de Apache2, total o parcialmente, de forma personal, desde la empresa con
objetivos internos o comerciales.
Utilizar el software de Apache2 en paquetes o distribuciones que cree el usuario.
Prohibe:
Redistribuir partes del software incluido en Apache2 sin el permiso adecuado.
Requiere:
Incluir una copia de la licencia en cualquier redistribución que el usuario pueda hacer que incluya el software de Apache2.
Decir claramente que Apache pertenece a la ASF (Apache Software Foundation) en cualquier distribución que incluya el
software de Apache.
No requiere:
Incluir los fuentes del software de Apache propiamente, o de cualquier modificación que el usuario haga sobre el, en
cualquier distribución en el que pueda ser incluido.

10 de 31

Curso Mentor Apache
Enviar los cambios que el usuario hace al software a la Apache Software Foundation.

11 de 31

Curso Mentor Apache

Características generales del servidor Apache2
Características
Incluimos un resumen de las características generales del servidor Apache2. Es posible que de muchas de ellas ahora no se
entienda su significado, pero a lo largo del curso se irán 'descubriendo'.
1. Cumple el estándar HTTP/1.1
Nueva versión del protocolo HTTP que amplia su funcionalidad según se detalla en esta
unidad.
2. Configurable y extensible mediante módulos
Existe gran cantidad de módulos disponibles para Apache2 y permite la creación de
nuevos módulos por parte de usuarios programadores. En la Unidad 4 se habla
extensamente acerca de los módulos.
3. Proporciona el código fuente con licencia sin restricciones.
Es gratuito, pero ante todo es código fuente libre, lo cual permite saber en todo
momento qué estamos instalando.
4. Multiplataforma
Existen versiones tanto para Windows como para GNU/Linux. El curso contempla las
plataformas Windows 7 y GNU/Linux Ubuntu.
5. Continua actualización y desarrollo.
Un grupo de desarrolladores está continuamente revisando y corrigiendo todos los fallos
de seguridad y generales de la herramienta que van surgiendo entre versiones.
6. Bases de datos DBM para autenticación de usuarios.
Permiten la protección de documentos mediante contraseñas para una gran cantidad de
usuarios.
7. Permite crear páginas web protegidas
Mediante constraseñas con un número grande de usuarios autorizados, sin sobrecargar
el servidor.
8. Permite personalizar las respuestas a errores y problemas del servidor.
9. Múltiples directivas DirectoryIndex
Ejemplo: DirectoryIndex index.html index.cgi
que indica al servidor que debe enviar index.html o ejecutar index.cgi cuando se
acceda a una URL que sea un directorio.
10. Sin límite fijo sobre el número de Alias y redirecciones
Pueden ser declaradas en los archivos de configuración.
11. Negociación de contenido
El servidor proporciona a los clientes web de diferentes tipos los documentos con el
mejor nivel de calidad que estos clientes web pueden soportar.
12. Hosts virtuales también llamados servidores multi-alojados.
Esto permite al servidor distinguir entre peticiones hechas a diferentes direcciones
IP/:puerto nombres (mapeados a la misma máquina). En la Unidad 5 se habla
extensamente acerca de los hosts virtuales.

12 de 31

Curso Mentor Apache
13. Archivos logs configurables
Se puede configurar Apache2 para generar logs en el formato que se quiera.

13 de 31

Curso Mentor Apache

Actividades
Actividad 1.1
¿Que diferencia hay entre software libre y software gratuito?
Es importante diferenciar ambos términos.
Software libre (Free Software) es un software que se publica bajo la licencia GPL (General Public Licence) y debe cumplir los
siguientes requisitos:
Poder ejecutarlo con cualquier propósito.
Poder copiarlo y distribuirlo.
Poder modificarlo para que se adapte a tus necesidades o las de un tercero.
Poder mejorarlo y publicar las mejoras para ayudar a la comunidad.
Y todo esto siempre y cuando no se viole la licencia, que dice que se puede copiar, distribuir y modificar siempre que se respete la
autoría de la versión original de la obra.
Por el software libre sí se puede cobrar. Muchas empresas lo hacen, como Red-Hat, IBM, ... El témino Free hace referencia a esas
libertades que hemos mencionado no a su gratuidad.
Mas información en http://www.fsf.org/

Software gratuito (llamado normalmente Freeware) puede ser distribuido comercialmentey puede incluir en ocasiones el código
fuente. Pero este tipo de software no es libre en el mismo sentido que lo es el software libre propiamente, a menos que se
garanticen todas las libertades.
Existen muchas modalidades de freeware. En http://www.desarrolloweb.com/articulos/2460.php hay una descripción de algunas de
ellas.
Para completar la actividad puedes buscar en la web definiciones para Software privativo, Open Source y Shareware.

14 de 31

Curso Mentor Apache

Apache: servidor web
Tipos de contenidos
Apache proporciona contenidos al cliente web o navegador como:
Páginas estáticas: es el modo más básico y antiguo, pero también es el uso más generalizado que se hace de un servidor
web. De esta forma se transfieren archivos HTML, imágenes, etc y no se requiere un servidor muy potente en lo que al
hardware se refiere.
Páginas dinámicas: la información que muestran las páginas que sirve Apache cambia continuamente ya que se obtiene a
partir de consultas a bases de datos u otras fuentes de datos. Son páginas con contenido dinámico, cambiante.

Apache facilita la generación de este tipo de contenidos ya que:
1. Dispone de soporte del protocolo HTTP/1.1 y además mantiene la compatibilidad con HTTP/1.0.
2. Permite la ejecución de scripts CGI (Common Gateway Interface) que son programas externos que se llaman desde el
propio servidor cuando una página lo necesita.
3. El CGI recibe información desde el servidor y genera como salida una página web dinámica que se visualiza en el cliente
web. Este script puede escribirse en cualquier lenguaje de programación siempre que siga las reglas del interfaz CGI.
Normalmente se utiliza Perl. Este tipo de mecanismo ya no se utiliza prácticamente y se desaconseja su uso ya que lanza
un proceso externo al servidor web por cada petición del cliente y se ralentiza. En su lugar se están utilizando los servlets.
4. Permite la creación de hosts virtuales y de esa forma atender varios sitios web en distintos dominios desde la misma
máquina.
5. Permite restringir recursos a determinados usuarios o grupos distintos de los del sistema.
6. Permite la utilización de módulos, como PHP y mod_perl, para sustituir la funcionalidad de los CGIs. Estos módulos al
estar incluidos en Apache no requieren la ejecución de un nuevo proceso por cada petición.
7. Con soporte para SSL (Secure Sockets Layer) que permite encriptación de datos y así asegura la privacidad y fiabilidad de
la comunicación web. Utiliza criptografía asimétrica y certificados digitales para intercambiar una clave de sesión simétrica.
8. Servlets y JSP en Java. Esta opción se utiliza en servidores de aplicaciones como Tomcat, Jboss, Oracle IAS,
WebSphere de IBM o BEA WebLogic. Su ventaja es la escalabilidad y la portabilidad, ya que se puede desarrollar en Java y
luego se puede ejecutar en cualquier máquina virtual compatible.

Arquitectura en capas
Un modelo muy utilizado en la actualidad es el de la arquitectura en capas. Una arquitectura en tres capas utiliza una capa:
1. de presentación que será la interfaz gráfica con la que interactúa el usuario.
2. para el servidor de aplicaciones que indicará cómo se ejecutan los procesos (modelo).
3. para guardar los datos (servidor de bases de datos).

Este modelo en capas contrasta con el modelo clásico en el que sólo existe un servidor web y un cliente web o navegador.

15 de 31

Curso Mentor Apache

La figura anterior muestra el modelo de servidor web en tres capas.
Mas información sobre la arquitectura en tres capas en www.mhproject.org.

¿Qué es un servlet?
Según la Wikipedia (http://es.wikipedia.org/wiki/Java_Servlet) los servlets son objetos que corren dentro del contexto
de un servidor web y extienden su funcionalidad. Por ejemplo, Tomcat sólo es un contenedor de servlets.
Los servlets se utilizan para manejar peticiones de cliente HTTP.
Por ejemplo, tener un servlet procesando datos enviados mediante un formulario HTML con datos relativos a una
compra electrónica. Este servlet formaría parte de un sistema de pagos on-line que accedería a una base de datos de
productos.
Un servlet es un programa que se ejecuta en un servidor web y no tiene interfaz gráfico.
El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición
que envíe el navegador web.
Otro uso de los servlets es reenviar peticiones a otros servidores y servlets.
Es importante conocer la diferencia entre servlet y portlet.

16 de 31

Curso Mentor Apache

Actividades
Actividad 1.2
Diferencia entre servlet y portlet
Un servlet es un programa que se ejecuta en un servidor web. El uso más común de los servlets es generar páginas web de forma
dinámica a partir de los parámetros de la petición que envíe el navegador web.
Los servlets se pueden considerar que son herederos de los antiguos CGIs. Atienden peticiones de un cliente. Por ejemplo, un
servlet puede ser el responsable de tomar los datos de un formulario HTML y enviarlos a una base de datos para su actualización.
Los portlets son componentes web basados en Java que procesan peticiones y generan contenido dinámico. Los portales usan
portlets como componentes de interfaz de usuario que proveen de una capa de presentación a los sistemas de información.
Las similitudes entre los portlets y los servlets son:
Los portlets y servlets son componentes web de J2EE.
Ambos son manejados por contenedores, que controlan su ciclo de vida y interacción.
Cada uno genera contenido dinámico siguiendo la estructura petición/respuesta.
Las diferencias entre ellos son las siguientes:
Los portlets generan fragmentos de código mientras que los servlets generan documentos completos.
A diferencia de los servlets, los portlets no vinculan directamente al URL.
Los portlets tienen un esquema de petición mas complejo, con dos tipos de petición: Action y Render.
Los portlets se adhieren a la estandarización de un conjunto de estados y modos que definen su contexto de funcionamiento
y las reglas de renderización.
Además los portlets pueden hacer otras cosas que no lo pueden hacer los servlets, como:
Los portlets tiene un mecanismo mucho más sofisticado para acceder y guardar la información de la configuración.
Los portlets tienen acceso a la información de los perfiles de los usuarios más allá de la información básica y el rol
proporcionado en la especificación del servlet.
Los portlets tienen dos formas diferentes para guardar objetos dentro de la sesión.
Algunas características que no tiene los portlets son:
Los portlets no pueden alterar el encabezado http o fijar la codificación de la respuesta.
No pueden acceder a la URL que el cliente utilizó para iniciar la petición en el portal.
Mas información en:
http://150.185.75.30/atiwiki/index.php/PORTLETS
http://es.wikipedia.org/wiki/Java_Servlet

17 de 31

Curso Mentor Apache

El protocolo HTTP
¿Qué es el protocolo HTTP?

18 de 31

Curso Mentor Apache

Las siglas HTTP significan Hyper Text Transfer Protocol, Protocolo de Transferencia de HiperTexto.
HTTP es el protocolo usado en las transacciones de la web (www).

El hipertexto es el contenido de las páginas web, y el protocolo de transferencia es el conjunto de normas mediante
las que se envían las peticiones de acceso a una web y la respuesta de esa web.
HTTP se define como un conjunto de normas que permiten la comunicación entre el servidor y los clientes y la
transferencia de información (archivos de texto, imágenes, archivos de música, ...) entre ambos.
HTTP es un protocolo cliente/servidor cuyo funcionamiento está basado en el envío de mensajes y consiste en que:
El usuario especifica en el cliente web (navegador) la dirección de la página que quiere consultar según un
formato http://dirección[:puerto][path].
El cliente web decodifica la información de la URL diferenciando el protocolo de acceso, IP o nombre de dominio
del servidor, puerto,...
El cliente web establece una conexión (socket) con el servidor web y solicita la página (mensaje request).

El servidor envía dicha página (si no existe envía un código de error) y el cliente web interpreta el código HTML
recibido. Mensaje response del servidor.
Se cierra la conexión.

El protocolo HTTP es un protocolo sin estado, es decir, no recuerda nada relativo a conexiones anteriores a la actual.
Entonces:
Si el servidor encuentra el documento HTML solicitado por el cliente web, lo envía.
Si no existe se envía un código de error.
En ambos casos, y por ser un protocolo sin estado, al final se libera la conexión.
Por lo tanto, la conexión sólo tiene la duración correspondiente a la transmisión de la página solicitada.
Para cada objeto que se transfiere por la red se realiza una conexión independiente.
Ejemplo: si el cliente web solicita una página que incorpora varias imágenes se realizan las siguientes conexiones: una
para el documento HTML y una por cada una de las imágenes.

19 de 31

Curso Mentor Apache

¿Qué son las cookies?
Para resolver estas situaciones de “falta de memoria” del protocolo, además de recordar la información de la sesión
actual (cuya información se pierde, por ejemplo, al cerrar el navegador), se utilizan las cookies.
Las cookies son archivos de texto que se intercambian entre el cliente web y el servidor.
Cuando se solicite de nuevo un intercambio de información entre estos mismos puntos se tendrá en cuenta la
información almacenada en esos archivos.
Por ejemplo, un usuario navega por la web y va visitando páginas, validandose en unas, cambiando el idioma en
otras, haciendo búsquedas o simplemente guardando información de otras. Todas estas visitas dejan 'migas' que
identifican nuestro deambular por la web y definen nuestras preferencias y son guardadas en estos archivos de texto
llamadas cookies.

Métodos del protocolo HTTP
Como ejemplo de métodos disponibles en HTTP recordamos que en la versión 1.0 el cliente web podía solicitar del servidor sólo
tres operaciones:

Métodos

Descripción

GET

obtener información del servidor, como puede ser pedir una página al hacer un clic sobre un
enlace. Es la operación que se ejecuta cada vez que se pulsa sobre un enlace y se accede a una
página web.

POST

enviar información desde el cliente web al servidor, como, por ejemplo los datos introducidos
en un formulario web.

HEAD

similar a GET pero sólo se pide la cabecera de la página con información como el tamaño,
tipo, fecha de modificación, etc.

Por ejemplo, para un mensaje de petición al servidor la primera línea tiene la estructura:
GET /index.html HTTP/1.0
que debe interpretarse como una petición (GET) del archivo index.html que está en el directorio raíz compatible con la versión 1.0
del protocolo HTTP.
Por ejemplo, para un mensaje de respuesta del servidor la primera línea tiene la estructura:
HTTP/1.0 200 OK
que debe interpretarse como la respuesta de petición servida (código 200) con éxito e indica la versión de HTTP utilizada (1.0). El
texto OK está relacionado con el código de error correspondiente. La lista de códigos está disponible en la Unidad 2.
El protocolo HTTP v. 1.1 es más potente y dispone de trece métodos diferentes.
Según sus creadores el protocolo HTTP/1.1 se puede describir como: "un protocolo de nivel de aplicación orientado a
sistemas distribuidos, para la colaboración e hypermedia. Un protocolo genérico, sin estado, orientado a objetos y que
puede ser utilizado para muchas aplicaciones, como servidores de nombres y sistemas de gestión de objetos
distribuidos, a través de las extensiones de los métodos de petición. Una característica de este protocolo es la
negociación de los tipos y representación de los datos, permitiendo que los sistemas no dependan del tipo de datos
que se utilicen".
La nueva versión de HTTP/1.1 está detallada en el RFC 2068 (http://www.faqs.org/rfcs/rfc2068.html) de Enero de 1997. Las
principales características de esta nueva versión son:

20 de 31

Curso Mentor Apache

Conexiones persistentes: aunque un documento conste de varias partes no se abre y cierra la conexión para el envío de
cada una de ellas. De esta forma se evita una sobrecarga por conexiones TCP.
Varias peticiones simultáneas: el cliente web puede hacer varias peticiones a través de una única conexión, sin tener que
esperar a que el servidor responda a cada una de ellas.
Negociación del contenido: consiste en seleccionar la representación HTTP adecuada cuando se da respuesta a una
petición, como por ejemplo, adaptarse a las preferencias del navegador utilizado.
Nuevos métodos: junto a GET, POST y HEAD aparecen los métodos
TRACE  ver lo que está recibiendo el servidor
DELETE  borrar un recurso del servidor
PUT  almacenar recursos en el servidor
PATCH  aplicar correcciones en un recurso asociado a una URL
COPY  copiar recursos identificados por una URL en otro lugar
MOVE  mover el recurso identificado por la URL a otro lugar
LINK  establecer enlaces entre diferentes recursos
UNLINK  quitar enlaces establecidos previamente por LINK
OPTIONS  el cliente puede obtener las características del servidor
WRAPPED  puede unir varias peticiones y puede protegerlas con un filtrado como pueda ser la encriptación.
Nuevo método de autenticación: en el que las claves de acceso van encriptadas por la red, al contrario de lo que ocurre
en HTTP 1.0. Todavía pendiente.
A pesar de todas estas mejoras introducidas por la versión 1.1 de HTTP el futuro de este protocolo se llama HTTP-NG (HTTP
Next Generation) que incluye más funcionalidades, es mas sencillo, tiene un mejor rendimiento, mejor nivel de seguridad
(encriptación), autenticación en ambos extremos de la conexión, pagos en línea (comercio electrónico), visualización obligatoria de
información sobre el objeto que se transmite (autor, copyright, licencia,...), información de registro, etc.
Se espera que la nueva versión 3 de Apache ya implemente este protocolo HTTP-NG.

Saber mas ... sobre el protocolo HTTP
Puedes visitar los enlaces:
1. Lista de códigos de estado HTTP
2. Definición de campos de cabecera HTTP

21 de 31

Curso Mentor Apache

Actividades
Actividad 1.3

22 de 31

Curso Mentor Apache

Funcionamiento de GET
El funcionamiento del protocolo HTTP con la operación GET es el siguiente:
1. El cliente web envía una petición al servidor. Por ejemplo, intentamos conectarnos mediante telnet a la página de Google a
través del puerto 80. Desde una terminal ejecutar como root el siguiente ejemplo de petición y añadimos una posible
respuesta en el caso de que la orden no estuviera desactivada:

# telnet www.google.es 80
Trying 66.249.93.104...
Connected to www.google.es.
Escape character is '^]'.
GET /index.html HTTP/1.0 #Petición mediante GET
2. El servidor responde con una línea de estado, incluyendo la versión del protocolo del mensaje y si la petición tuvo éxito o
fracaso, con un código de resultado, seguido de una serie de informaciones del servidor y del elemento solicitado. Al final el
servidor rompe la conexión.

Siguiendo el ejemplo:
HTTP/1.0 302 Found
Location: http://www.google.es/index.html
Cache-Control: private
Content-Type: text/html
Server: GWS/2.1
Content-Length: 228
Date: Fri, 21 Apr 2006 15:09:01 GMT
Connection: Keep-Alive
............................. aquí vendría el código de index.html

Se puede estudiar la petición al servidor también utilizando la orden wget de la forma:
# wget www.terra.es
--2011-04-05 16:39:46-- http://www.terra.es/
Resolviendo www.terra.es... 213.4.130.210
Conectando a www.terra.es|213.4.130.210|:80... conectado.
Petición HTTP enviada, esperando respuesta... 302 Found
Ubicación: http://mov.terra.es [siguiente]
--2011-04-05 16:39:46-- http://mov.terra.es/
Resolviendo mov.terra.es... 213.4.130.231
Conectando a mov.terra.es|213.4.130.231|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 29838 (29K) [application/xhtml+xml]
Guardando en: «index.html»
100%[======================================>] 29.838

--.-K/s

en 0,05s

2011-04-05 16:39:46 (593 KB/s) - «index.html» guardado [29838/29838]
Se trata de una petición HTTP que como respuesta devuelve el OK (200) y a su vez descarga la página de inicio (index.html) de la
web indicada.

23 de 31

Curso Mentor Apache

Tipos MIME
¿Qué son los tipos MIME?
Las siglas MIME significan Multiporpose Internet Mail Extension.
Los tipos MIME son un estándar que especifican cómo debe un programa (inicialmente un programa de correo o un
navegador web) transferir los archivos multimedia (vídeo, sonido, o cualquier archivo que no esté codificado en ASCII).
Antes de la utilización de los tipos MIME cualquier archivo que no fuese texto ASCII debía codificarse a estos caracteres haciendo
uso de las herramientas Uuencode y Uudecode.
MIME adjunta un archivo de cabecera a los archivos, indicando el tipo de contenido del archivo y esto permite al servidor web y al
navegador manejar y mostrar correctamente los datos.
Por lo tanto, se puede decir que el tipo MIME indica el tipo de archivo que se está transfiriendo del servidor al cliente o navegador
web.
Los tipos MIME definen tipos (indicado antes del carácter '/') y subtipos (indicado después del carácter '/'). Por ejemplo:
el tipo MIME "text/html" define todos los archivos de texto que contienen código HTML.
el tipo "video/mpeg" define todos los archivos de vídeo almacenados en formato mpeg.
el tipo MIME "image/*" define todos los archivos de imagen almacenadas en cualquier formato: gif, jpeg, bmp, etc.
El protocolo HTTP usa tipos MIME en las cabeceras, por ejemplo para las siguientes funciones:
1. Informar al navegador el tipo de datos que está recibiendo del servidor. Esto se hace con el encabezado
Content-Type. El navegador manejará los datos de tres formas diferentes según el tipo MIME indicado en Content-Type :

Visualizar el documento, por ejemplo con tipos “text/html”.
Llamar a una aplicación externa, por ejemplo con tipos “application/pdf”.
O preguntarle al usuario qué hacer con un tipo que no se entiende, por ejemplo “image/x-fwf”.
Ejemplo: desde el navegador Mozilla Firefox abrimos Google y buscamos ITE. En el menú del navegador ir a Ver > Código fuente de la página y aparece
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>CNICE Buscar con Google</title><style><!-2. Permitir la negociación de contenido. El navegador en su petición incluye los tipos MIME que acepta. Por ejemplo, si el
navegador soporta archivos comprimidos del tipo “application/zip”, lo indica en la cabecera HTTP poniendo Allow:
application/zip.
3. Encapsular uno o más objetos dentro del cuerpo de mensaje, mediante el tipo MIME multipart. Quizás el ejemplo
más conocido sea el tipo “multipart/form-data” que sirve para enviar los datos de un formulario (mediante el método
POST).

En la edición web la referencia a los tipos MIME se puede hacer desde tres lugares diferentes:
1. Desde el servidor: que indica al navegador el tipo de datos que envía. Por ejemplo, en el servidor Apache se puede indicar
con la directiva DefaultType el tipo MIME por defecto que el servidor utilizará en los archivos que no pueda identificar su
tipo automáticamente.

DefaultType text/plain
2. Desde la página web: en ella se hace referencia a los tipos MIME a través de un enlace a un archivo externo como una hoja
de estilo:

<link rel=”Stylesheet” href=”hoja_estilo.css” type=”text/css”>
También puede especificarse como atributo en otras etiquetas HTML, como object o form (atributo enctype).
Y también con las etiquetas <meta HTTP-EQUIV: ....> podemos hacer que la página participe en el diálogo cliente-servidor

24 de 31

Curso Mentor Apache
especificando tipos MIME.
3. Desde el navegador web: que debe poder interpretar el tipo MIME recibido desde el servidor y también puede indicar qué
tipos MIME acepta (cabecera http-accept). Si aparece */* significa que acepta cualquier tipo MIME.

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;
q=0.8,image/png,*/*;q=0.5
Este es el contenido de la variable predefinida HTTP_ACCEPT de PHP que está disponible mediante la llamada a la función
phpinfo().

Saber más... sobre los tipos MIME
Tienes mas información sobre los tipos MIME en:
http://es.wikipedia.org
http://technet.microsoft.com
http://www.iana.org

25 de 31

Curso Mentor Apache

Glosario
Glosario Unidad 1
Concepto

Definición

Applet

Programa en lenguaje Java que puede integrarse en páginas HTML y se ejecuta en el navegador, aunque
no puede acceder a los recursos locales, como archivos, periféricos,.... Es independiente del sistema
operativo.

ASF

Apache Software Foundation. Comunidad de desarrolladores que trabajan en proyectos de
código libre sobre Apache basados en el consenso y la colaboración.

Certificado digital

Consta de una clave pública y un identificador que han sido firmados digitalmente por una Autoridad de
Certificación (CA). Sirve para demostrar que una clave pública pertenece a un usuario concreto.

CGI

Common Gateway Interface (en inglés 'Pasarela de Interfaz Común'). Los scripts CGI son pequeños
programas alojados en el servidor web y que pueden ser utilizados desde las páginas web que se
hospeden en dicho servidor.

Criptografía asimétrica

Técnica basada en el uso de dos claves, una pública y otra privada. La clave pública cifra y la
privada descifra. Cada usuario tiene dos claves. La clave privada solo la conoce el dueño de la
clave, es decir, no se envía por la red. La clave pública es conocida por otros usuarios en otras
máquinas, es decir, se publica. Estas claves se generan al mismo tiempo dando lugar a pares
biunívocos, de tal forma que la combinación pública-privada es única.

Enctype

Establece el tipo MIME y el código de caracteres empleado para la transferencia de información
entre un cliente y un servidor.

FQDN

Nombre de dominio totalmente cualificado.

HTTP

Protocolo para transferir archivos o documentos hipertexto a través de la red. Basado en la arquitectura
cliente/servidor.

Método GET

Forma de paso de parámetros mediante URL.

Método POST

Forma de paso de parámetros mediante formulario (normalmente).

Navegador web

Cliente que permite consultar a Servidores web y presentar la información HTML. Ejemplos: Firefox,
Konqueror, Opera, Internet Explorer, etc.

Portlet

Componentes modulares de interfaz de usuario gestionados y visualizados en un portal web
(interfaz de usuario).

Protocolo
transferencia

26 de 31

de Es el sistema mediante el cual se envían las peticiones de acceso a una web y la respuesta de
esa web.

Sitio web

Conjunto de reglas del servidor web y las páginas web que lo componen.

Software libre

Software que puede ser usado, copiado, estudiado, modificado y redistribuido libremente.

URI - URL

Términos equivalentes que identifican o localizan un recurso universal en la web, ya sea una
imagen, un sonido, un vídeo o la página web que integra todos estos contenidos.

Curso Mentor Apache

Concepto

Definición

Webmaster

Persona responsable o administrador de un sitio web concreto.

World Wide Web

Es una agrupación de miles de páginas electrónicas basadas en textos y en todo tipo de
información multimedia, conectadas entre sí, a través de hiperenlaces, con la finalidad de
recuperar información de forma sencilla, sin que sea necesario conocer previamente su
ubicación exacta.

Otros Glosarios
Otros glosarios relacionados con la informática y el mundo web.
Se pueden visitar las webs siguientes:
ATI: dispone de un glosario completo de términos informáticos en http://www.ati.es/novatica/glosario/glosario_internet.html
Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

27 de 31

Curso Mentor Apache

Fuentes de información
Documentos y enlaces de interés
1. Guía de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web
2. Introducción a los servidores web: http://www.cibernetia.com/
3. Conceptos sobre servidores web: http://trevinca.ei.uvigo.es/

28 de 31

Curso Mentor Apache

Resumen final
Síntesis de la Unidad 1 'Introducción'
Los puntos a destacar de esta unidad son los siguientes:
1. Un servidor web es un programa que implementa el protocolo HTTP (hypertext transfer protocol). Este protocolo está
diseñado para transferir lo que llamamos hipertextos, páginas web o páginas HTML.
2. El objetivo de un servidor web es servir o suministrar páginas web a los clientes web o navegadores que las solicitan.
3. Para que el navegador pueda llegar al servidor web (ya sea en una red local o en Internet) el servidor debe tener asignada
una dirección IP (Internet Protocol) única que identifica el equipo en la red.
4. La información que el usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource
Locators).
5. Apache es un servidor web con un porcentaje de utilización bastante superior al de IIS.
6. El servidor HTTP Apache2 es un servidor web de software libre desarrollado por la Apache Software Foundation (ASF). El
producto obtenido de este proyecto es un servidor de código fuente completo, descargable y gratuito.
7. HTTP se define como un conjunto de normas que permiten la comunicación entre el servidor y los clientes y la transferencia
de información (archivos de texto, imágenes, archivos de música, ...) entre ambos.
8. Los tipos MIME son un estándar que especifican cómo debe un programa (inicialmente un programa de correo o un
navegador web) transferir los archivos multimedia (vídeo, sonido, o cualquier archivo que no esté codificado en ASCII).

29 de 31

Curso Mentor Apache

Autoevaluación Unidad 1
Autoevaluación
El cuestionario de autoevaluación de la Unidad 1 está disponible en la plataforma Mentor (https://centrovirtual.educacion.es).

30 de 31

Curso Mentor Apache
Este artículo está licenciado bajo Creative Commons Attribution Non-commercial 3.0 License

31 de 31

Curso Mentor Apache

Apache

Unidad 2: Instalación de Apache

En este capítulo aprenderás a:
realizar la instalación del servidor web Apache2 (versión 2.2) en Ubuntu tanto desde la línea de orden
(terminal) como desde el entorno gráfico.
identificar los procesos que se lanzan en el sistema al ejecutarse, así como los puertos en los que Apache2
está escuchando peticiones de los clientes.
las opciones de arranque y parada del servicio Apache2.
identificar los directorios y archivos que contienen la configuración del servicio.
realizar la instalación del servidor web Apache2 (versión 2.2) en Windows teniendo en cuenta algunas
consideraciones.
identificar la herramienta gráfica de gestión del servidor Apache2.
identificar los directorios y archivos que contienen la configuración del servicio.

Material complementario:
1. Archivo con las actividades referidas a lo largo de la unidad. Archivo U2_Actividades.pdf
2. Mapa conceptual de la unidad. Archivo U2_mapaconceptual.png
3. Glosario completo del curso. Archivo glosario.pdf

1 de 30

Curso Mentor Apache

Introducción
Objetivos
Conocer los requerimientos del sistema para la instalación de Apache2.
Realizar la instalación de Apache en ambos sistemas operativos.
Realizar la desinstalación de Apache en ambos sistemas.
Identificar las diferentes herramientas y archivos de configuración generados en el proceso de instalación.

Estalecer el nombre de dominio del servidor web Apache2 que se va a utilizar a lo largo del curso.

Conocimientos previos
En esta unidad abordamos la instalación de Apache2 desde cero. El único requerimiento es tener claros los conceptos sobre
servidores web, el protocolo HTTP y los tipos MIME vistos en la Unidad 1.

Contenidos
Unidad 2: Instalación de Apache
A. Ubuntu
1.
2.
3.
4.

Instalación y desinstalación de Apache2
Aranque y parada de Apache2
Archivos y herramientas instaladas por Apache2
Nombre de dominio del servidor web Apache2

B. Windows
1.
2.
3.
4.

Instalación y desinstalación de Apache2
Aranque y parada de Apache2
Archivos y herramientas instaladas por Apache2
Nombre de dominio del servidor web Apache2

C. Fin de unidad
1.
2.
3.
4.

2 de 30

Glosario
Fuentes de información
Resumen final
Autoevaluación

Curso Mentor Apache

Ubuntu: Instalación de Apache2
Preparativos para Ubuntu
Vamos a trabajar con una versión de Ubuntu como estación independiente (standalone).
La instalación de Apache2 la haremos desde el paquete Debian GNU/Linux. Conviene asegurarse que no existe previamente en el
sistema ningún paquete de Apache2 procedente de anteriores instalaciones.
El usuario que ejecuta todo el proceso es root (#) pero podría hacerlo también un usuario 'sudo', es decir con privilegios. La instalación
de Ubuntu no proporciona contraseña para root pero un usuario 'sudo' podría pasar a ser root ejecutando en una terminal la orden
sudo su.

Actividad 2.1
Enunciado: ¿Cómo comprobarías si existe una instalación de Apache2 previa en el sistema?
Solución:
Utilizando la orden dpkg de la forma siguiente:
# dpkg -s apache2

3 de 30

Curso Mentor Apache

Instalación
Instalación desde la línea de orden
Para instalar simplemente hay que ejecutar como root (o utilizando la orden sudo desde un usuario con privilegios de administración) la
orden siguiente. Es importante fijarse en la salida de la orden ya que nos proporciona mucha información acerca de las necesidades y
la configuración del servicio.
$ sudo su
# apt-get install apache2

o

# aptitude install apache2

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Paquetes sugeridos:
apache2-doc apache2-suexec apache2-suexec-custom
Se instalarán los siguientes paquetes NUEVOS:
apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
0 actualizados, 9 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 3330kB de archivos.
Se utilizarán 10,1MB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? s
Des:1 http://lliurex.net/leia/ llx1009/main libapr1 1.3.8-1build1 [116kB]
Des:2
http://lliurex.net/leia/
[85,6kB]

llx1009/main

Des:3
http://lliurex.net/leia/
3ubuntu0.10.04.1 [27,3kB]

llx1009/main

libaprutil1

1.3.9+dfsg-3ubuntu0.10.04.1

libaprutil1-dbd-sqlite3

1.3.9+dfsg-

Des:4 http://lliurex.net/leia/ llx1009/main libaprutil1-ldap 1.3.9+dfsg-3ubuntu0.10.04.1
[25,3kB]
Des:5 http://lliurex.net/leia/ llx1009/main apache2.2-bin 2.2.14-5ubuntu8.4 [2622kB]
Des:6 http://lliurex.net/leia/ llx1009/main apache2-utils 2.2.14-5ubuntu8.4 [160kB]
Des:7 http://lliurex.net/leia/ llx1009/main apache2.2-common 2.2.14-5ubuntu8.4 [290kB]
Des:8 http://lliurex.net/leia/ llx1009/main apache2-mpm-prefork 2.2.14-5ubuntu8.4 [2426B]
Des:9 http://lliurex.net/leia/ llx1009/main apache2 2.2.14-5ubuntu8.4 [1484B]
Descargados 3330kB en 3s (923kB/s)
Seleccionando el paquete libapr1 previamente no seleccionado.
(Leyendo la base de datos ... 00%
269497 ficheros y directorios instalados actualmente.)
Desempaquetando libapr1 (de .../libapr1_1.3.8-1build1_i386.deb) ...
......................................................
Seleccionando el paquete apache2.2-common previamente no seleccionado.
Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.14-5ubuntu8.4_i386.deb) ...
Seleccionando el paquete apache2-mpm-prefork previamente no seleccionado.
Desempaquetando
apache2-mpm-prefork
mpm-prefork_2.2.14-5ubuntu8.4_i386.deb) ...

(de

Seleccionando el paquete apache2 previamente no seleccionado.
Desempaquetando apache2 (de .../apache2_2.2.14-5ubuntu8.4_i386.deb) ...
Procesando disparadores para man-db ...
Procesando disparadores para ufw ...
Procesando disparadores para ureadahead ...
ureadahead will be reprofiled on next reboot
Configurando libapr1 (1.3.8-1build1) ...

4 de 30

.../apache2-

Curso Mentor Apache

Configurando libaprutil1 (1.3.9+dfsg-3ubuntu0.10.04.1) ...
Configurando libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3ubuntu0.10.04.1) ...
Configurando libaprutil1-ldap (1.3.9+dfsg-3ubuntu0.10.04.1) ...
Configurando apache2.2-bin (2.2.14-5ubuntu8.4) ...
Configurando apache2-utils (2.2.14-5ubuntu8.4) ...
Configurando apache2.2-common (2.2.14-5ubuntu8.4) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
........................

Enabling module env.
Enabling module authz_host.
Enabling module reqtimeout.
Configurando apache2-mpm-prefork (2.2.14-5ubuntu8.4) ...
* Starting web server apache2 [ OK ]
Configurando apache2 (2.2.14-5ubuntu8.4) ...
.......................

Instalación desde Synaptic
La instalación también se puede hacer desde el entorno gráfico utilizando la herramienta Synaptic (Sistema > Administración >
Gestor de paquetes Synaptic).

¿Apache2 en ejecución?
Si todo ha ido bien al abrir el navegador web Firefox e ir a http://localhost (donde localhost es un alias de la IP 127.0.0.1, identificada
como la interfaz de loopback) deberá aparecer una página indicando que el servidor Apache2 está instalado y ejecutándose. También
puede indicarse un nombre de dominio si se dispone de él.
Por lo tanto, al instalar Apache2 ya entra en ejecución y lanza varios procesos para atender peticiones http. Para comprobarlo ejecutar
la orden:
#ps ax | grep apache2
1240
1241
1242
1244
1245
1246

?
?
?
?
?
?

Ss
S
S
S
S
S

0:00
0:00
0:00
0:00
0:00
0:00

/usr/sbin/apache2
/usr/sbin/apache2
/usr/sbin/apache2
/usr/sbin/apache2
/usr/sbin/apache2
/usr/sbin/apache2

-k
-k
-k
-k
-k
-k

start
start
start
start
start
start

Es conveniente también instalar el paquete con la documentación de Apache2. Para ello ejecutar:
#apt-get install apache2-doc

Saber más ... sobre tus conocimientos de Apache2

5 de 30

Curso Mentor Apache

Conoce cuál es tu nivel de conocimientos sobre el servidos web Apache.

6 de 30

Curso Mentor Apache

Desinstalación de Apache2
Desinstalar en Ubuntu
La desinstalación de Apache2 se puede realizar desde Synaptic seleccionando el paquete apache2 y con el botón derecho pulsar en
desinstalación completa.
Desde la línea de orden se puede utilizar la orden dpkg.
En cualquiera de los casos es importante saber que, mientras exista un archivo de configuración /etc/apache2/apache2.conf, se
puede lanzar el proceso aunque el paquete no exista. Por lo tanto, si se quiere limpiar completamente, habrá que eliminar el resto de
paquetes que arrastra la instalación de Apache2. En concreto, el responsable de la creación del directorio /etc/apache2/ es el paquete
apache2.2-common. Hay que tener en cuenta que si los subdirectorios de este directorio no están vacíos éstos no se eliminan.
Por tanto para eliminar completamente Apache2 habrá que limpiar los directorios mods-available, mods-enabled, sites-available y
eliminar también los paquetes apache2.2-common y apache2-mpm-worker.
Si se quiere conocer, en un momento determinado, cuál es la versión de Apache2 instalada, ejecutar la orden:
#apache2 -v
Server version: Apache/2.2.16 (Ubuntu)
Server built:
Nov 18 2010 21:17:29

Actividad 2.2
Averiguar qué línea de orden utilizarías para eliminar completamente el paquete correspondiente a Apache2.

Saber más ... sobre algunas órdenes Ubuntu
La orden dpkg se utiliza para instalar, desinstalar y proporcionar información sobre paquetes .deb. Hay que tener en cuenta que NO
resuelve las dependencias.

7 de 30

Curso Mentor Apache

Arranque y parada de Apache2 en Ubuntu
Servicios en Ubuntu
Los servicios en Ubuntu se pueden ejecutar de tres formas dependiendo del tipo de servicio:
1. Como procesos independientes hijos del proceso init.
2. Como procesos hijos del demonio inetd (o xinetd).
3. Como procesos hijos de portmap

Por defecto la instalación de Apache2 lo hace como procesos independientes hijos de init. Es el método más seguro ya que no
requiere la ejecución permanente de otro proceso (inetd) que esté escuchando posibles peticiones http.

Actividad 2.3
Enunciado: Comprobar que el proceso generado por la ejecución del servidor Apache2, es un proceso hijo del demonio del sistema
init.
Para ello ejecutamos la orden siguiente:

# ps axl
5
0
/apache2
5
33
/apache2
5
33
/apache2
5
33
/apache2
5
33
/apache2
5
33
/apache2

| grep apache2
1240
1
20
-k start
2256
1240
20
-k start
2257
1240
20
-k start
2258
1240
20
-k start
2259
1240
20
-k start
2260
1240
20
-k start

0

5448

2828 poll_s Ss

?

0:00 /usr/sbin

0

5448

1700 inet_c S

?

0:00 /usr/sbin

0

5448

1700 inet_c S

?

0:00 /usr/sbin

0

5448

1700 inet_c S

?

0:00 /usr/sbin

0

5448

1700 inet_c S

?

0:00 /usr/sbin

0

5448

1700 inet_c S

?

0:00 /usr/sbin

Comprobamos que en la primera línea se lanza el proceso /usr/sbin/apache2 con un PID = 1240 y un PPID = 1 que es el PID del init.
Todos los demás procesos lanzados son hilos de ejecución hijos del proceso inicial de Apache2.

Acciones sobre el servidor Apache2
Las acciones que se pueden realizar sobre el servidor web Apache2 son las siguientes:
1. Arrancar Apache: ejecutar como root la orden

#/etc/init.d/apache2 start

* Starting web server apache2
y que da lugar a la ejecución del binario siguiente con las opciones por defecto:
/usr/sbin/apache2 -k start
donde:
-k indica el modo de ejecución de Apache2: arranque, parada, etc.

8 de 30

Curso Mentor Apache

Si no arranca de forma automática, para añadir las entradas adecuadas para que el servidor web se inicie en los niveles de ejecución
estándar de Debian ejecutar:
#update-rc.d apache2 defaults
2. Detener Apache: ejecutar como root la orden:

#/etc/init.d/apache2 stop
*
apache2

Stopping

web

que mata todos los procesos lanzados relativos a Apache.
3. Reiniciar el servidor: cierra las conexiones activas

#/etc/init.d/apache2 restart
4. Forzar a que Apache vuelva a leer su archivo de configuración:

# /etc/init.d/apache2 reload / force-reload
Otras opciones disponibles desde Apache2 son:

9 de 30

Opción

Descripción

-l

lista los módulos compilados

-L

muestra las directivas de compilación

-t

realiza un chequeo del archivo de configuración (sintaxis)

server
... ...waiting

Curso Mentor Apache

Herramientas instaladas por Apache2
Archivos y directorios
Por defecto la instalación de Apache2 intenta añadir y eliminar módulos, hosts virtuales y directivas de configuración extras de forma
tan flexible como sea posible, con el objetivo de automatizar los cambios y facilitar la administración del servidor.
Los archivos y directorios creados en /etc/apache2/ en el proceso de instalación son los siguientes:
apache2.conf  es el archivo de configuración principal
conf.d/  contiene archivos de configuración asociados a módulos específicos. Los archivos de este directorio son incluidos
mediante la línea siguiente en /etc/apache2/apache2.conf:
Include /etc/apache2/conf.d
httpd.conf  archivo vacío. No se usa desde Ubuntu.
mods-available/  este directorio contiene una serie de archivos .load y .conf.
Los archivos .load contienen directivas de configuración de Apache necesarias para la carga del módulo en cuestión.
El correspondiente archivo .conf contiene directivas de configuración necesarias para la utilización del módulo en
cuestión.
mods-enabled/  para activar un módulo para Apache2 es necesario crear un enlace simbólico en este directorio a los
archivos .load asociados con el módulo en mods-available/. También para .conf si existe. Por defecto la instalación de
Apache2 deja 'activados' un grupo de módulos.
ports.conf  directivas de configuración que indican puertos y direcciones IP donde Apache2 escucha peticiones.
sites-available/  similar a mods-available/ excepto que contiene archivos de configuración para diversos hosts virtuales que
podrían ser utilizados en Apache2. Observar que el 'hostname' no tiene que corresponder exactamente con el nombre del
archivo. 'default' es el host por defecto.
sites-enabled/  funcionalidad similar a mods-enabled/ y contiene enlaces simbólicos a sitios de sites-available/ que el
administrador ha activado.
Herramientas disponibles:
Nombre

Descripción

a2enmod

activa módulos utilizando el anterior sistema de configuración

a2dismod

desactiva módulos utilizando el anterior sistema de configuración

a2ensite

activa sitios

a2dissite

desactiva sitios

Busca el significado de los términos...
Host virtual
Módulo de Apache

10 de 30

Curso Mentor Apache

Dominio del servidor Apache2
Nombre de dominio
Al hacer la instalación pregunta por un nombre de dominio. Por defecto le asigna localhost. Si disponemos de un nombre de dominio
cualificado y disponemos del servicio DNS configurado podremos utilizar dicho nombre en la configuración de Apache2.
En nuestro caso y para el curso, se va a trabajar con un servidor Apache2 que atiende peticiones de clientes web dentro de su propia
red local y está situado detrás de un router que sirve DHCP. El puerto 80 sólo escucha dentro de la red local que será la
192.168.0.0/24. Una configuración muy sencilla que responde a los requerimientos del aula.
Le asignamos internamente el nombre de dominio servidor.apache2.com y para ello se ha modificar el archivo /etc/hosts de la forma
siguiente:

127.0.0.1 localhost servidor.apache2.com servidor

11 de 30

Curso Mentor Apache

Windows: Instalación de Apache2
Preparativos para Windows
El curso utiliza Windows 7 Home Premium 86 y no requiere ningún software adicional de sistema para la instalación de Apache.
Si la instalación de Apache2 es en Windows XP requiere tener instalado el Service Pack 1. Si no se dispone de él acceder a la URL
siguiente para su descarga:
http://www.microsoft.com/windowsxp/pro/downloads/servicepacks/sp1/default.asp

Para Windows utilizamos la versión 2.2.18 que soporta perfectamente PHP5.
La descarga de la versión con la que vamos a trabajar httpd-2.2.18-win32-x86-openssl-0.9.8r-r2.msi (que lleva incorporado soporte
SSL) se puede realizar desde: http://www.apache.org/dist/httpd/binaries/win32/.
La instalación de Apache2 requiere la ejecución (doble clic) del archivo descargado httpd-2.2.18-win32-x86-openssl-0.9.8r-r2.msi

A tener en cuenta ...
1. Es importante tener en cuenta que la instalación debe hacerse desde la cuenta del Administrador del sistema o desde la cuenta de
un usuario que tenga privilegios de administrador. Sólo de esta forma el servidor web Apache2 podrá ser utilizado por cualquier usuario
existente en la máquina Windows.
2. Conviene antes de hacer la instalación, asegurarse que no se tiene otra instalación previa de Apache2. Si se tiene es preferible
desinstalarla. Probablemente no ocurra nada durante la nueva instalación pero su funcionamiento puede ser impredecible.
3.Si se instala una nueva versión de Apache2 diferente de la ya existente en el sistema, hay que tener cuidado de no instalar la
nueva versión en el mismo directorio que la anterior.

12 de 30

Curso Mentor Apache

Instalación
Instalación
La instalación de Apache2 requiere la ejecución (doble clic) del archivo descargado httpd-2.2.18-win32-x86-openssl-0.9.8r-r2.msi
La primera pantalla que se muestra es la de bienvenida, en la que se indica la versión del servidor web Apache2 que se va a instalar.

A continuación se muestran los términos de la Licencia a la que contestamos que Aceptamos (I accept).

La siguiente pantalla solicita el nombre del dominio. Si se dispone de un dominio registrado y redireccionado a la IP donde estamos
instalando Apache2 lo indicamos en Network Domain. Por ejemplo .apache2.com. Si no se dispone de dominio propio indicar
'localhost' o la IP de la máquina.

13 de 30

Curso Mentor Apache

En Server Name indicar también 'localhost' si no se dispone de dominio propio y si disponemos de dominio indicamos el nombre de
la máquina dentro de nuestro dominio (servidor.apache2.com). El nombre dado aquí sirve para que, al acceder a nuestro servidor
Apache2, se pueda eliminar la parte www y acceder directamente con apache2.com. Lo mas importante respecto a este nombre es
que se pueda resolver, es decir, que un servidor DNS pueda transformar ese nombre en una dirección IP. En nuestro caso la
resolución se hará de forma local.
Damos la dirección de correo electrónico del administrador. Esta dirección conviene que sea real ya que a ella irán a parar todos los
mensajes de error y de los visitantes de las páginas del servidor web.
Por último, en la pantalla nos pregunta si se quiere lanzar Apache2 como un servicio para todos los usuarios escuchando en el puerto
80 (For All Users, on Port 80, as a Service), que es lo mas usual y es la opción que seleccionamos. La otra opción indica que
Apache2 sólo se lanza para el usuario actual y escuchando en el puerto 8080 (Only for the Current User, on port 8080, when
started Manually). Esta opción se suele utilizar para hacer un uso personal y de pruebas del servidor Apache o si se tiene ya otro
servidor escuchando en el puerto 80.
Esta clave identifica el directorio para la directiva ServerRoot cuyo objetivo es indicar el directorio que contiene el subdirectorio conf.
Al arrancar Apache2, éste lee en este directorio el archivo de configuración httpd.conf. Si el valor de esta clave no coincide con el
valor de ServerRoot, Apache2 siempre tomará el valor de la directiva.
Si se modifica la ubicación de los archivos de configuración hay que actualizar el directorio indicado en ServerRoot para que se pueda
localizar el archivo httpd.conf.
La siguiente ventana permite seleccionar el tipo de instalación que se quiere realizar: Típica o Personalizada. Es conveniente
seleccionar la opción Personalizada (Custom) ya que, de esa forma se puede comprobar qué se va a instalar en nuestro equipo.

14 de 30

Curso Mentor Apache

La instalación muestra la ventana indicando qué se va instalar con una breve descripción y dónde se va a instalar. Permite la
modificación del directorio destino (botón Change...).

Una vez configurados todos los parámetros de la instalación, comienza propiamente la instalación (pulsar el botón Install):

15 de 30

Curso Mentor Apache

A continuación se muestra una barra de progresión de la instalación indicándonos que puede tardar varios minutos.

Como se ha seleccionado la instalación de Apache2 como servicio, al terminar la instalación arranca automáticamente Apache2 al
pulsar el botón Finish:

16 de 30

Curso Mentor Apache

¿Apache2 en ejecución?
En Windows 7 hay iconos que están por defecto 'escondidos' y para acceder a ellos hay que pulsar en la barra de tareas el botón

Comprobamos que entre los botones disponibles está el correspondiente a Apache que ha sido instalado y al finalizar la instalación es
ejecutado y por lo tanto está activo el servicio.

Dentro de la configuración de estos iconos 'escondidos' podemos indicar que se muestre siempre en la barra de tareas.

17 de 30


Manual de apache.pdf - página 1/303
 
Manual de apache.pdf - página 2/303
Manual de apache.pdf - página 3/303
Manual de apache.pdf - página 4/303
Manual de apache.pdf - página 5/303
Manual de apache.pdf - página 6/303