The mod_wsgi Apache module is used for serving Python scripts over HTTP via Apache web server. This tutorial helps you to how to install Apache mod_wsgi module on Ubuntu 18.04 (Bionic Beaver).
Step 1 – Prerequisites
Login to Ubuntu 18.04 server console via SSH and install some prerequisites packages on the system.
sudo apt-get update sudo apt-get install python libexpat1
Step 2 – Install mod_wsgi Module
Before starting, you will need to install some prerequisite Apache components in order to work with mod_wsgi. You can install all required components by simply running the following command:
sudo apt-get update sudo apt-get install apache2 apache2-utils ssl-cert
Now, install mod_wsgi Apache module by running the following command:
sudo apt-get install libapache2-mod-wsgi
Restart Apache service to get mod_wsgi to work.
sudo systemctl restart apache2
Step 3 – Configure Apache for WSGI
Next, create a python script to serve via mod_wsgi Apache module.
sudo vi /var/www/html/wsgi_test_script.py
Add the following content:
def application(environ,start_response): status = '200 OK' html = '<html>n' '<body>n' ' Hooray, mod_wsgi is workingn' '</body>n' '</html>n' response_header = [('Content-type','text/html')] start_response(status,response_header) return [html]
After that, you need to configure Apache server to serve this file over HTTP protocol. Let’s create a configuration file to serve wsgi_test_script.py script over a sub URL.
sudo nano /etc/apache2/conf-available/mod-wsgi.conf
Add the following content:
WSGIScriptAlias /test_wsgi /var/www/html/wsgi_test_script.py
After completing the above steps enable mod-wsgi configuration and restart Apache service.
sudo a2enconf mod-wsgi sudo systemctl restart apache2
Step 4 – Testing
The setup is ready now. You can test the script by accessing http://SERVER_IP//test_wsgi URL in a web browser. See below screenshot: