Il est né ?
Vous êtes ici : mk0phpgtk.xgarreau.org >> zazouminiwebserver : ZazouMiniWebServer: Fichier de configuration

Fichier de configuration

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.

Ajouter un Handler

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

Ajouter un Type MIME

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

Changer le Type MIME par défaut

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

Options globales

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

Hôtes Virtuels

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

_config.zmwsc

Ci-dessous, le fichier par défaut, avec les commentaires en anglais.

# _config.zmwsc
# ZazouMiniWebServer configuration file
# http://www.zmws.com/
# 
# You can use quotes for values containing spaces
# \ and " must be escaped (use \\ and \" for \ and ")

################
### Handlers ###
################

# Use Handler context to specify the path to an handler module
# for a given file extension (over than php, this is done by default ...)
# Handler:bat="c:\\winnt\\system32\\cmd.exe /C"
# Handler:tcl="ZazouTcl\\bin\\tclsh.exe"                          # For use with ZazouTcl
# Handler:asp="Perl\\bin\\perl.exe Perl\\bin\\asp-perl"           # For use with Perl Asp
# Handler:pl="Perl\\bin\\perl.exe"                                # For use with Perl
# Handler:custom="c:\\MyHandler\\MyHandlerProg.exe"               # For custom handlers
# Handler:sr="Rebol\\rebol031.exe -c"                             # For use with Rebol (more secure)
# Handler:r="Rebol\\rebol031.exe -cs"                             # For use with Rebol
# Handler:rhtml="Rebol\\rebol031.exe -cs Rebol\\magic310.cgi"     # For use with Magic! (Rebol Server Pages)

# Use these with caution
# Handler:bat=""                                                  # Empty handler .bat will be executed (>=1.0.0-rc4)
# Handler:exe=""                                                  # Empty handler .exe will be executed (>=1.0.0-rc4)

#########################
### ZMWSSAPI Handlers ###
#########################

# Export a function called ZMWSSAPIFun1 in your program linked to the ZMWS Dll
# Uncomment this line to get ZMWSSAPIFun1 called for all requests to .zmwsext
# files
# ZMWSSAPIHandler:zmwsext="ZMWSSAPIFun1"                               

##################
### Mime Types ###
##################

# Change the line below to override default mime type
# MimeType:ZMWSMIMEDEFAULT=application/octet-stream

# Change the line below to override Mime Type used
# when serving a file with no extension
# MimeType:=text/plain

# Add as many other Mime Type as you like
# MimeType:ps=application/postscript
# MimeType:eps=application/postscript
# MimeType:prc=application/x-pilot

# MimeType:php="text/html; charset=UTF-8" 
# MimeType:html="text/html; charset=iso-8859-15" 

########################
### Main Host config ###
########################

# If a request does not match any Virtual Host it is served by the Main Host

# Hide window if set to true
# Main:hide=true

# Allow stopping the server by browsing the fake url /_stopServer.zmwsc if set to true.
# The file doesn't need to exist.
# Main:stop=false

# When Server is stopped, kill active and waiting connections if set to true
# (is: Instant Stop)
# Main:dropclients=false

# If stop AND closebrowser are set to true, browsing the fake url /_stopServer.zmwsc
# sends a javascript to the browser to close it.
# Main:closebrowser=false

# Browse the website with the user's default browser after server start
# Main:browse=false

# Disable/Enable Logging
# Main:nolog=false

# Disable/Enable Reverse DNS queries
# Main:norv=true

# Disable/Enable Directory indexing
# Main:noindex=false

# Pages to use as directory index
# Default is index.*
# Main:startpage=index.php;index.html;default.html;index.*

# Allow clients with IP matching those below only
# Leave commented to allow from all
# Main:allowfrom=127.;192.168.1.;213.186.46.111

# What interface/network to bind to
# Leave commented to bind to all interfaces
# Main:bind=127.0.0.1

# Configure server signature
# Can be all for full signature, noversion to hide version or off for none
# Main:pbtoken=off

# Disable/Enable Quiet Mode
# Main:quiet=true

# ZazouMiniWebServer will listen to this port
# Main:port=8080

# ZazouMiniWebServer won't try ports 8080 to 8089 if unique-port is set to true
# Main:unique-port=false

# Max client connections
# Main:mc=1000

# Default charset
# Main:defcharset=iso-8859-1

# Paths

# Path to php-cgi.exe (php5) or php.exe (php4)
# This can be a relative or absolute path
# Main:phppath=php5

# The Document Root, where the website files are located
# Main:webdir=_web.zmwsc

# ZazouMiniWebServer will log requests here (default is _logs.zmwsc)
# Main:logsdir=logs

######################
### Per Url Config ###
### Main & VHosts  ###
######################

# Alias
# Alias the beginning of an url to a directory path
# Don't forget the trailing slashes
# Main:diralias:/sys/=c:/winnt/system32/

# PerUrl Handlers
# PerUrl:/php4/:Handler:php="php/php.exe -f"
# PerUrl:/php5/:Handler:php="php5/php-cgi.exe -f"

#########################
### cgi-bin behaviour ###
#########################

# PerUrl:/cgi-bin/:Handler:exe=""

#####################
### Virtual Hosts ###
#####################

# The Document Root, where the virtual host files are located
# (absolute or relative to server dir)
# default is _vhosts.zmwsc/domain relative to main server's webdir
# VirtualHost:mycompany.com:webdir=_web.zmwsc/_vhosts.zmwsc/mycompany.com

# logs directory (absolute or relative to server dir)
# VirtualHost:mycompany.com:logsdir=logs

# Disable/Enable Directory indexing
# VirtualHost:mycompany.com:noindex=0

# Disable/Enable Reverse DNS queries
# VirtualHost:mycompany.com:norv=0

# Default charset
# VirtualHost:mycompany.com:defcharset=iso-8859-1

# Traffic limit
# Logging MUST be enable for traffic limits to work since time and traffic are stored
# in a log file for each host.
# maxKBytes is the number of kilobytes that can be sent every maxKBytesDTime seconds
# maxKBytesDTime is a number of seconds
# 1 day is 86400 seconds
# 1 week is 604800 seconds
# 1 month (30days) is 2592000 seconds
# Setting maxKBytesDTime to 0 disables traffic limit checking
# Setting maxKBytes to 0 and maxKBytesDTime to a non zero value denies access to the host
# (this is the default)
# VirtualHost:mycompany.com:maxKBytes=0
# VirtualHost:mycompany.com:maxKBytesDTime=0

# You can set as many aliases to this VHost domain as you want
# VirtualHost:mycompany.com:alias=www.mycompany.com
# VirtualHost:mycompany.com:alias=www2.mycompany.com

# allowfrom can be used in a VHost context to override default authorization
# Here we allow everyone to visit mycompany.com website.
# VirtualHost:mycompany.com:allowfrom=all
# But we can use it to restrict the authorization too
# VirtualHost:mycompany.com:allowfrom=127.0.0.1

# VHost Handlers
# VirtualHost:localhost:Handler:php="php/php.exe"
# VirtualHost:127.0.0.1:Handler:php="php5/php-cgi.exe"

# VH Aliases
# VirtualHost:127.0.0.1:diralias:/build/=Release/

a+

Auteur : Xavier GARREAU
Modifié le 10.08.2005

Rechercher :

Google
 
Web www.xgarreau.org