CGI-Skripte auf dem Apache aktivieren

Erfahren Sie, wie Sie CGI-Skripte auf dem Apache-Webserver ausführen können. Dieses Tutorial enthält eine Schritt-für-Schritt-Anleitung zum Hinzufügen der notwendigen Apache-Konfigurationen, damit CGI-Skripte ausgeführt werden können, und Angaben zu den notwendigen Berechtigungen für das Verzeichnis und die CGI-Dateien.

    Anforderungen

    • Ein Cloud Server mit CentOS 7 oder Ubuntu 16.04 und installiertem und laufendem Apache.
    Hinweis

    Bei einer Standard-Linux-Installation ist Apache von Anfang an installiert und wird ausgeführt. Wenn Sie Ihren Server über eine Minimal-Installation erstellt haben, müssen Sie Apache installieren und konfigurieren, bevor Sie fortfahren können.

    CGI-Skripte in den Apache-Konfigurationen aktivieren

    Zwei Dinge müssen eingerichtet werden, um CGI-Skripte auf einem Linux-Server mit Apache auszuführen:

    • Der Apache muss konfiguriert werden, damit CGI-Skripte ausgeführt werden können.
    • Das Skript muss an den richtigen Ort hochgeladen und mit den richtigen Berechtigungen versehen werden.

    Apache Einstellungen für CGI-Skripte unter CentOS 7

    Öffnen Sie die Datei httpd.conf zur Bearbeitung:

    sudo nano /etc/httpd/conf/httpd.conf

    Finden Sie den folgenden Abschnitt:

    #
    # "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    #
    <Directory "/var/www/cgi-bin">
        AllowOverride None
        Options None
        Require all granted
    </Directory>

    Fügen Sie die folgenden zwei Zeilen zu diesem Abschnitt hinzu:

    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .py

    Die erste Zeile weist den Apache an, CGI-Dateien auszuführen, die in das Verzeichnis /var/wwww/cgi-bin hochgeladen werden. Die zweite Zeile teilt dem Apache mit, dass jede Datei mit der Endung .cgi,.pl oder.py als CGI-Skript betrachtet wird.

    Der Abschnitt lautet nun:

    #
    # "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    #
    <Directory "/var/www/cgi-bin">
        AllowOverride None
        Options +ExecCGI
        AddHandler cgi-script .cgi .pl
        Require all granted
    </Directory>

    Speichern und beenden Sie die Datei. Starten Sie dann den Apache neu, damit die Änderungen wirksam werden:

    sudo systemctl restart httpd

    Apache Einstellungen für CGI-Skripte auf Ubuntu 16.04

    Bei Ubuntu 16.04 ist der Apache standardmäßig so konfiguriert, dass er die Ausführung von CGI-Skripten im angegebenen Verzeichnis /usr/lib/cgi-bin erlaubt. Sie müssen keine Apache-Konfigurationen ändern.

    Allerdings muss das CGI-Modul des Apache aktiviert werden, bevor CGI-Skripte ausgeführt werden können. Dazu müssen Sie einen Symlink erstellen:

    sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/

    Starten Sie dann den Apache neu, damit die Änderungen wirksam werden:

    sudo systemctl restart apache2

    Cloud Server von IONOS

    Vertrauen Sie auf flexibel skalierbare und zuverlässige Cloud Server auf hochverfügbarer Infrastruktur mit Standort Deutschland inklusive persönlichem Berater und minutengenauer Abrechnung - Sie zahlen also wirklich nur Ihre benötigten Ressourcen!

    VMware Virtualisierung
    Rest API
    Unlimited Traffic

    Laden Sie das CGI-Skript hoch und legen Sie die Berechtigungen fest.

    Um die CGI-Skriptfunktionalität auf Ihrem Server zu überprüfen, empfehlen wir, mit einem Testskript zu beginnen. Erstellen Sie die Datei test.cgi in dem vom Server angegebenen cgi-bin-Verzeichnis  und öffnen Sie sie zur Bearbeitung:

    • CentOS 7: sudo nano /var/www/cgi-bin/test.cgi
    • Ubuntu 16.04: sudo nano /usr/lib/cgi-bin/test.cgi

    Fügen Sie den folgenden Inhalt zu dieser Datei hinzu:

    #!/usr/bin/perl
    print "Content-type: text/html\n\n"; 
    print "<h1>Hello world</h1>";

    Speichern und beenden Sie die Datei.

    Als nächstes geben Sie der Datei die richtigen Ausführungsberechtigungen:

    • CentOS 7: sudo chmod 755 /var/www/cgi-bin/test.cgi
    • Ubuntu 16.04: sudo chmod 755 /usr/lib/cgi-bin/test.cgi

    Zeigen Sie das Skript in einem Browser an, entweder über den Domainnamen oder die IP-Adresse:

    http://example.com/cgi-bin/test.cgi
    http://192.168.0.1/cgi-bin/test.cgi

    Du wirst "Hallo Welt" sehen.

    Troubleshooting für CGI-Skriptfehler

    404-Fehler: Das bedeutet, dass die URL nicht gefunden wird. Überprüfen Sie, ob das Skript dem richtigen Verzeichnis hinzugefügt wurde.

    • CentOS 7: Das Standardverzeichnis ist /var/www/cgi-bin/
    • Ubuntu 16.04: Das Standardverzeichnis ist /usr/lib/cgi-bin

    Server 500 Fehler: Das bedeutet, dass das Skript nicht über die richtigen Berechtigungen verfügt. Überprüfen Sie, ob das Skript über Ausführungsberechtigungen (chmod 755) verfügt:

    jdoe@localhost:/etc/apache2# ll /usr/lib/cgi-bin/test.cgi
    rwxr-xr-x 1 jdoe jdoe 85 Jul 22 16:53 /usr/lib/cgi-bin/test.cgi*

    Die richtigen Berechtigungen für die Datei sind rwxr-xr-xr-xr-x.

    Cloud Backup von IONOS

    Maximaler Schutz für Ihre Unternehmensdaten: Einfache Backups für Cloud-Infrastruktur, PCs und Smartphones, inklusive persönlichem Berater!

    Umfassender Schutz
    Einfache Wiederherstellung
    Schnelle Datenspeicherung

    Halt! Wir haben noch etwas für Sie!

    Eigene E-Mail-Adresse
    schon ab 1,- €/Mon.
    Professionell: 100% werbefrei
    Firmen- oder Private E-Mail-Adresse inkl. Domain
    E-Mail-Weiterleitung, Spam- und Virenschutz