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