Servidor Web (Apache)

Proceso de instalación y configuración del servidor web Apache en el entorno que hemos creado.

Se procederá a instalar el servidor web con Apache 2.2, PHP 5, MySQL, sirviendo carpetas a los usuarios el sistema (ej.: /~usuario) y con ajustes de encoding y error personalizados. El contenido del servidor web estará disponible en /var/www/html.

Instalación

El proceso mínimo de instalación se lleva a cabo por medio del paquete apache2 Para Apache 2.x, o similar (otros ejemplos incluyen lighttpd, que usa Youtube).

#con privilegios de superusuario:
apt-get install apache2

En un servidor web de producción, se requieren al menos ciertas funcionalidades, como pueden ser:

  • Soporte para PHP (php5 y php5-cli, libapache2-mod-php5)
    • con acceso a herramientas como libGD (php5-gd) y MCrypt (php5-mcrypt)
  • Opciones de autenticación (libapache2-auth-*)
    • En particular MySQL (libapache2-mod-auth-mysql)
  • Herramientas de seguridad y prevención (libapache2-mod-elusive1), libapache2-mod-kerb)

Cuando se quiere un sevridor web completo se recomienda por lo general una instalación diseñada para LAMPP como puede ser Ubuntu Server o CentOS.

Configuración

Las siguientes son las rutas por defecto para el servidor Apache:

Directiva Valor por defecto Dónde cambiarla
Directorio de Configuración /etc/apache2
Módulos precargados ./mods-enabled en apache2.conf
Sitios (vhost) precargados ./sites-enabled en apache2.conf
Directorio de contenidos web /var/www en apache2.conf
PIDFILE /var/run/apache2/apache.pid en conf.d/core.conf
Script de gestión /etc/init.d/apache2
Privilegios de Usuario www-data:www-data

Inicio y Parada

Para iniciar el servidor web, invocamos al script con los privilegios necesarios:

#con privilegios de superusuario:
/etc/init.d/apache2 start

Para detener el servidor web, invocamos al script con los privilegios necesarios:

#con privilegios de superusuario:
/etc/init.d/apache2 stop

Si hemos modificado una directiva menor del servidor y queremos recargar la configuración la manera más eficiente es con:

#con privilegios de superusuario:
apache2ctl graceful

Subiendo ccontenidos al Servidor Web

Para subir contenidos al servidor web, basta con crear o modificar un archivo index.html en el directorio de contenidos del servidor (por defecto /var/www). Para que cualquier contenido que coloquemos sea usable por el servidor los archivos que depositemos en esta carpeta deben estar configurados para que el servidor Apache pueda leerlos, y, en caso de ser necesario, escribirlos. Esto significa que los permisos mínimos por defecto debieran ser www-data:ww-data 640.

Algunas plataformas requieren, por cuestiones de compatibilidad con servicios de hosting o sistemas similares, estar asignadas con permisos *:* 777.

Habilitando las Páginas de Usuario

Para habilitar las páginas de usuario en Apache, basta con activar el módulo userdir. Para esto hacemos:

[privilegiado@host] a2enmod userdir && /etc/init.d/apache force-reload

A continuación, cada usuario del sistema debe crear su propia página, subiendo los contenidos que desee al directorio $HOME/public_html. Dado que el servidor web debe ser capaz de leer, y en ciertos casos, escribir, en este directorio, es bueno asignar permisos globales de lectura por medio de chmod +r, o permisos particulares de escritura con uno (o todos) de los siguientes comandos:

[user@host] chgrp www-data $HOME/public_html
[user@host] chmod g+s,g+rwx $HOME/public_html

Ver También

  • htaccess – cómo controlar opciones de presentación y privilegios de acceso a ciertos directorios
  • apache-mod-autoindex – cómo presentar un directorio como listado de archivos
  • Otros servidores de HTTP: lighttpd, IIS2), ngix, etc…

indexmenu_n_67

1)
permite evitar ciertos tipos de ataques DOS
2)
de Microsoft