Apache 2

Texto obtenido de http://library.linode.com/web-servers/apache/installation/ubuntu-10.04-lucid?format=source

Instalación de Apache 2 en Ubuntu 10.04 LTS

Este tutorial explica cómo instalar y configurar el Apache servidor en Ubuntu 10.04. Toda la configuración se realiza a través de la terminal, así que debemos estar registrados como usuario root mediante SSH.

Establecer el nombre del host

Para establecer el nombre del host, se puede utilizar el siguiente comando:

hostname mybox.mydomain.com

También se puede editar el archivo /etc/hosts, del siguiente modo

127.0.0.1 localhost 127.0.1.1 mybox mybox.mydomain.com

Ejectuar el siguiente comando para comprobar el nombre del host:

hostname

Instalar Apache 2

Hay que Asegurarse de que sus repositorios de paquetes y programas instalados están actualizados, del siguiente modo.

apt-get update apt-get upgrade --show-upgraded

Escriba el siguiente comando para instalar el servidor web Apache 2, su documentación y software adicional.

apt-get install apache2 apache2-doc apache2-utils

Configurar hosts virtuales

En este punto, está activado el sitio por defecto de Apache. Si escribimos en un navegador la IP del servidor web, podremos ver la página de bienvenida. Pero utilizar el sitio por defecto no siempre es suficiente. A veces necesitamos albergar en un mismo servidor varios sitios web que responden a nombres diferentes. Por ejemplo, pensemos en www.example.com y www.example.net, alojadas en el mismo servidor. Dependiendo de lo que escriba en la barra de dirección del navegador, se abrirá una u otra. Vamos a pensar en esto.

¿Cómo podría un mismo servidor distinguir entre ambos sitios? Evidentemente, a nivel de puertos no puede, ya que el servidor web escucha en un solo puerto (en principio el puerto 80). Por tanto, solo es posible distinguir entre ambos sitios a nivel de aplicación. A cada uno de estos sitios los llamamos hosts virtuales.

Existen diferentes formas de configurar hosts virtuales. Vamos a ver uno de ellos. En primer lugar, vamos a desactivar el host virtual por defecto de Apache.

a2dissite default

Para empezar, debemos poder resolver los nombres de los hosts virtuales mediante DNS u otro modo (por ejemplo, /etc/hosts).

También hay que contar un directorio dedicado para cada sitio. Si vamos a tener www.example.com y www.example.net, podríamos contar los siguientes directorios:

mkdir /var/www/www.example.com mkdir /var/www/www.example.net

Una vez hecho esto, podemos crear un archivo de configuración por cada host virtual. Apache2 incluye los siguientes directorios:

  • /etc/apache2/sites-available: Contiene los archivos de configuración disponibles pero no necesariamente activados.
  • /etc/apache2/sites-enabled: Este directorio contiene los archivos de los sitios activados.

Lo siguiente es crear un archivo de configuración por cada sitio, en el directorio /etc/apache2/sites-available/. Para ello, lo más sencillo es copiar el archivo del sitio por defecto y después modificarlo. Por ejemplo:

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.example.com cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.example.net

Después debemos modificar dichos archivos para adaptarlos a cada uno de los sitios. Pongo aquí como ejemplo el archivo www.example.com.

<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/www.example.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/www.example.com> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>

Finalmente, activamos los sitios con los siguientes comandos:

a2ensite www.example.net a2ensite www.example.com

Debe haber al menos una página web por cada sitio, llamada index.html, según se indica en la configuración por defecto sobre el nombre de los archivos de índice (/etc/apache2/mods-available/dir.conf).

Finalmente, debemos reiniciar el servidor:

/etc/init.d/apache2 restart

Cuando editamos un nuevo archivo de host virtual, será necesario recargar la configuración, lo que no requiere el reinicio del servidor (lo que puede no ser conveniente por la interrupción de las sesiones actuales:

/etc/init.d/apache2 reload

Y listo. Ahora podemos probar nuestro servidor, suponiendo que tenemos algún contenido en cada sitio. En cuanto al contenido, me remito a LMSGI.

Práctica 1.Instala el servidor Apache2 en un servidor GNU/Linux, llamado websvr. Crea una página llamada index.html, con el texto siguiente:

<h1> Página de prueba por defecto de Apache2.<h1>

Después emplea un cliente, llamémosle webclient. Comprueba que puedes acceder al servidor, escribiendo en la barra de direcciones la dirección IP del mismo. Así se abrirá el recurso index.html

Práctica 2.Sobre el servidor anterior, crea dos hosts virtuales con los nombres de sitio que consideres oportunos, por ejemplo ametsys.com y seragul.net. Cada uno de estos sitios debe estar ubicado en un directorio diferente. Por ejemplo, si empleamos los nombres de dominio propuestos, dichos directorios podrían ser:

  • /var/www/www.ametsys.com/
  • /var/www/www.seragul.net/

Cada sitio debe tener una página llamada index.html, en la que haya un texto identificativo del sitio. Por ejemplo, para la página correspondiente a www.ametsys.com, podríamos utilizar la siguiente página:

<html> <head> <title>ametsys</title> </head> <body> <h1>Página de prueba de ametsys.com</h1>

Después, emplea el cliente webclient desde el que abras ambos sitios con el navegador. Para ello, debes escribir el nombre del host virtual en la barra de direcciones del navegador. Por ejemplo: http://www.seragul.net. Puesto que aun no hemos estudiado el servicio DNS, vamos a utilizar el archivo hosts, ubicado en diferente sitio, dependiendo de si el sistema cliente es Windows o GNU/Linux:

  • En Windows, el archivo hosts está en C:\Windows\System32\Drivers\etc\.
  • En GNU/Linux está en /etc/.

Para que el ejercicio está compleado, debes poder abrir ambos sitios web desde webclient

Saludos.