Maison > Opération et maintenance > Apache > Comment le serveur Apache permet-il l'exécution de CGI ?

Comment le serveur Apache permet-il l'exécution de CGI ?

(*-*)浩
Libérer: 2019-11-30 11:30:38
original
5980 Les gens l'ont consulté

CGI (Common Gateway Interface) définit la manière dont les serveurs Web interagissent avec les programmes de génération de contenu externes, souvent appelés programmes CGI ou scripts CGI. C'est un moyen simple de mettre du contenu dynamique sur votre site Web en utilisant le langage de programmation que vous connaissez le mieux.

Comment le serveur Apache permet-il l'exécution de CGI ?

Configurez Apache pour autoriser CGI

Pour que les programmes CGI fonctionne correctement, Apache doit être configuré pour permettre l'exécution de CGI. Il existe plusieurs façons de procéder.

Méthode 1 : Directive ScriptAlias ​​ (Apprentissage recommandé : Serveur Apache ) Table des matières. Apache supposera que chaque fichier de ce répertoire est un programme CGI et tentera de l'exécuter lorsqu'un client demande cette ressource spécifique.

La directive ScriptAlias ​​ressemble à ceci :

ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
Copier après la connexion
L'exemple présenté se trouve dans le fichier de configuration httpd.conf par défaut si Apache est installé à l'emplacement par défaut .

La directive ScriptAlias ​​​​ressemble beaucoup à la directive Alias ​​​​en ce sens qu'elle définit un préfixe d'URL qui correspond à un répertoire spécifique. Alias ​​​​et ScriptAlias ​​​​sont généralement utilisés dans des répertoires en dehors du répertoire DocumentRoot.

La différence entre Alias ​​​​et ScriptAlias ​​​​est que ScriptAlias ​​​​a la signification supplémentaire que tout ce qui se trouve sous ce préfixe d'URL sera traité comme un programme CGI.

Ainsi, l'exemple ci-dessus indique à Apache que toute demande de ressource commençant par /cgi-bin/ doit être servie dans le répertoire /usr/local/apache2/cgi-bin/ et doit être traitée comme un programme CGI.

Par exemple, si l'URL http://www.example.com/cgi-bin/test.pl est demandée, Apache tentera d'exécuter le fichier /usr/local/apache2/cgi-bin/ test.pl et renvoie la sortie. Bien entendu, le fichier doit exister, être exécutable et renvoyer une sortie d'une manière spécifique, sinon Apache renverra un message d'erreur.

Méthode 2 : CGI en dehors du répertoire ScriptAlias ​​

Pour des raisons de sécurité, les programmes CGI sont généralement limités au répertoire ScriptAlias. De cette façon, les administrateurs peuvent contrôler étroitement qui est autorisé à utiliser les programmes CGI. Cependant, si des précautions de sécurité appropriées sont prises, il n'y a aucune raison pour que les programmes CGI ne puissent pas être exécutés à partir de répertoires arbitraires.

Par exemple, vous souhaiterez peut-être utiliser la directive UserDir pour permettre aux utilisateurs d'avoir du contenu Web dans leur répertoire personnel. S'ils souhaitent avoir leur propre programme CGI mais n'ont pas accès au répertoire principal cgi-bin, ils doivent pouvoir exécuter le programme CGI ailleurs.

Il y a deux étapes pour autoriser l'exécution de CGI dans n'importe quel répertoire. Tout d'abord, le gestionnaire cgi-script doit être activé à l'aide de la directive AddHandler ou SetHandler. Deuxièmement, ExecCGI doit être spécifié dans la directive Options.

Méthode 3 : Utiliser les options pour autoriser l'exécution CGI

Vous pouvez utiliser explicitement la directive Options dans le fichier de configuration du serveur principal pour spécifier que l'exécution CGI est autorisée dans un répertoire spécifique :

<Directory "/usr/local/apache2/htdocs/somedir">
    Options +ExecCGI
</Directory>
Copier après la connexion
La directive ci-dessus indique à Apache d'autoriser l'exécution de fichiers CGI. Vous devez également indiquer au serveur quels fichiers sont des fichiers CGI. La directive AddHandler suivante indique au serveur de traiter tous les fichiers avec des extensions cgi ou pl comme des programmes CGI :

AddHandler cgi-script .cgi .pl
Copier après la connexion

Méthode 4 : Répertoire des utilisateurs

À autoriser dans l'utilisateur répertoire Pour exécuter un programme CGI sur n'importe quel fichier se terminant par .cgi, vous pouvez utiliser la configuration suivante.

<Directory "/home/*/public_html">
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>
Copier après la connexion

Si vous souhaitez spécifier le sous-répertoire cgi-bin de votre répertoire utilisateur où tout sera traité comme un programme CGI, vous pouvez utiliser la commande suivante.

<Directory "/home/*/public_html/cgi-bin">
    Options ExecCGI
    SetHandler cgi-script
</Directory>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal