So aktivierst du CGI-Skripte auf deinem Webserver
CGI-Skripte sind eine effiziente Methode, um deinen Apache-Webserver zu entlasten. Die Konfiguration ist rasch erledigt, und auch die Berechtigungen für Verzeichnisse und Dateien lassen sich unkompliziert vergeben.
CGI-Skripte auf Apache: Das brauchst du
Damit du das Common Gateway Interface (CGI) nutzen kannst, um Skripte an deinen Apache-Webserver zu übergeben, ist folgendes Setup nötig:
- ein Cloud Server oder Virtual Private Server (VPS)
- eine Linux-Distribution wie CentOS 8 oder Ubuntu 22.04
- ein fertig installierter und aktiver Apache-Webserver
CGI-Skripte in der Apache-Konfiguration freischalten
Damit deine Skripte via CGI auf einem Linux-Server laufen, sind zwei Schritte erforderlich:
- Apache muss für die Ausführung von CGI-Skripten konfiguriert werden.
- Die Skripte müssen im richtigen Verzeichnis liegen und die passenden Berechtigungen haben.
Apache-Konfiguration für CGI unter CentOS
Öffne die Konfigurationsdatei httpd.conf deines Apache-Servers:
sudo nano /etc/httpd/conf/httpd.confbashSuche nach diesem Block:
#
# "/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>textErsetze die Zeile Options None durch diese beiden Einträge:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pytextDie erste Zeile weist Apache an, CGI-Dateien im Verzeichnis /var/www/cgi-bin auszuführen. Die zweite Zeile definiert, dass Dateien mit den Endungen .cgi, .pl (Perl) oder .py (Python) als CGI-Skripte behandelt werden.
Der fertige Abschnitt sieht dann so aus:
#
# "/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>textSpeichere die Datei und schließe sie. Starte Apache neu, damit das System die Änderungen übernimmt:
sudo systemctl restart httpdbashApache-Konfiguration für CGI unter Ubuntu
Bei Systemen wie Ubuntu 22.04 erlaubt Apache die Ausführung von CGI-Skripten im Verzeichnis /usr/lib/cgi-bin bereits standardmäßig. Du musst die Konfigurationsdatei also nicht anfassen. Du musst jedoch das CGI-Modul aktivieren, damit alles glatt läuft. Erstelle dazu einen Symlink:
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/bashStarte den Webserver danach neu, um die Aktivierung abzuschließen:
sudo systemctl restart apache2bashCGI-Skript hochladen und Rechte vergeben
Um zu testen, ob alles funktioniert, startest du am besten mit einem einfachen Testskript. Erstelle die Datei test.cgi im cgi-bin-Verzeichnis und öffne sie zum Bearbeiten:
- CentOS:
sudo nano /var/www/cgi-bin/test.cgi - Ubuntu:
sudo nano /usr/lib/cgi-bin/test.cgi
Füge diesen Inhalt in die Datei ein:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<h1>Hello world!</h1>";textSpeichere die Datei ab und lege die Berechtigungen für die Ausführung fest:
- CentOS:
sudo chmod 755 /var/www/cgi-bin/test.cgi - Ubuntu:
sudo chmod 755 /usr/lib/cgi-bin/test.cgi