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.
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!
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!