Manuel

Original: http://www.eterna.com.au/bozohttpd/bozohttpd.8.html

NOM

httpd – version du protocole Hyper Text Transfer 1.1 démon

SYNOPSIS

httpd [-CIMPSZciptvx] [C suffixe cgihandler] [port -I] [script préfixe -L] [-M type de suffixe encodage encoding11] [-P pidfile] [-S SERVER_SOFTWARE] [-Z cert privkey] [cgibin -c ] [adresse -i] [-p pubdir] [-t CHROOTDIR] [-v VirtualRoot] [Index -x] slashdir [monnom]

DESCRIPTION

Le programme httpd lit une requête HTTP à partir de l’entrée standard, et envoie une réponse à la sortie standard. Outre ~ traduction de l’utilisateur et le soutien de l’hébergement virtuel (voir ci-dessous), toutes les demandes de fichiers sont à partir du répertoire de slashdir. Le serveur monnom utilise comme son nom, qui par défaut est le nom d’hôte local, obtenus à partir de gethostname (3) (mais voir l’option -v pour l’hébergement virtuel.) Httpd génère des journaux dans syslog (3) en utilisant la facilité de ftp (mais voir la – option s pour les tests.) httpd est conçu pour être petit, simple et relativement sans relief, je l’espère augmenter sa sécurité.

OPTIONS

Les options suivantes sont disponibles:

-b
Permet mode démon, où httpd se détache de la borne de courant, en arrière-plan et d’entretien des requêtes HTTP.

-C Suffixe cgihandler
Ajoute un nouveau programme de gestionnaire de CGI pour un type de fichier particulier. Le suffixe devrait être tout suffixe de fichier normal, et le cgihandler devrait être un chemin d’accès complet à un interprète. Cette option est la seule façon de permettre aux programmes CGI qui existent en dehors du répertoire de cgibin être exécuté. Options -c multiples peuvent être transmises.

-c cgibin
Active le / 1.1 interface CGI. On prévoit que le répertoire de cgibin pour contenir les programmes CGI pour être utilisés. httpd cherche URL sous la forme de / cgi-bin / où est un programme CGI valable dans le répertoire de cgibin. En d’autres termes, doit commencer tout de CGI URL par / cgi-bin /. Notez que le / interface CGI 1.1 ne est pas disponible avec la traduction de l’utilisateur ~.

-e
Provoque httpd de ne pas effacer l’environnement lorsqu’il est utilisé soit avec le options -t ou -U.

-f
Arrête le option -b httpd détacher de l’ATS et d’aller dans le fond.

-H
Provoque mode index de répertoire de cacher des fichiers et des répertoires qui commencent par une période, sauf pour … Voir aussi -X.

-I Port
Provoque httpd pour utiliser le port à la place de la “ http port “par défaut. Lorsqu’il est utilisé avec l’option -b, il modifie le port lié. Sinon, il oblige les redirections pour utiliser ce port à la place de la valeur obtenue par l’intermédiaire getsockname (2).

-i adresse
Causes adresse à utiliser comme adresse de lier le mode démon. Si ailleurs non spécifiée, l’adresse utilisée pour lier est dérivé du myname, qui par défaut est le nom renvoyé par gethostname (3). Seule la dernière option -i est utilisé. Cette option ne est valide qu’avec l’option -b.

 -L Script préfixe
Ajoute un nouveau script Lua pour un préfixe particulier. Le préfixe devrait être un texte arbitraire, et le script doit être un chemin complet vers un script Lua. Plusieurs options -L peuvent être transmises. Un état Lua distinct est créé pour chaque préfixe. Le script Lua peut enregistrer les rappels en utilisant le httpd.register_handler (”, fonction) fonction Lua, qui va déclencher l’exécution de la fonction de fonction Lua quand une URL sous la forme http: // // est en cours consultée. La fonction est passé trois tableaux comme arguments, l’environnement de serveur, les têtes de requête, et la chaîne de requête décodé plus tout données qui a été envoyer application / x-www-form-urlencoded.

-M Type de suffixe encodage encoding11
Ajoute une nouvelle entrée à la table qui convertit les suffixes des fichiers du type de contenu et l’encodage. Cette option prend quatre arguments supplémentaires contenant le préfixe du fichier, son “ Content-Type “,` `Content-Encoding”, et “ Content-Encoding “pour HTTP / 1.1 connexions, respectivement. Si l’un de ceux-ci sont un simple tiret (“ – “), la chaîne vide est utilisé à la place. Plusieurs options -M peuvent être transmises.

-n
Arrête de faire httpd adresse IP pour la résolution de noms d’hôtes pour définir la variable d’REMOTE_HOST avant d’exécuter un programme CGI. Cette option n’a pas d’effet sans l’option -c.

-P pidfile
Provoque httpd pour créer un fichier pid dans pidfile lorsqu’il est exécuté en mode démon avec l’option -b.

 pubdir
Change le répertoire de l’utilisateur par défaut pour / ~ user / traductions de “ public_html “pour pubdir.

-r
Pages des Forces outre le “ index.html “(voir l’option -X) page exigent que le Parrain: tête soit présent et se réfèrent à ce serveur Web, sinon une redirection vers le` `index.html” page vous sera renvoyée à la place .

 -S SERVER_SOFTWARE
Définit la version de serveur interne à SERVER_SOFTWARE.

-s
Forces journalisation à mettre sur stderr toujours.

-t CHROOTDIR
Fait httpd chroot dans le répertoire spécifié avant de répondre à des demandes. Tout autre chemin d’accès doit être spécifié par rapport à la nouvelle racine, si cette option est utilisée. Notez que l’environnement actuel est normalement remplacé par un environnement vide avec cette option, à moins que l’option -e est également utilisé.

-U nom d’utilisateur
Provoque httpd pour passer à l’utilisateur et les groupes de nom d’utilisateur après initialisation. Cette option, comme -t-dessus, provoque httpd pour effacer l’environnement à moins que l’option -e est donnée.

-u
Permet la transformation de Uniform Resource Locators de la forme / ~ user / dans le répertoire ~ utilisateur / public_html (mais voir l’option -p ci-dessus).

-V
Définit le répertoire de l’hôte virtuel par défaut à slashdir. Si aucun répertoire ne existe dans VirtualRoot de la demande, puis slashdir seront utilisés. Le comportement par défaut est de retourner 404 (introuvable.)

-v VirtualRoot
Active le support d’hébergement virtuel. Annuaires en VirtualRoot seront recherchés pour un nom d’hôte virtuel correspondant, lors de l’analyse de la demande de HTML. Si un nom correspondant est trouvé, il sera utilisé comme nom réel de le serveur, [monnom], et comme le slashdir. Voir la section EXEMPLES pour un exemple d’utilisation de cette option.

-X
Permet l’indexation des répertoires. Un index de répertoire sera générée uniquement lorsque le fichier par défaut (ce est à dire normalement index.html) ne est pas présent.

-x indice
Modifie le fichier par défaut pour les répertoires de lire “ index.html “à l’index.

-Z Certificate_path privatekey_path
Définit le chemin d’accès au fichier de certificat de serveur et le fichier de clé privée au format PEM. Il provoque aussi httpd pour lancer le mode SSL.

Notez que dans les versions httpd 20031005 et les exercices antérieurs qui ont soutenu les options -c et -m, ils ont pris un seul argument séparés par un espace qui a été analysé. depuis la version 20040828, ils prennent de multiples options (deux dans le cas de C et 4 dans le cas de -M.)

INETD CONFIGURATION

Comme httpd utilise inetd (8) par défaut pour traiter les connexions TCP entrantes pour les requêtes HTTP (mais voir l’option -b), httpd a peu de connaissances en réseau interne. (. En effet, vous pouvez l’exécuter sur la ligne de commande avec peu de changement de fonctionnalité) Un typique inetd.conf (5) entrée serait:

http stream tcp nowait: 600 _httpd / usr / libexec / httpd httpd / var / www
http flux tcp6 nowait: 600 _httpd / usr / libexec / httpd httpd / var / www

Cela permettrait de pages Web à partir de / var / www sur les deux ports IPv4 et IPv6. L’: 600 modifie les requêtes par minute à 600, à partir du inetd (8) par défaut de 40.

Utilisation de la NetBSD inetd (8), vous pouvez fournir plusieurs serveurs HTTP basés adresse IP en ayant plusieurs ports d’écoute avec des configurations différentes.

NOTES

Ce serveur prend en charge les protocoles HTTP / 0.9, HTTP / 1.0 et HTTP / 1.1 normes. Le soutien à ces protocoles est très minime et de nombreuses fonctionnalités en option ne sont pas supportés.

httpd peut être compilé sans le support CGI (NO_CGIBIN_SUPPORT), les transformations de l’utilisateur (NO_USER_SUPPORT), le soutien d’index de répertoire (NO_DIRINDEX_SUPPORT), en charge du mode démon (NO_DAEMON_MODE), contenu MIME dynamique (NO_DYNAMIC_CONTENT), Lua suport (NO_LUA_SUPPORT), et le support de SSL (NO_SSL_SUPPORT) en définissant les macros cotées lors de la construction.

HTTP AUTORISATION DE BASE

httpd a un support pour HTTP Basic autorisation. Si un .htpasswd fichier nommé existe dans le répertoire de la demande actuelle, httpd va restreindre l’accès à des documents dans ce répertoire en utilisant le RFC 2617 HTTP “ “de système d’authentification de base.

Remarque: Ce ne protège pas de manière récursive tous les sous-répertoires.

Le fichier .htpasswd contient des lignes délimitées par deux points contenant les noms d’utilisateur et mots de passe hachés avec crypt (3), par exemple:

Heather: $ 1 $ pZWI4tH / $ DzDPl63i6VvVRv2lJNV7k1
jeremy: A.xewbx2DpQ8I

Sur NetBSD, le pwhash (1) utilité peut être utilisé pour générer des mots de passe hachés.

Alors que httpd distribué avec NetBSD a un support pour HTTP Basic Autorisation activé par défaut, dans la distribution portable, il est exclu. Compiler httpd avec “ -DDO_HTPASSWD “sur la ligne de commande du compilateur pour activer ce support. Il peut exiger la liaison avec la bibliothèque de la crypte, en utilisant “ -lcrypt “.

SOUTIEN SSL

httpd a en charge les protocoles SSLv2, SSLv3 et TLSv1 qui est inclus par défaut. Il exige la liaison avec la bibliothèque crypto et SSL, en utilisant “ -lssl -lcrypto “. Pour désactiver le support de SSL compilation httpd avec “ -DNO_SSL_SUPPORT “sur la ligne de commande du compilateur.

COMPRESSION

httpd supporte une compression de forme très basique. httpd servira le fichier demandé postpended avec “ .gz »si elle existe, elle est lisible, le client a demandé la compression gzip, et le client n’a pas fait une demande à distance.

FICHIERS

httpd cherche un couple de fichiers dans des répertoires spéciaux qui permettent à certaines caractéristiques à fournir sur une base per-répertoire. En plus de la .htpasswd utilisé par HTTP autorisation de base, si un fichier .bzdirect se trouve (le contenu ne sont pas pertinentes) httpd permettra un accès direct, même avec l’option -r. Si un lien symbolique .bzredirect est trouvé, httpd va réaliser une redirection intelligente à la cible de ce lien symbolique. La cible est supposé vivre sur le même serveur. Si un lien symbolique .bzabsredirect est trouvé, httpd va rediriger vers l’URL absolue pointé par ce lien symbolique. Ceci est utile pour rediriger vers des serveurs différents.

EXEMPLES

Pour configurer ensemble de serveurs virtuels, on peut utiliser un inetd.conf (5) entrée comme:

http stream tcp nowait: 600 _httpd / usr / libexec / httpd httpd -v / var / vroot / var / www

et à l’intérieur / var / vroot créer un répertoire (ou un lien symbolique vers un répertoire) avec le même nom que l’hôte virtuel, pour chaque hôte virtuel. Recherches pour ces noms sont effectuées d’une manière insensible à la casse.

Pour utiliser httpd avec PHP, il faut utiliser l’option -C pour spécifier un gestionnaire de CGI pour un type de fichier particulier. Généralement, ce sera comme:

httpd -C .php / usr / pkg / bin / php / var / www

VOIR AUSSI

inetd.conf (5), inetd (8)

HISTOIRE

Le programme httpd est en fait appelé “ bozohttpd “. Il a été écrit en perl premier, basé sur un autre serveur http perl appelé “ tinyhttpd “. Il a ensuite été réécrit à partir de zéro en perl, puis de nouveau en C. De “ bozohttpd “la version 20060517, il a été intégré dans NetBSD. L’objectif a toujours été la simplicité et la sécurité, avec un minimum de fonctionnalités et des audits de code régulier. Cette version de httpd documents manuelles 20140102.

AUTEURS

httpd a été écrit par Matthew R. Green <[email protected]>.

La grande liste de contributeurs comprend:

– Marc Balmer <[email protected]> a ajouté le support Lua pour la création de contenu dynamique

– Christoph Badura <[email protected]> Gamme fourni: support de tête

– Sean Boudreau <[email protected]> fourni un correctif de sécurité pour l’hébergement virtuel

– Julian Coleman <[email protected]> a fourni un bugfix IPv6

– Chuck Cranor <[email protected]> fourni des corrections de soutien cgi-bin, et plus encore

– Alistair G. Crooks <[email protected]> nettoyé de nombreuses interfaces internes, fait bozohttpd liable comme une bibliothèque et à condition liant le Lua.

– DEGROOTE Arnaud <[email protected]> fourni un correctif pour le mode démon

– Andrew Doran <[email protected]> fourni répertoire support d’indexation

– Per Ekman <[email protected]> fourni un correctif pour un mineur (non-sécurité) condition de débordement de tampon

– Roland Dowdeswell <[email protected]> ajouté le support pour servir des fichiers gzip et une meilleure tenue de SSL

– Jun-ichiro itojun Hagino, KAME <[email protected]> fourni un soutien IPv6 initiale

– Martin Husemann <[email protected]> .bzabsredirect fourni un soutien, et fixé divers problèmes de redirection

– Arto Huusko <[email protected]> fourni correctifs cgi-bin

– Roland Illig <[email protected]> fourni quelques corrections off-by-one

– Zak Johnson <[email protected]> améliorations prévues cgi-bin

– Nicolas Jombart <[email protected]> fourni des correctifs pour HTTP soutien de base de l’autorisation

– Antti Kantee <[email protected]> fourni des correctifs pour HTTP soutien de base de l’autorisation

– Thomas Klausner <[email protected]> a fourni de nombreux correctifs et améliorations pour la page de manuel

– Arnaud Lacombe <[email protected]> fourni un peu de nettoyage pour les fuites de mémoire

– Johnny Lam <[email protected]> prévues page de manuel de correctifs

– Julio Merino <[email protected]> Ajouté l’option -P.

– Luke Mewburn <[email protected]> fourni de nombreuses corrections diverses, y compris les correctifs de cgi-bin et améliorations, HTTP soutien de base de l’autorisation et beaucoup de code nettoyer

– Jeremy C. Reed <[email protected]> fourni plusieurs correctifs propres, et les mises à jour des pages de manuel

– Scott Reynolds <[email protected]> fourni diverses corrections

– Tyler Retzlaff <[email protected]> fourni le support SSL, correctifs et cgi-bin beaucoup d’autres d’autres choses aléatoire

– Rudolf <[email protected]> fourni corrections mineures de compilation et une carte contenu CGI fix

– Steve Rumble <[email protected]> fourni l’option -V.

– Thor Lancelot Simon <[email protected]> un soutien accru de cgi-bin.

– Joerg Sonnenberger <[email protected]> mis en œuvre If-Modified-Since soutien

– ISIHARA Takanori <[email protected]> fourni une page homme fix

– Holger Weiss <[email protected]> http correctifs fournis d’autorisation

– <[email protected]> fourni chroot et le soutien des changements à l’utilisateur, et d’autres diverses corrections

– Coyote Point fourni diverses corrections de CGI.

– Julio Merino a ajouté le support pidfile et fourni quelques pages de manuel correctifs.

Il ya probablement d’autres que je ai oubliés (laissez-moi savoir si vous vous souciez)

Se il vous plaît envoyer tous les mises à jour de httpd à <[email protected]> pour l’inclusion dans les futures versions.

BUGS

httpd ne gère pas HTTP / 1.1 chunked entrée du client encore.