Systemvoraussetzungen
- Ein Server mit aktueller Arch-Linux-Distribution (siehe offizielle Anleitung).
- Ein betriebsbereiter Webserver – entweder Apache oder Nginx ist installiert und eingerichtet.
- Root-Zugriff über sudo:
Befehle, die Administratorrechte benötigen, sind mit einem
#gekennzeichnet. Es wird empfohlen, diese Befehle als normaler Nutzer mitsudoauszuführen. - Ein installierter Texteditor, mit dem du vertraut bist – zum Beispiel
vi,vim,nano,emacsoder ein ähnliches Tool.
Passende Infrastruktur bei centron
Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →
Installation von Python 3.7 auf dem Webserver
Mit Apache
Es ist nicht möglich, gleichzeitig die Apache-Module für Python 2.x und 3.x unter Arch Linux zu betreiben. In der Praxis stellt das aber kaum ein Problem dar.
Um Python 3.x zu aktivieren, führe folgenden Befehl aus:
# pacman -S mod_wsgiAnschließend bearbeitest du die Apache-Konfigurationsdatei unter /etc/httpd/conf/httpd.conf. Gehe ans Ende der LoadModule-Anweisungen und füge diese Zeile hinzu:
LoadModule wsgi_module modules/mod_wsgi.soMit Nginx
Um Python 3.x für Nginx zu aktivieren, führe folgenden Befehl aus:
# pacman -S uwsgi-plugin-pythonPython-Installation testen
Wechsle in ein geeignetes Verzeichnis und erstelle eine Datei mit dem Namen test.py. Der Inhalt sollte wie folgt aussehen:
#-*- coding: utf-8 -*-
def wsgi_app(environment, start_response):
import sys
output = sys.version.encode('utf8')
status = '200 OK'
headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, headers)
yield output
application = wsgi_appApache-Konfiguration
Um die Testanwendung mit Apache zu verbinden, füge die folgende Zeile entweder direkt am Ende der Datei /etc/httpd/conf/httpd.conf hinzu oder innerhalb des entsprechenden <VirtualHost>-Blocks, falls mehrere Hosts verwendet werden:
WSGIScriptAlias /wsgi_app /srv/http/test.pyStarte den Apache-Webserver neu, damit die Änderungen übernommen werden:
# systemctl restart httpdÖffne nun einen Webbrowser und rufe die Adresse http://DEIN-SERVER-ADRESSE-ODER-IP/wsgi_app auf. Du solltest eine Testseite sehen, die die Python- und GCC-Version anzeigt.
Entferne abschließend die Datei test.py sowie den zuvor eingefügten WSGIScriptAlias-Eintrag aus der Apache-Konfiguration.
Starte Apache erneut:
# systemctl restart httpdPython 3.7 mit uWSGI und Nginx auf Arch Linux konfigurieren
uWSGI-Konfiguration erstellen
Erstelle zunächst die Datei /etc/uwsgi/wsgi_app.ini und trage den folgenden Inhalt ein:
[uwsgi]
socket = /run/uwsgi/wsgi_app.sock
uid = http
gid = http
plugins = python
chdir = /usr/share/nginx/html/
wsgi-file=test.py
callable = applicationStarte dann uWSGI mit folgendem Befehl, um wsgi_app bereitzustellen:
# systemctl start uwsgi@wsgi_appNginx-Konfiguration anpassen
Bearbeite die Datei /etc/nginx/nginx.conf. Füge innerhalb jedes gewünschten server-Blocks den folgenden Abschnitt ein. Falls virtuelle Hosts verwendet werden, trage die Konfiguration in den jeweiligen Host-Dateien ein:
location ~ \wsgi_app {
root /usr/share/nginx/html/;
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/wsgi_app.sock;
}Starte Nginx neu, um die Änderungen zu übernehmen:
# systemctl restart nginxRufe nun im Browser die Adresse http://DEIN-SERVER-ADRESSE-ODER-IP/wsgi_app auf. Dort wird eine Testseite angezeigt, die die installierte Python- sowie GCC-Version zeigt.
Aufräumen
Wenn du bestätigt hast, dass alles funktioniert, lösche die Datei test.py sowie den entsprechenden location-Block für wsgi_app in der Datei /etc/nginx/nginx.conf.
Starte Nginx anschließend erneut:
# systemctl restart nginxBeende danach den uWSGI-Dienst für wsgi_app mit folgendem Befehl:
# systemctl stop uwsgi@wsgi_appZum Schluss entferne sowohl die Datei /etc/uwsgi/wsgi_app.ini als auch die test.py-Datei, um die Testumgebung vollständig zu bereinigen.
Fazit
Wenn du alle Schritte wie beschrieben ausgeführt hast, läuft Python 3.7 erfolgreich auf deinem Arch-Linux-Server – integriert mit uWSGI und Nginx. Diese Konfiguration bietet eine stabile Grundlage zur Ausführung von WSGI-basierten Anwendungen und bleibt dabei flexibel und leistungsfähig. Vergiss nicht, die Testdateien und Konfigurationen wieder zu entfernen, um dein System sauber und sicher zu halten.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.