HOWTO: Bozohttpd en NetBSD

De NetBSD Mexico

Contenido

[editar] BozoHttpd

httpd - hyper text transfer protocol version 1.1 daemon  (via man httpd)
        httpd(8) lee una peticion por medio del protocolo http y envia la respuesta a la salida standard.

[editar] Requerimientos

NeBSD 5 o superior.

[editar] Introduccion

httpd(8) es un servidor web light que viene en el sistema base NetBSD y ejecuta via inetd, no es necesario instalar paquetes adicionales, tiene la habilidad de ejecutar scripts cgi,php,c,sh etc. e indexar una lista de directorios en su caso. El ser ligero lo hace atractivo en sistema empotrados, en routers,firewall usando solo Compact Flash como medio de almacenamiento. httpd(8) soporta indizado de directorios y virtualhosts y es posible ejecutarlo bajo chroot(8). Soporta ipv6 tambien.

[editar] Usos

  • Blog cgi, estatico, php (cgi)
  • Sistemas empotrados.
  • Autenticacion por web.
  • etc.

[editar] Configuracion

httpd(8) se inicia via inetd(8), para ello editamos lo siguiente:

# vi /etc/inetd.conf

Descomentar la linea;

http            stream  tcp     nowait:600      _httpd  /usr/libexec/httpd      httpd /var/www 

La linea anterior habilita el inicio de httpd(8) via inetd, el directorio /var/www es la ubicacion de nuestros archivos html o cgi, este directorio ya existe en nuestro sistema, lo que procede es poner documentos ahi para que httpd(8) los lea.

Ahora tambien es posible ejecutar httpd desde el shell, via rc.d(8) de la sig. forma.

# /etc/rc.d/httpd start

A continuacion ponemos algo dentro del directorio por defecto de httpd :

# vi /var/www/index.html

Escribimos una linea html en el archivo y guardamos los cambios, ejemplo:

   <h1> It work's </h1>

A continuacion, iniciamos httpd(8), para ello basta ejecutar desde la linea de comandos:

# /etc/rc.d/inetd restart

Apuntamos nuestro browser hacia http://localhost para probar nuestra configuracion.

[editar] Parametros adicionales

-c habilita el uso de scripts cgi, bajo el directorio /var/www/cgi-bin
-x Permite el indizado de directorios dentro de un directorio particular dentro del DocumentRoot (/var/www en este caso)
-v Habilita el uso de VirtualHost o servidores virtuales dentro de nuestro DocumentRoot.

[editar] Ejemplos

http stream tcp  nowait:600 _httpd /usr/libexec/httpd httpd -v /var/vroot /var/www
Inicia httpd(8) via inetd con Vhosts dentro de /var/vroot
httpd -C .php /usr/pkg/bin/php /var/www
Inicia httpd(8) con soporte php dentro de /var/www/

[editar] Autenticacion

httpd(8) soporta autenticacion basica, si un archivo .htpasswd se encuentra en el algun directorio del DocumentRoot, este permite restringir el acceso a el mismo.

Herramientas personales