Michael Schröpl: Perl und Apache

Beitrag lesen

Ich dachte, daß das ginge, weil ich auf anderen Webservern zumindest bei Zugriff über FTP ja auch ein CGI Verzeichnis im public_html Ordner habe und nicht nur Zentral im Server Verzeichnis. Aber das ist wohl wieder was anderes...

Einspruch!
Selbstverständlich geht das. Auch - und gerade - in Apache.

Innerhalb eines jeden Verzeichnisses kann man konfigurieren, was darin gehen soll. Auch CGI ist eines dieser Eigenschaften.

In der Apache-Konfiguration gibt es zwei getrennte Verfahren, wie man CGI-Anwendungen als solche erkennen kann (denn darum geht es ja).

Verfahren 1: Ein *Verzeichnis* hat die Eigenschaften, nur CGI-Anwendungen zu enthalten. Egal, wie die Datei heißt, selbst index.html wird als CGI-Anwendung gestartet. Manchmal macht das Sinn - meistens wird man freiwillig "vernünftige" Endungen für seine CGI-Skripts wählen.
Beispiel:
ScriptAlias /cgi-bin/ "/home/intranet/apache_1.3.6/cgi-bin/"

Verfahren 2: Eine *Dateityp* wird so konfiguriert, daß er in bestimmten Verzeichnissen, ggf. auch im gesamten Webserver-Baum, als CGI-Anwendung erkannt wird.
Beispiel (aus Apache 1.3.2):

If you want to use CGI outside

ScriptAliased directories, uncomment

the following lines.

To use CGI scripts:

#AddHandler cgi-script .cgi
Dies weist Dateien mit dem Namen *.cgi einen Handler zu, der sie bearbeitet. Der Handler "cgi-script" ist meines Wissens vordefiniert - man kann sich auch eigene Handler schreiben, wenn man die entsprechende Schnittstelle beachtet.