How to Use mod_wsgi Module with Apache to Host Python in CentOS

This article will teach you how to use mod_wsgi module with Apache to host python web server in Centos 6.4.Mod_wsgi is an Apache HTTP Server module by Graham Dumpleton that provides a WSGI compliant interface for hosting Python 2.3+ based web applications under Apache.It is written in C codes.So it have better performance and lower memory overhead than mod_python or others.

The following paragraph will show the steps to use mod_wsgi.

Step 1) Install mod_wsgi

Run command:

[root@localhost]yum install mod_wsgi

Step 2) Configure Apache with mod_wsgi

Modify the /etc/httpd/conf/httpd.conf file.Add below line in the LoadModule section:

LoadModule wsgi_module modules/mod_wsgi.so

Restart httpd service:

[root@localhost]service httpd stop
[root@localhost]service httpd start

Maybe you don't need to modify httpd.conf file,if there is /etc/httpd/conf.d/wsgi.conf.

Step 3) Create web access directory and python file

For example,create /usr/local/wsgi/scripts directory and add wsgi-myapp.py file in it.
File content is as follows:

def application(environ,start_response):
status='200 OK'
output='Hello world'
response_headers=[('Content-type','text/plain'),
('Content-Length',str(len(output)))] start_response(status,response_headers)
return [output]

step 4) Create Apache conf file

Create a file named myapp.conf and put it in the /etc/httpd/conf.d/ directory.The file content is:

Alias /myapp “/usr/local/wsgi/scripts/wsgi-myapp.py”

Options ExecCGI
SetHandler wsgi-script
Order allow,deny
Allow from all

Step 5. Check the result

Restart httpd service.Then open firefox and input address”localhost/myapp”,you will see
“Hello world” in the web page.

Read Also:

Bobbin Zachariah 4:30 am

Comments

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

All comments are subject to moderation.

2 Comments

  1. This line:

    AddModule wsgi_module modules/mod_wsgi.so

    should read:

    LoadModule wsgi_module modules/mod_wsgi.so

    Otherwise all good. Thanks.