Apache

De Guifi.net - Wiki Hispano

Apache es un servidor HTTP (web) libre con licencia propia llamada Apache: http://www.apache.org/licenses/ Presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido.

Instalación

aptitude install apache2

Módulos

La arquitectura del servidor Apache es muy modular. El servidor consta de una sección core y mucha de la funcionalidad que podría considerarse básica para un servidor web es provista por módulos.

Habilitar o deshabilitar los módulos

a2enmod
a2dismod

Otros módulos interesantes

  • ssl - Comunicaciones Seguras vía TLS.
aptitude install openssl ssl-cert
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
a2enmod ssl
  • dav - Soporte del protocolo WebDAV (RFC 2518).
  • deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente.
  • auth_ldap - Permite autentificar usuarias contra un servidor LDAP.
  • proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets y JSP).
  • perl - Páginas dinámicas en Perl.
  • python - Páginas dinámicas en Python.

Publicar los /home's

# a2enmod userdir

Por defecto la configuración del módulo requiere que cada usuaria cree un subdirectorio llamada exactamente public_html. Ese directorio debería tener al menos permisos de lectura y ejecución para el servidor web. O sea:

~$ mkdir public_html
~$ chmod 0750 public_html
~$ chown user.www-data public_html

Reiniciamos el servidor apache.

/etc/init.d/apache2 force-reload

Habilitar o deshabilitar sitio

Para habilitar o deshabilitar un servidor virtual:

a2ensite
a2dissite

Comandos de interés

  • Escuchar el tráfico en el puerto 80:
  • Ver qué servidor web tiene una máquina desde fuera:
nmap -sV -p 80 nombre_o_IP_de_máquina
  • Ver qué máquinas tienen un servidor web dentro de un rango
nmap -sT -p 80 192.168.2.*

Errores y soluciones

  • Error
 #/etc/init.d/apache2 start
(98)Address already in use: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs
  • Solución:
    • Esperar a que apache corte todas las conexiones que tenía abiertas, se pueden monitorear escuhando el tráfico en el puerto 80, esta solución puede hacer esperar varios minutos, pero evita el trauma de tener que reiniciar (tal vez no reinicie)
    • Si lo anterior no funciona, tal vez exista un problema entre varias versiones de apache u otros servidores escuchando en el puerto 80, en tal caso desinstala de forma que sólo quede uno o cambia los puertos de los demás

Ejemplos reales en servidores autogestionados

Ejemplo de uso real de Apache en Marsupi

Enlaces externos

Herramientas personales