Python als CGI-Script ausführen – IONOS


Es gibt mehrere Möglichkeiten, mit Python eine Webanwendung zu erstellen oder Webinhalte zu generieren. In diesem Tutorial wird die einfachste und grundlegendste Form der Darstellung der Ausgabe eines Python-Skripts in einem Browser behandelt.

In einigen Situationen kann es sinnvoll sein, Python als CGI-Skript auszuführen:

  • Das Skript ist klein und leicht.
  • Du fängst gerade erst an, Python zu lernen, und willst mit einer einfachen Lösung beginnen.
  • Sie müssen nur die grundlegendste Teststufe in einem Browser durchführen.

Tipp

Es gibt bessere und robustere Alternativen, als ein Python-Skript als CGI-Skript auszuführen. Je nach Bedarf empfehlen wir Ihnen, entweder mod_wsgi von Apache zu verwenden oder ein Python-Web-Framework wie CherryPy zu installieren.

Anforderungen

  • Ein Cloud Server mit Apache, der konfiguriert ist, um CGI-Skripte zu erlauben.

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

Python als CGI-Skript ausführen

Nachdem Sie überprüft haben, dass Ihr Server so konfiguriert ist, dass er CGI-Skripte zulässt, können Sie das Python-Skript in das von Ihnen angegebene cgi-bin-Verzeichnis hochladen.

  • CentOS 7: Das Standard-CGI-Verzeichnis ist var/wwww/cgi-bin/cgi-bin/.
  • Ubuntu 16.04: Das Standard-CGI-Verzeichnis ist /usr/lib/cgi-bin.

Geben Sie der Datei ausführbare Berechtigungen:

CentOS 7:

sudo chmod 755 /var/www/cgi-bin/example.cgi
sudo chmod 755 /usr/lib/cgi-bin/example.cgi

Sie können das Skript nun in einem Browser anzeigen, entweder über den Domänennamen oder die IP-Adresse:

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

File Extensions

Um Ihr Python-Skript als CGI-Skript auszuführen, können Sie entweder:

  • Benennen Sie Ihr Skript mit einer.cgi-Dateiendung (example.cgi).
  • Konfigurieren Sie den Apache so, dass er die Dateiendung .py als CGI-Skript erkennt und zulässt.

Um die .py-Konfiguration zum Apache hinzuzufügen, bearbeiten Sie die Apache-Konfigurationsdatei. Am Ubuntu 16.04 ist dies bereits voreingestellt. Sie müssen keine Änderungen vornehmen, um eine.py-Datei als CGI-Skript auszuführen.

Öffnen Sie unter CentOS 7 die Datei httpd.conf zur Bearbeitung:

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

Finden Sie diesen Abschnitt:

#

#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
    Require all granted
</Directory>

Fügen Sie .py zur AddHandler-Konfiguration hinzu:

#

#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .py
    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

Fehlerbehebung

Zu Testzwecken empfehlen wir Ihnen, das folgende Beispielskript zu verwenden:

#!/usr/bin/env python
print "Content-Type: text/html"
print
print '<h1>Hello world.</h1>'

Speichern Sie diese als example.py und laden Sie sie zum Testen in das von Ihrem Server angegebene cgi-bin-Verzeichnis hoch. Betrachten Sie dann das Skript in einem Browser, entweder mit dem Domänennamen oder der IP-Adresse:

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

Du wirst “Hallo Welt” sehen.

404-Fehler: Das bedeutet, dass die Datei nicht unter der von Ihnen angegebenen URL gefunden werden kann. Stellen Sie sicher, dass sich das Skript im richtigen Verzeichnis befindet.

  • CentOS 7: Das Standard-CGI-Verzeichnis ist var/wwww/cgi-bin/cgi-bin/.
  • Ubuntu 16.04: Das Standard-CGI-Verzeichnis ist /usr/lib/cgi-bin.

Server 500 Fehler: Dies zeigt in der Regel an, dass die Berechtigungen der Datei falsch sind. Stellen Sie sicher, dass das Skript über ausführbare (chmod 755) Berechtigungen 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. Wenn nicht, geben Sie der Datei ausführbare Berechtigungen:

CentOS 7:

sudo chmod 755 /var/www/cgi-bin/example.cgi
sudo chmod 755 /usr/lib/cgi-bin/example.cgi



Source link

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.