Debian / Ubuntu Linux Apache mod_python Configuration

I‘ve installed a Web server (Apache2) and like to use Python interpreter correctly. How do I configure mod_python under Debian or Ubuntu Linux running Apache server version 2.x?

You need to install the following software:

a] libapache2-mod-python : Mod_python is a module that embeds the Python language interpreter within the server, allowing Apache handlers to be written in Python. Mod_python brings together the versatility of Python and the power of the Apache Web server for a considerable boost in flexibility and performance over the traditional CGI approach.

b] Apache2 webserver.

Install mod_python

Open terminal and type the following command:
$ sudo apt-get update
$ sudo apt-get install libapache2-mod-python libapache2-mod-python-doc

Configure mod_python

You need to create directory to host your python scripts. Type the following command:
$ sudo mkdir /var/www/py
Give your account permission to access the scripts:
$ sudo chown yourname:www-data /var/www/py
Now, open /etc/apache2/sites-available/default, enter:
$ sudo -s
# vi /etc/apache2/sites-available/default

Add the following config code:

   <Directory /var/www/py>
        AddHandler mod_python .py
        PythonHandler hello
        PythonDebug On

<Directory /var/www/py>
AddHandler mod_python .py
PythonHandler hello
PythonDebug On

Save and close the file. Restart Apache2 server:
# /etc/init.d/apache2 restart
# tail -f /var/log/apache2/error.log

You should see mod_python/3.3.1 Python/2.5.2 loaded:

[Tue Mar 17 02:42:18 2009] [notice] FastCGI: process manager initialized (pid 15572)
[Tue Mar 17 02:42:18 2009] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Tue Mar 17 02:42:18 2009] [notice] mod_python: using mutex_directory /tmp 
[Tue Mar 17 02:42:18 2009] [notice] Apache/2.2.9 (Ubuntu) mod_fastcgi/2.4.6 PHP/5.2.6-2ubuntu4.1 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal operations

How do I test mod_python?

Simply create the script as follows:
$ vi /var/www/py/
The following simple mod_python program serves as a good test:

from mod_python import apache
def handler(req):
        req.content_type = 'text/html'
        req.write('<html><head><title>Testing mod_python</title></head><body>')
        req.write('Hello World!')
        return apache.OK

from mod_python import apache def handler(req):
req.content_type = ‘text/html’
req.write(‘<html><head><title>Testing mod_python</title></head><body>’)
req.write(‘Hello World!’)
return apache.OK

Save and close the file. Now fire a webbrowser and type the url:
You hould see “Hello World!” on screen.

Further readings:

This is just getting started tutorial and setting up the Python interpreter correctly. I recommend getting mod_python book or refer to Python Language Website.

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post

How to Make Website WCAG Compliant?

Next Post

Link download Kali Linux 2020.1 (ISO + Torrent)

Related Posts