martes, 3 de marzo de 2009

APACHE2+DAV fácil


La configuración de un servidor web y su acceso puede realizarse de muchas formas.
A continuación, explico uno de los caminos más sencillos.

1. Nombres del servidor
  • Editar el archivo "/etc/hosts" agregando:
    ...
    127.0.0.1 sitio1
    127.0.0.1 sitio2
    ...
Con esto logramos que el servidor responda a los nombres "sitio1" y "sitio2" de manera local.

2. Instalación y configuración del servidor Web Apache2
  • Instalación de apache2 y PHP5
    • #aptitude install apache2 php5
  • Creamos los directorios para guardar las páginas:
    • #mkdir /var/www/sitio1
    • #mkdir /var/www/sitio2
    • #chown -R www-data.www-data /var/www/sitio1
    • #chown -R www-data.www-data /var/www/sitio2
  • Configuración del primer host virtual:
    • Crearemos un archivo por cada sitio virtual para mantener un mejor orden:
    • #vim /etc/apache2/sites-available/sitio1

ServerName sitio1
ServerAlias www.sitio1
DocumentRoot /var/www/sitio1

ErrorLog /var/log/apache2/sitio1/error.log
LogLevel warn
CustomLog /var/log/apache2/sitio1/access.log combined
ServerSignature On


  • Ahora configuramos el segundo:
    • #vim /etc/apache2/sites-available/sitio2

ServerName sitio2
ServerAlias www.sitio2
DocumentRoot /var/www/sitio2

ErrorLog /var/log/apache2/sitio2/error.log
LogLevel warn
CustomLog /var/log/apache2/sitio2/access.log combined
ServerSignature On

  • Creamos los directorios para los logs:
    • #mkdir /var/log/apache2/sitio1/
    • #mkdir /var/log/apache2/sitio2/
  • Habilitamos cada uno de los sitios:
    • #a2ensite sitio1
    • #a2ensite sitio2
  • Recargamos la configuración del servicio "Apache2":
    • #/etc/init.d/apache2 reload
4. Prueba de los "virtual hosts"
  • Creamos un par de páginas web para probar la configuración:
    • #echo "Este es el sitio 1." > /var/www/sitio1/index.html
    • #echo "Este es el sitio 2." > /var/www/sitio2/index.html
  • Con un explorador, navegamos a las direcciones:
    • http://sitio1
    • http://sitio2
5. Configuración del acceso vía DAV
  • El acceso vía DAV es alternativo al que proveen las cuentas locales del servidor.
  • Las cuentas locales pueden apoyarse en servicios como ssh, scp y ftp.
  • Los usuarios y claves de DAV pueden estar almacenados en un archivo.
  • Cargamos los módulos "dav" y "dav_fs" en el servidor apache2:
    • #a2enmod dav
    • #a2enmod dav_fs
  • Creamos un directorio para guardar el archivo de usuarios y claves para acceso vía DAV:
    • #mkdir /etc/apache2/dav-auth
  • Creamos el archivos con usuarios y claves correspondientes:
    • #htpasswd -c -m /etc/apache2/dav-auth/dav-auth-claves usuario1
    • #htpasswd -m /etc/apache2/dav-auth/dav-auth-claves usuario2
    • #chown root.www-data /etc/apache2/dav-auth/dav-auth-claves
    • #chmod 640 /etc/apache2/dav-auth/dav-auth-claves
  • Con esto hemos creado el archivo "dav-auth-claves" que contiene nombre de usuario y clave cifrada.
  • Configuramos los archivos "sitio1" y "sitio2" en "/etc/apache2/sites-available":
"/etc/apache2/sites-available/sitio1":

...
Alias /webdav /var/www/sitio1

DAV On
AuthType Basic
AuthName "Webdav del sitio 1"
AuthUserFile /etc/apache2/dav-auth/dav-auth-claves
Require valid-user

...

"/etc/apache2/sites-available/sitio2":

...
Alias /webdav /var/www/sitio2

DAV On
AuthType Basic
AuthName "Webdav del sitio 2"
AuthUserFile /etc/apache2/dav-auth/dav-auth-claves
Require valid-user

...

6. Probamos el acceso a los sitios vía DAV:
  • Para esta prueba podemos utilizar un programa de cónsola llamado "cadaver". Procedemos a su instalación:
    • #aptitude install cadaver
  • Ejecutamos la prueba para acceder al "sitio 1":
    • #cadaver http://sitio1/webdav
      ...ingresamos el usuario y la clave.
      Una vez dentro podemos ejecutar el comando "ls" para visualizar los archivos.
  • Ejecutamos la prueba para acceder al "sitio 2":
    • #cadaver http://sitio2/webdav
      ...ingresamos el usuario y la clave.
      Una vez dentro podemos ejecutar el comando "ls" para visualizar los archivos.
Es recomendable utilizar algún cliente para acceso DAV. Afortunadamente para el caso de Debian el sistema trae por defecto la opción de contectarse a un servidor vía "DAV".

En este punto tenemos un servidor web con dos hosts virtuales para ser accedidos vía DAV.

Éxitos!

FUENTES:

http://www.simplehelp.net/2008/12/16/how-to-setup-virtual-hosts-in-apache/
http://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch
http://www.apache2.org/
http://httpd.apache.org/docs/2.0/mod/mod_dav.html
http://lists.debian.org/debian-user-spanish/2008/11/msg00768.html

2 comentarios:

David L. Bompart dijo...

Saludos!!

# #htpasswd -c -m usuario1 /etc/apache2/dav-auth/dav-auth-claves
# #htpasswd -m usuario2 /etc/apache2/dav-auth/dav-auth-claves

Cambiar por:

# #htpasswd -c -m /etc/apache2/dav-auth/dav-auth-claves usuario1
# #htpasswd -m /etc/apache2/dav-auth/dav-auth-claves usuario2

Siguiendo los pasos me di cuenta de que el primer parametro es la ruta y el segundo el nombre de usuario :)

José Gregorio Díaz Unda dijo...

Gracias David!

Corregido!