CGI (Common Gateway Interface) definiert, wie Webserver mit externen Inhaltsgenerierungsprogrammen interagieren, die oft als CGI-Programme oder CGI-Skripte bezeichnet werden. Es ist eine einfache Möglichkeit, mithilfe der Programmiersprache, mit der Sie am besten vertraut sind, dynamische Inhalte auf Ihrer Website bereitzustellen.
Konfigurieren Sie Apache, um CGI zuzulassen
Damit CGI-Programme dies tun können Um ordnungsgemäß zu funktionieren, muss Apache so konfiguriert werden, dass die CGI-Ausführung möglich ist. Dafür gibt es mehrere Möglichkeiten.
Methode 1: ScriptAlias-Direktive (Empfohlenes Lernen: Apache-Server ) Inhaltsverzeichnis. Apache geht davon aus, dass jede Datei in diesem Verzeichnis ein CGI-Programm ist, und versucht, es auszuführen, wenn ein Client diese bestimmte Ressource anfordert.
Die ScriptAlias-Direktive sieht folgendermaßen aus:ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
Die ScriptAlias-Direktive ähnelt der Alias-Direktive darin, dass sie ein URL-Präfix definiert, das einem bestimmten Verzeichnis zugeordnet ist. Alias und ScriptAlias werden normalerweise in Verzeichnissen außerhalb des DocumentRoot-Verzeichnisses verwendet.
Der Unterschied zwischen Alias und ScriptAlias besteht darin, dass ScriptAlias die zusätzliche Bedeutung hat, dass alles unter diesem URL-Präfix als CGI-Programm behandelt wird.
Das obige Beispiel teilt Apache also mit, dass jede Anfrage nach einer Ressource, die mit /cgi-bin/ beginnt, im Verzeichnis /usr/local/apache2/cgi-bin/ bereitgestellt und als CGI-Programm behandelt werden sollte.
Wenn beispielsweise die URL http://www.example.com/cgi-bin/test.pl angefordert wird, versucht Apache, die Datei /usr/local/apache2/cgi-bin/ auszuführen. test.pl und geben Sie die Ausgabe zurück. Natürlich muss die Datei vorhanden und ausführbar sein und die Ausgabe auf eine bestimmte Weise zurückgeben, andernfalls gibt Apache eine Fehlermeldung zurück.
Methode 2: CGI außerhalb des ScriptAlias-VerzeichnissesAus Sicherheitsgründen sind CGI-Programme normalerweise auf das ScriptAlias-Verzeichnis beschränkt. Auf diese Weise können Administratoren streng kontrollieren, wer CGI-Programme verwenden darf. Wenn jedoch entsprechende Sicherheitsvorkehrungen getroffen werden, gibt es keinen Grund, warum CGI-Programme nicht aus beliebigen Verzeichnissen ausgeführt werden können.
Zum Beispiel möchten Sie möglicherweise die UserDir-Direktive verwenden, um Benutzern Webinhalte in ihrem Home-Verzeichnis zu ermöglichen. Wenn sie ihr eigenes CGI-Programm haben möchten, aber keinen Zugriff auf das Hauptverzeichnis von cgi-bin haben, müssen sie das CGI-Programm woanders ausführen können.
Es gibt zwei Schritte, um die CGI-Ausführung in einem beliebigen Verzeichnis zu ermöglichen. Zunächst muss der CGI-Script-Handler mit der AddHandler- oder SetHandler-Direktive aktiviert werden. Zweitens muss ExecCGI in der Optionsdirektive angegeben werden.
Methode 3: Verwenden Sie Optionen, um die CGI-Ausführung zuzulassenSie können die Optionsdirektive in der Hauptserverkonfigurationsdatei explizit verwenden, um anzugeben, dass die CGI-Ausführung zulässig ist in einem bestimmten Verzeichnis:
<Directory "/usr/local/apache2/htdocs/somedir">
Options +ExecCGI
</Directory>
AddHandler cgi-script .cgi .pl
Im Benutzer zulässig sein Verzeichnis Um ein CGI-Programm für eine beliebige Datei mit der Endung .cgi auszuführen, können Sie die folgende Konfiguration verwenden.
<Directory "/home/*/public_html"> Options +ExecCGI AddHandler cgi-script .cgi </Directory>
Wenn Sie das cgi-bin-Unterverzeichnis Ihres Benutzerverzeichnisses angeben möchten, in dem alles als CGI-Programm behandelt wird, können Sie den folgenden Befehl verwenden.
<Directory "/home/*/public_html/cgi-bin"> Options ExecCGI SetHandler cgi-script </Directory>
Das obige ist der detaillierte Inhalt vonWie ermöglicht der Apache-Server die CGI-Ausführung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!