This is a step by step tutorial which will help you install Python 2.7 with mod_wsgi onto CentOS 5.6 and cPanel.
Prerequisites:
- CentOS 5.6 32 or 64 bit with root access
- cPanel
Creating Python folder
mkdir /usr/src/python2.7
cd /usr/src/python2.7
If required by your project, you can install SQLite
wget http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz
tar zxvf sqlite-autoconf-3070701.tar.gz
cd sqlite-autoconf-3070701
./configure
make
make install
Installing Python 2.7 into alternate location since we don’t want to break Centos 5.6 (yum) that uses Python 2.4
cd /usr/src/python2.7/
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure --prefix=/opt/python2.7 --with-threads --enable-shared
make
make install
Creating symbolic link to the alternate Python version
ln -s /opt/python2.7/bin/python /usr/bin/python2.7
echo '/opt/python2.7/lib'>> /etc/ld.so.conf.d/opt-python2.7.conf
ldconfig
Let’s test if new Python version works
/usr/bin/python2.7
If successful you will see something like this:
Python 2.7.2 (default, SepĀ 3 2011, 18:28:42)[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
press control+D to exit
Now we need to install Python setup-tools
cd /usr/src/python2.7/
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
sh setuptools-0.6c11-py2.7.egg --prefix=/opt/python2.7
Installing virtualenv to our Python 2.7
cd /opt/python2.7/bin/
./easy_install virtualenv
Installing mod_wsgi (this module will work only with python 2.7)
cd /opt/python2.7/lib/python2.7/config/
ln -s ../../libpython2.7.so
cd /usr/src/python2.7/
wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
tar zxvf mod_wsgi-3.3.tar.gz
cd mod_wsgi-3.3
./configure --with-python=/opt/python2.7/bin/python
make
make install
We need to avoid cPanel’s easy_apache clearing up /usr/local/apache/modules folder
mkdir /usr/local/apache/extramodules
mv /usr/local/apache/modules/mod_wsgi.so /usr/local/apache/extramodules/
Include mod_wsgi into Apache configuration
nano /usr/local/apache/conf/includes/pre_virtualhost_global.conf
paste:
LoadModule wsgi_module /usr/local/apache/extramodules/mod_wsgi.so
AddHandler wsgi-script .wsgi
Before we restart Apache, lets test if we have the correct configuration
service httpd configtest
You should get this answer:
Syntax OK
Now restart Apache
/scripts/restartsrv httpd
Python 2.7 with mod_wsgi is now installed on your cPanel server.
You can create a test.wsgi file to test Python scripts
def application(environ, start_response):
"""Simplest possible application object"""
output = "Hello World"
status = '200 OK'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Please post your questions and comments below.
Comments are closed.