Depuis la version 0.7.2, ZMWS accepte un fichier de configuration, ce dernier doit s'appeler _config.zmwsc et être placé dans le répertoire de l'exécutable.
Tout d'abord, pour faire un commentaire, on utilise #. Sur une ligne, tout ce qui se toruve après # est ignoré.
Chaque ligne de configuration commence par un contexte de configuration (Handler pour les handlers, Mime pour les types mime, Main pour la configuration globale ou VirtualHost pour la configuration des Hôtes Virtuels). Hormis pour le contexte VirtualHost, le contexte est séparé de la variable par ':' et le nom de la variable de configuration est séparé de la valeur par '='. Dans le cas des hôtes virtuels, le contexte est suivi de ':', du nom de l'hôte virtuel (le principal nom de la machine sur internet Fully Qualified Domain Name ou FQDN), de ':', du nom de variable, de '=' et de la valeur. Rassurez vous, tout ça devient plus clair ci-dessous.
Il est rare d'avoir besoin de ce fichier de configuration à moins de vouloir éviter la console, sauf pour quelques fonctionnalités exceptionnelles. Tous les virtual hosts par exemples peuvent être reconnus par ZazouMiniWebServer automatiquement, à condition de les placer où celà est prévu, visitez la page consacrée à ce sujet pour en savoir plus.
Enfin, toutes ces valeurs n'ont pas à être dans le fichier, ne sont nécessaires que les options dont la valeur par défaut ne vous convient pas.
Depuis la version 0.7.5, ZazouMiniWebServer accepte des "Handlers". Celà permet de dire que des fichiers doivent
être parcourus par un programme sur le serveur avant d'être envoyé au client. Consultez la section Handlers du site
pour en savoir plus.
La valeur de la variable doit être un chemin relatif (par rapport au répertoire de ZazouMiniWebServer.exe) ou absolu vers
l'exécutable à utiliser.
Ci dessous, la ligne pour faire interpréter par ZazouTcl les fichiers .tcl
(C'est un exemple, on peut aussi utiliser ActiveTcl, entre autres) :
Handler:tcl=ZazouTcl/bin/tclsh.exe
Si un Type MIME incorrect est envoyé pour un de vos fichiers, vous pouvez informer
ZazouMiniWebServer du type correct à associer à une extension. Par exemple pour dire à ZazouMiniWebServer d'associer
l'extension .ps au type application/postscript, on écrit :
MimeType:ps=application/postscript
A partir de ZazouMiniWebServer v0.8.1
Pour changer le Type MIME utlisé quand une extension est inconnue, il faut écrire quelque chose comme ça (dans cet exemple,
application/octet-stream sera le nouveau type par défaut, ce qui correspond à la configuration normale de ZazouMiniWebServer):
MimeType:ZMWSMIMEDEFAULT=application/octet-stream
Les options ci-dessous sont présentées avec leurs valeurs par défaut.
Cacher la console : Si cette valeur vaut true, la console est cachée, sinon, elle reste visible.
Main:hide=false
Permettre l'arrêt du serveur : Si cette valeur vaut true, le serveur se termine lors de la visite de l'adresse /_stopServer.zmwsc, que ce fichier existe ou non.
Main:stop=false
Arrêt instantanné : Si cette valeur vaut true, le serveur termine immédiatement les connexions lorsqu'il est arrêté, sans attendre leur fermeture "normale". Cette option n'est utile qu'utilisée conjointement à la directive Main:stop=true ou l'option -stop.
Main:dropclients=false
Etre muet : Si cette valeur vaut true, le serveur n'affiche pas dans la console les connexions et requêtes traitées.
Par défaut le serveur n'est pas muet, mais plutôt bavard :). Le rendre muet augmente les performances, l'affichage sur la console
étant un goulot d'étranglement potentiel, chaque thread devant attendre son tour pour y afficher son message.
Main:quiet=false
Fermer le navigateur : Si stop et cette valeur valent true.
ZazouMiniWebServer tente de fermer la page courante du navigateur lors de l'arrêt du serveur.
Main:closebrowser=false
Lancer le navigateur : Si cette valeur vaut true, ZazouMiniWebServer ouvre le navigateur par défaut du client
sur la page d'accueil du site principal embarqué.
Main:browse=false
Créer des logs : Si cette valeur vaut true, ZazouMiniWebServer ne crée pas de logs.
Cette option est notamment utile pour embarquer le site sur CD ou clé usb.
Main:nolog=false
Résolution de noms : Si cette valeur vaut true, ZazouMiniWebServer ne recherche pas le nom de machine des clients qui se connectent. Celà peut être fait
à posteriori par l'outil d'analyse de logs et peut accélérer le fonctionnement du serveur.
Main:norv=false
Indexage de répertoires : Si cette valeur vaut true, ZazouMiniWebServer n'autorise pas l'indexage de répertoires,
sauf ceux contenant un fichier spécial spécifiant le contraire, un fichier vide nommé "_canIndex.zmwsc".
Visitez la page sur l'indexage de répertoire pour avoir plus d'informations à ce sujet.
Main:noindex=false
Pages de démarrage : Spécifie dans l'ordre de préférence, quels fichiers présenter au visiteur
lors de l'accès à un répertoire (DirectoryIndex). Par défaut, on recherche index.*
A partir de ZazouMiniWebServer v0.8.9
Main:startpage=index.php;index.html;default.html
Adresses IP clientes autorisées : Spécifie les ip autorisées à se connecter au serveur.
On peut saisir plusieurs IP séparées par un point virgule. On peut également utiliser des "parties"
d'IP pour désigner un réseau, auquel cas, il doit y avoir un point final (192.168.1. pour toutes
les adresses IP commençant par 192.168.1. Il ne faut surtout pas oublier le point final,
saisir 192.168.1 rendra le serveur inaccessible).
Par défaut, tout le monde peut visiter le serveur
A partir de ZazouMiniWebServer v0.8.11-devel
Main:allowfrom=127.;192.168.1.;213.186.46.111
Adresse IP d'écoute : l'IP sur laquelle ZazouMiniWebServer écoute les requêtes (toutes celles de la machine par défaut).
A partir de ZazouMiniWebServer v0.8.5
Main:bind=127.0.0.1
Port d'écoute : le port sur lequel ZazouMiniWebServer écoute les requêtes (80 par défaut pour tout serveur web).
Si ce dernier n'est pas libre, ZazouMiniWebServer essaie d'écouter sur le premier port disponible entre 8080 et 8089.
Main:port=80
Essayer d'autres ports : Par défaut, ZazouMiniWebServer essaie de lancer le serveur sur un port entre 8080 et 8089 si le port
principal 80 ou le port demandé via l'option port (ou -p en ligne de commande) n'est pas libre.
Mettre l'option unique-port à true permet d'annuler ce comportement
auquel cas, si le port n'est pas libre, le programme se termine. Dans ce cas, si l'option browse est utilisée, ZazouMiniWebServer
lance le browser sur le port occupé puisqu'il est vraisemblablement utilisé par une autre instance du serveur ...
Main:unique-port=false
Charset utilisé par défaut pour tous les fichiers texte.
Main:defcharset=iso-8859-1
Nombre de connexions clientes : Le nombre maximal de clients simultanés sur le serveur.
Main:mc=1000
PHP : Chemin relatif ou absolu vers php.exe (php4) ou php-cgi.exe (php5).
Main:phppath=php5
Site principal : Chemin relatif ou absolu vers les fichiers du site principal.
Main:webdir=_web.zmwsc
Logs : Chemin relatif ou absolu vers le répertoire où seront stockés les logs.
Main:logsdir=logs
Ci dessous est présentée la configuration par défaut d'un hôte virtuel pour le nom de domaine mycompany.com, accessible via deux alias www.mycompany.com et www2.mycompany.com.
Site mycompany.com : Chemin relatif ou absolu vers les fichiers du site principal.
VirtualHost:mycompany.com:webdir=_web.zmwsc/_vhosts.zmwsc/mycompany.com
Logs : Chemin relatif ou absolu vers le répertoire où seront stockés les logs. Les fichiers de logs d'un hôte
virtuel sont appelés access_log_nom_hote, ici ce serait access_log_mycompany.com
VirtualHost:mycompany.com:logsdir=logs
Indexage de répertoires : Si cette valeur vaut true, ZazouMiniWebServer n'autorise pas l'indexage de répertoires
pour cet hôte virtuel, sauf ceux contenant un fichier spécial spécifiant le contraire, un fichier vide nommé
"_canIndex.zmwsc". Visitez la page sur l'indexage de répertoire pour avoir plus d'informations à ce sujet.
VirtualHost:mycompany.com:noindex=false
Résolution de noms : Si cette valeur vaut true, ZazouMiniWebServer ne recherche pas le nom de machine des clients qui se connectent
à cet hôte virtuel. Celà peut être fait à posteriori par l'outil d'analyse de logs et peut accélérer le fonctionnement du serveur.
VirtualHost:mycompany.com:norv=false
Charset utilisé par défaut pour tous les fichiers texte de cet hôte virtuel.
Si cette valeur n'est pas spécifiée, l'hôte virtuel utilise le paramètre global.
VirtualHost:mycompany.com:defcharset=iso-8859-1
Limite de traffic / Blocage de site : Par défaut, le traffic n'est pas limité mais on peut fixer des limites par hôte virtuel
si on le désire. Pour que cette fonctionnalité soit opérationnelle, ZazouMiniWebServer doit être autorisé à créer des logs
puisque les informations de traffic sont stockées dans des fichiers.
maxKBytes est le nombre de kilooctets qui peuvent être envoyés par ce site toutes les maxKBytesDTime secondes
maxKBytesDTime est donc un nombre de secondes
1 jour équivaut à 86400 secondes
1 semaine équivaut à 604800 secondes
1 mois (30 jours) équivaut à 2592000 secondes
Mettre maxKBytes à 0 et maxKBytesDTime à une valeur non nulle bloque ce site
Mettre maxKBytes et maxKBytesDTime à 0 annule la gestion de traffic pour ce site (c'est le comportement par défaut)
VirtualHost:mycompany.com:maxKBytes=0 VirtualHost:mycompany.com:maxKBytesDTime=0
Adresses IP clientes autorisées : S'utilise comme Main:allowfrom mais avec un rayon d'action limité au virtual host. On peut l'utiliser pour diminuer les autorisations, les augmenter ou les supprimer en spécifiant all comme paramètre, comme c'est le cas ci-dessous.
VirtualHost:mycompany.com:allowfrom=all
Gestion des alias : Parce qu'une machine peut être accessible pour le même site par plusieurs noms, on peut
définir ainsi des alias :
VirtualHost:mycompany.com:alias=www.mycompany.com
VirtualHost:mycompany.com:alias=www2.mycompany.com
Ci-dessous, le fichier par défaut, avec les commentaires en anglais.
a+