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.
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/"
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 CGIVous 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>
AddHandler cgi-script .cgi .pl
À 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>
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>
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!