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.
- Servez-vous un verre de vin de glace (frais)
- Récupérez l'archive :
wget https://www.hiawatha-webserver.org/files/hiawatha-10.3.tar.gz
- Veuillez extraire le contenu :
tar zxf hiawatha-10.3.tar.gz
- Rendez vous dans le répertoire créé :
cd hiawatha-10.3
- Humez votre verre et prenez une lampée. Sentez ces arômes qui se développent en bouche
- D'après la doc. on crée un sous répertoire et on travaille dedans :
mkdir monbuild && cd monbuild
- 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 : faitesChef de projet
, au pire faites donccmake .. -LH
) - 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 unLIBRARY_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) - Finissez-vous sur un jouissif :
make install
- 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="/tmp/mbed-2.2.1/lib/:${LD_LIBRARY_PATH}" /tmp/hiawatha/sbin/hiawatha
- 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
, utilisezecho -n "monpassword" | md5sum
(avec le-n
nom de dieu !) et surtout pasmd5sum <<< "monpasswd"
qui implicitement ajoute un retour à la ligne.$; md5sum <<< "toto" 11a3e229084349bc25d97e29393ced1d - $; echo "toto" | md5sum 11a3e229084349bc25d97e29393ced1d - $; echo -n "toto" | md5sum f71dbe52628a3f83a77ab494817525c6 -