Python Scripts draaien met Apache en mod_wsgi op Ubuntu 18.04

mod_wsgi is een Apache module die gebruikt kan worden voor het serveren van Python scripts over HTTP via de Apache webserver. Je kunt gemakkelijk toepassingen inzetten die geschreven zijn met raamwerken en gereedschappen als Django, Web.py, Werkzug, Chery.py, TurboGears, en Flask met behulp van mod_wsgi.

In deze handleiding leren we hoe je mod_wsgi installeert en instelt met de Apache server op Ubuntu 18.04 LTS (Bionic Beaver) server.

Vereisten

  • Een server waarop Ubuntu 18.04 draait.
  • Een niet-root gebruiker met sudo privileges.
  • Een statisch IP adres 192.168.43.229 configureren op je server.

Installeer Apache en mod_wsgi

Voor je begint, moet je enkele vereiste pakketten op je systeem installeren.

Je kunt ze allemaal installeren door het volgende commando uit te voeren:

sudo apt-get install python libexpat1 apache2 apache2-utils ssl-cert -y

Als alle vereiste pakketten geïnstalleerd zijn, kun je verder gaan met het installeren van mod_wsgi met het volgende commando:

sudo apt-get install libapache2-mod-wsgi -y

Configureer Apache voor mod_wsgi

Vervolgens moet je een python script maken binnen de Apache web root directory om via mod_wsgi Apache module te bedienen.

Je kunt dit doen met het volgende commando:

sudo nano /var/www/html/wsgy.py

Voeg de volgende regels toe:

def application(environ,start_response):
    status = '200 OK'
    html = '<html>\n' \
           '<body>\n' \
           '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
           'Welcome to mod_wsgi Test Page\n' \
           '</div>\n' \
           '</body>\n' \
           '</html>\n'
    response_header = [('Content-type','text/html')]
    start_response(status,response_header)
    return [html]

Sla het bestand op en sluit het. Geef daarna de juiste permissies aan het wsgi.py bestand:

sudo chown www-data:www-data /var/www/html/wsgy.py
sudo chmod 755 /var/www/html/wsgy.py

Vervolgens moet je Apache configureren om dit bestand over het HTTP protocol te serveren. Je kunt dit doen door het bestand wsgi.conf aan te maken:

sudo nano /etc/apache2/conf-available/wsgi.conf

Voeg de volgende regels toe:

WSGIScriptAlias /wsgi /var/www/html/wsgy.py

Sla het bestand op en sluit het. Geef daarna de juiste permissies aan het wsgi.py bestand:

Schakel dan de mod-wsgi configuratie in en herstart de Apache dienst met het volgende commando:

sudo a2enconf wsgi
sudo systemctl restart apache2

Test Python scripts in Apache met mod-wsgi

Open nu je webbrowser en typ de URL http://example.com/wsgi. Je wordt doorverwezen naar de volgende pagina:

Python Test pagina

Links