Servidor web Hiawatha

Enviado por cnicolas el 25 Febrero, 2010 - 21:52.

Hiawhata es un servidor web que se autoproclama el servidor mas seguro de todos los existentes.
Esta licenciado con la licencia GNU/GPL2, es el servidor por defecto de las distribibuciones Austrumi y Puppy Linux
Su existencia data del año 2002 y es, probablemente, uno de los grandes desconocidos en el mundo de los servidores web.
Para su instalacion lo mejor es irse a su pagina web y bajarse la última version en formato gzip. Una vez bajado a nuestro local la descomprimimos, nos crea una carpeta y nos vamos a ella, debemos pues ejecutar

$ tar -xzf hiawatha-<version>.tar.gz
$ cd hiawatha-<version>

Posteriormente configuramos el servidor , podemos configurarlo por defecto, pero en este caso creo conveniente añadir el modo debug ya que no es una maquina en produccion y deshabilito el soporte para ipv6, para ello, nos logeamos como root y ejecutamos

# apt-get install libc6-dev libssl-dev dpkg-dev debhelper fakeroot libxml2-dev libxslt1-dev
# ./configure  --disable-ipv6 --enable-debug
# make deb

Esto nos genera un *.deb en la carpeta superior asi que

# cd
# dpkg -i hiawa*.deb

Con esto ya tendriamos nuestro servidor funcionando , ahora queremos que nos admita php, si suponemos que ya lo tenemos instalado debemos ir a nuestro fichero php.ini y asegurarnos que tiene

cgi.rfc2616_headers = 1

Esta linea suele estar al final del fichero.
Ahora solo nos resta habilitar nuestro servidor para que admita php , nos vamos al fichero hiawatha.conf que por defecto no ha sido instalado en /etc/hiawatha y nos aseguramos que tenga lo siguiente

CGIhandler = /usr/bin/php5-cgi:php
..
CGIextension = cgi
..
FastCGIserver {
    FastCGIid = PHP5
    ConnectTo = 127.0.0.1:2005
    Extension = php
}
..
ExecuteCGI = yes

El fichero en su totalidad es el siguiente

# Hiawatha main configuration file
#

# GENERAL SETTINGS
#
#ServerId = www-data
ConnectionsTotal = 150
ConnectionsPerIP = 10
SystemLogfile = /var/log/hiawatha/system.log
GarbageLogfile = /var/log/hiawatha/garbage.log

# BINDING SETTINGS
# A binding is where a client can connect to.
#
Binding {
    Port = 80
#    Interface = 127.0.0.1
#    MaxKeepAlive = 30
#    TimeForRequest = 3,20
}
#
#Binding {
#    Port = 443
#    Interface = ::1
#    MaxKeepAlive = 30
#    TimeForRequest = 3,20
#    SSLcertFile = hiawatha.pem
#}

# BANNING SETTINGS
# Deny service to clients who misbehave.
#
#BanOnGarbage = 300
#BanOnMaxPerIP = 60
#BanOnMaxReqSize = 300
#KickOnBan = yes
#RebanDuringBan = yes

# COMMON GATEWAY INTERFACE (CGI) SETTINGS
# These settings can be used to run CGI applications. Use the 'php-fcgi'
# tool to start PHP as a FastCGI daemon.
#
#CGIhandler = /usr/bin/perl:pl
CGIhandler = /usr/bin/php5-cgi:php
#CGIhandler = /usr/bin/python:py
#CGIhandler = /usr/bin/ruby:rb
#CGIhandler = /usr/bin/ssi-cgi:shtml
CGIextension = cgi
#

FastCGIserver {
    FastCGIid = PHP5
    ConnectTo = 127.0.0.1:2005
    Extension = php
}

# URL TOOLKIT
# This URL toolkit rule was made for the Banshee PHP framework, which
# can be downloaded from http://www.hiawatha-webserver.org/banshee
#
#UrlToolkit
{
#    ToolkitID = banshee
#    RequestURI isfile Return
#    Match ^/(css|files|images|js)/ Return
#    Match ^/(favicon.ico|robots.txt|sitemap.xml)$ Return
#    Match .*\?(.*) Rewrite /index.php?$1
#    Match .* Rewrite /index.php
#}

# DEFAULT WEBSITE
# It is wise to use your IP address as the hostname of the default website
# and give it a blank webpage. By doing so, automated webscanners won't find
# your possible vulnerable website.
#
Hostname = 127.0.0.1
WebsiteRoot = /var/www/hiawatha
StartFile = index.html
ExecuteCGI = yes
AccessLogfile = /var/log/hiawatha/access.log
ErrorLogfile = /var/log/hiawatha/error.log
#ErrorHandler = 404:/error.cgi

# VIRTUAL HOSTS
# Use a VirtualHost section to declare the websites you want to host.
#
#VirtualHost {
#    Hostname = www.my-domain.com
#
    WebsiteRoot = /var/www/my-domain/public
#    StartFile = index.php
#    AccessLogfile = /var/www/my-domain/log/access.log
#    ErrorLogfile = /var/www/my-domain/log/error.log
        ExecuteCGI = yes
#    TimeForCGI = 5
#    UseFastCGI = PHP5
#    UseToolkit = banshee
#}

# DIRECTORY SETTINGS
# You can specify some settings per directory.
#
#Directory {
#    Path = /home/baduser
#    ExecuteCGI = no
#    UploadSpeed = 10,2
#}

Ahora reinicamos nuestro servidor, primero lo paramos

# kill -15 `cat /var/run/hiawatha.pid`

Lo reiniciamos

#/usr/sbin/hiawatha

Para probar que tenemos habilitado php es tan sencillo como crear un fichero index .php en la ruta que tenemos definida en nuestro hiawatha.conf (por defecto /var/www/hiawatha) y lo llamamos por ejemplo index.php (original ante todo)

<?php phpinfo(); ?>

Con esto al teclear en nuestro navegador preferido la url http://localhost/index.php deberiamos ver la informacion de nuestra version de php en nuestro navegador.

Para más información:
Página web
Howto

Imagen de tutiplen
Enviado por tutiplen el 25 Febrero, 2010 - 22:40.

Cáspita! (porque c o ñ o no lo pone)
Se llama casi como un personaje de dibujos de Disney que ve mi hija...
"El gran guerrero Hyawatha"
Muy interesante conocer otro servidor web más. Y realmente ligero...
Saludos

Imagen de toniusco
Enviado por toniusco el 26 Febrero, 2010 - 10:14.

Por lo visto hiawatha es un guerrero indio (de los indios nativos de América).

Llevo algo de tiempo siguiéndole la pista a hiawatha, y la verdad es que parece espectacular. Aun no me he animado a probarlo porque quiero probarlo con una tienda web como magento, pero las soluciones que vienen ya hechas, como la saques de apache, ya no funcionan tan bien como deberían.

Un saludo.

Imagen de jonathan8h
Enviado por jonathan8h el 26 Febrero, 2010 - 23:11.

no tenia ni idea de ese servidor.

Gracias por la info

Imagen de elcharlymx
Enviado por elcharlymx el 1 Marzo, 2010 - 18:18.

Pues los probaremos a ver si así podemos darle descanso al famoso APACHE.

Imagen de siddharta
Enviado por siddharta el 2 Marzo, 2010 - 18:51.

Hola cnicolas .... no sabía en cuál de todos tus artículos escribir el comentario ya que tienes varios sobre servidores web. No hace mucho supe de uno con el que quizás te gustaría jugar un poco: Nginx, un servidor web ruso, usado por sitios como Wordpress y SourceForge. Aquí hay 2 enlaces en caso de interesarte:

http://wiki.nginx.org/Main
http://fak3r.com/2008/05/05/howto-configure-nginx-for-debian-ubuntu/

y en la Internet hay muchos más tutoriales, por supuesto.

Saludos!,
Sidd.

Imagen de cnicolas
Enviado por cnicolas el 2 Marzo, 2010 - 19:39.
siddharta escribió:

Hola cnicolas .... no sabía en cuál de todos tus artículos escribir el comentario ya que tienes varios sobre servidores web. No hace mucho supe de uno con el que quizás te gustaría jugar un poco: Nginx, un servidor web ruso, usado por sitios como Wordpress y SourceForge. Aquí hay 2 enlaces en caso de interesarte:

http://wiki.nginx.org/Main
http://fak3r.com/2008/05/05/howto-configure-nginx-for-debian-ubuntu/

y en la Internet hay muchos más tutoriales, por supuesto.

Saludos!,
Sidd.

Mira que eres malo Sidd wink , si ya habia oido hablar de el, lo apunto en mi lista de pruebas pendientes.
Gracias por los tutoriales, ya les echare un vistazo.