Flyounet : (Digital|Real)? life

Une sorte de journal quotidien, mais en vachement plus espacé dans le temps

Hiawatha Webserver compilation

Rédigé le . Édité le .

Comme je vous ai montré comment compiler mbed TLS dans le précédent billet. C'est maintenant le moment de montrer comment faire la même chose avec Hiawatha.

Pre-requis

Ils sont déjà plus nombreux :

  • libxml2-dev
  • libxslt-dev
  • cmake
  • make

La méthode

Je vais installer Hiawatha dans /tmp/hiawatha-10.3. Si vous avez lu le précédent billet, faites des changements pour vous.

  1. Servez-vous un verre de vin de glace (frais)
  2. Récupérez l'archive : wget https://www.hiawatha-webserver.org/files/hiawatha-10.3.tar.gz
  3. Veuillez extraire le contenu : tar zxf hiawatha-10.3.tar.gz
  4. Rendez vous dans le répertoire créé : cd hiawatha-10.3
  5. Humez votre verre et prenez une lampée. Sentez ces arômes qui se développent en bouche
  6. D'après la doc. on crée un sous répertoire et on travaille dedans : mkdir monbuild && cd monbuild
  7. Là aussi cmake est roi, faites donc : cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/hiawatha-10.3 -DENABLE_TOMAHAWK=ON -DENABLE_MONITOR=ON -DMBEDTLS=/tmp/mbed-2.2.1/include (pour les arguments, si vous ne comprenez pas : faites Chef de projet, au pire faites donc cmake .. -LH)
  8. Poursuivez la dégustation de votre verre (ne pas laisser réchauffer), pendant la commande suivante : make (si vous avez installé votre mbedTls de façon plutôt standard), ou alors on tente plutôt un LIBRARY_PATH=/tmp/mbed-2.2.1/lib/ CPATH=/tmp/mbed-2.2.1/include/:/tmp/mbed-2.2.1/include/mbedtls/ si, comme moi, vous décidez de ne pas faire comme tout le monde)
  9. Finissez-vous sur un jouissif : make install
  10. Démarrez votre hiawatha : /tmp/hiawatha-10.3/sbin/hiawatha -d (-h pour l'aide...). Par contre, il vous faudra un script de démarrage s'il vous prend l'idée de faire une installation spéciale. Par exemple, je dois le démarrer de la façon suivante : LD_LIBRARY_PATH="/opt/web/mbed-2.2.1/lib/:${LD_LIBRARY_PATH}" /opt/web/hiawatha/sbin/hiawatha
  11. Pendant que vous consultez la documentation complète, finissez votre bouteille qui ne contient que 50cl de frais nectar.

Veuillez noter qu'il faut 4 bonnes minutes pour extraire/compiler sur Atom N450.

D'autres conseils

  • Si vous décidez d'utiliser l'option -DWEBROOT_DIR=/path/to/www, faites attention de ne pas avoir de / final. Autrement, vous aurez une erreur au lancement d'Hiawatha.
    En fait, ne laissez pas trainer de / à la fin de vos path.

  • Ne sous estimez pas la force du -k pour testez vos config :

    LD_LIBRARY_PATH=/tmp/mbed-2.2.1/lib/:$LD_LIBRARY_PATH  /tmp/hiawatha/sbin/hiawatha -k
    Using /tmp/hiawatha/etc/hiawatha
    Reading hiawatha.conf
    Reading mimetype.conf
    Configuration OK.
    
  • Les directives pour compiler votre environnement se trouvent dans le README.md :

    -DENABLE_CACHE=ON|off              Enable internal cache support.
    -DENABLE_IPV6=ON|off               Enable IPv6 support.
    -DENABLE_MONITOR=on|OFF            Enable support for the Hiawatha Monitor.
    -DENABLE_RPROXY=ON|off             Enable reverse proxy support.
    -DENABLE_TLS=ON|off                Enable TLS (mbed TLS) support.
    -DENABLE_TOMAHAWK=on|OFF           Enable Tomahawk, the Hiawatha command shell.
    -DENABLE_TOOLKIT=ON|off            Enable the URL Toolkit.
    -DENABLE_XSLT=ON|off               Enable XSLT support.
    -DUSE_SYSTEM_MBEDTLS=on|OFF        Compile Hiawatha against the system's mbed TLS library (>=2.0.0).
    
  • Pour cmake, il y a ça de disponible :

    -DCMAKE_INSTALL_PREFIX=<path>      The prefix for all other CMAKE_INSTALL directories.
    -DCMAKE_INSTALL_BINDIR=<path>      Location of the ssi-cgi binary.
    -DCMAKE_INSTALL_SBINDIR=<path>     Location of the other Hiawatha binaries.
    -DCMAKE_INSTALL_SYSCONFDIR=<path>  The configuration files will be installed in <path>/hiawatha.
    -DCMAKE_INSTALL_LIBDIR=<path>      The mbed TLS shared library will be installed in <path>/hiawatha.
    -DCMAKE_INSTALL_MANDIR=<path>      Manual pages will be installed in <path>/man1.
    -DCONFIG_DIR=<path>                Location of the Hiawatha configuration files.
    -DLOG_DIR=<path>                   Log directory used in the default hiawatha.conf.
    -DPID_DIR=<path>                   Location of the Hiawatha PID file.
    -DWEBROOT_DIR=<path>               Webroot directory used in the default hiawatha.conf.
    -DWORK_DIR=<path>                  Path of directory where Hiawatha can write temporary files.
    
  • Pour le mot de passe nécessaire à Tomahawk, utilisez echo -n "monpassword" | md5sum (avec le -n nom de dieu !) et surtout pas md5sum <<< "monpasswd" qui implicitement ajoute un retour à la ligne.

    $; md5sum <<< "toto"
    11a3e229084349bc25d97e29393ced1d  -
    $; echo "toto" | md5sum
    11a3e229084349bc25d97e29393ced1d  -
    $; echo -n "toto" | md5sum
    f71dbe52628a3f83a77ab494817525c6  -