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
yphp5-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
)
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…