Servidor web Apache
De XTech Capacitacion
Tabla de contenidos |
Introducción
Hoy en día es el servidor web más utilizado del mundo, encontrándose muy por encima de sus competidores, tanto gratuitos como comerciales. Es un software de código abierto que funciona sobre cualquier plataforma. Por supuesto, se distribuye prácticamente con todas las implementaciones de Linux.
Tiene capacidad para servir páginas tanto de contenido estático, para lo que nos serviría sencillamente un viejo ordenador 486, como de contenido dinámico a través de otras herramientas soportadas que facilitan la actualización de los contenidos mediante bases de datos, archivos u otras fuentes de información.
Instalación
Dependiendo de cada distribucion, puede hacerse de forma dinamica, o descargando directamente los fuentes de http://www.apache.org/.
Los paquetes necesarios serán, para este caso:
- apache2
- apache2-common
- apache2-utils
- libapr0
- apache2-doc
- apache-ssl
- apache-perl
En caso de que tengamos una distribución derivada de Debian podremos hacer:
apt-get install apache2 apache2-common apache2-utils libapr0 apache2-doc apache-ssl apache-perl
Durante el proceso de instalación nos irá pidiendo la ubicación del servidor, así como el nombre de dominio que tendremos de base. Luego podremos agregar adicionales.
Una vez instalado, se comporta como servidor independiente y viene preparado por defecto para atender peticiones realizadas a través del puerto 80 de nuestro equipo. Podemos interactuar con él de forma manual empleando las órdenes:
# /etc/init.d/apache {start|stop|reload|reload-modules|force-reload|restart}
Una vez realizada la instalación, Apache queda listo para trabajar. Podemos comprobar que funciona tecleando en nuestro navegador favorito http://localhost (o IP de la maquina a revisar el apache) se nos mostrará entonces una pantalla de bienvenida del servidor. síntoma de que hemos contactado con él y se encuentra funcionando.
el archivo apache2.conf
segun la version de apache que tengamos instalada, podemos encontrar el archivo de configuracion con el nombre httpd.conf , apache2.conf o apache.conf.
Entre las distintas versiones de apache, la arquitectura del archivo de configuración es similar, variando entre la version 2.0.52 y la 2.0.54 de forma significativa, pero sin perder la manera de intrepretar las directivas.
Las líneas realmente importantes de nuestro archivo de configuración para un funcionamiento básico, pero seguro, son las siguientes:
ServerType standalone
Nuestro servidor se encuentra en forma independiente.
ServerRoot /etc/apache
Ubicacion de los archivos de configuración del servidor.
Timeout 300
Tiempo (en segundos) que quedara esperando pedidos desde una misma IP cliente.
KeepAlive On
Si nuestro servidor, quedara esperando o no conecciones persistentes.
MaxClients 150
Limita a 150, la cantidad máxima de conexiones simultáneas a nuestro servidor.
Port 80
Es el puerto donde escuchará muestro servidor apache.
DocumentRoot /var/www
Ubicación del sitio web en nuestro sistema de archivos local (en algunos casos tendremos esta directiva en el archivo /etc/apache2/sites-avaiable/default ).
ServerName
nombre o dominio de nuestro servidor apache
DocumentRoot
directorio donde se encuentran los archivos y/o directorios a mostrar en nuestro sitio.
Dominios Virtuales (solo para versiones < 2.0.54)
Tenemos que editar el archivo que está en /etc/apache/httpd.conf. Asumiremos que queremos tener varios dominios virtuales con demás, por lo que toca hacer lo siguiente:
buscamos la dentro de httpd.conf el siguiente termino;
NameVirtualHost *:80
Esto hará que todas las peticiones que se le hagan a Apache sean escuchadas por el puerto 80 venga de cualquier IP o Host.
Pasamos a la parte de las definiciones de los virtual hosts en nuestro apache. Para eso dejare acá un ejemplo de configuración que pueden tomar de ejemplo.
Dominios Completos
<VirtualHost *:80> ServerName www.xtech.com.ar ServerAdmin admin@xtech.com.ar DocumentRoot /var/www/html/tech VirtualDocumentRoot /var/www/html/xtech ErrorLog logs/xtech-error.log CustomLog logs/xtech-access.log common <Directory "/var/www/html/xtech"> Options Indexes FollowSymLinks Order allow,deny Allow from all </Directory> </VirtualHost>
Subdominios
<VirtualHost *:80> ServerName curso.xtech.com.ar ServerAlias curso.xtech.com.ar ServerAdmin admin@xtech.com.ar DocumentRoot /var/www/html/curso VirtualDocumentRoot /var/www/html/curso ErrorLog logs/curso-error.log CustomLog logs/curso-access.log common </VirtualHost>
Lo hecho arriba lo vamos a explicar acá:
- Se crea un genérico
- Se le asigna una dirección ServerName subdominio xtech.com.ar
- Se le añade un alias (por si quieres que dos direcciones apunten al mismo sitio):
ServerAlias subdominio.lo_que_decees.com - Se le indica donde estará el documento raíz: DocumentRoot /var/www/html/curso
- Definimos un VirtualDocumentetRoot para que el apache lo lea sin modo a equivocarse
VirtualDocumentRoot /var/www/html/curso - Y configuramos las direcciones donde estarán los logs de los acceso y errores.
Ahora seguimos con la configuración de los módulos que correrá el apache, tienen que fijarse en el listado de módulos (los que comienzan con LoadModule) estén siendo cargados los de php y de mysql, en caso que no sea así los incluimos así:
LoadModule php_module modules/mod_php.so LoadModule mysql_module modules/mod_mysql.so
Llego la hora de guardar la configuración y si no has creado los directorios en los lugares que le hemos dicho al Virtual Host es hora que lo vallas haciendo.
Una vez hechos todos esos directorios y creadas las configuraciones en el Apache le damos este comando en la consola /etc/init.d/apache2 restart y si no han habido problemas la consola responderá con un OK.

