CentOS Python2.7 + SetupTools + Pip + Mod_wsgi Kurulumu

Merhaba

CentOS hali hazırda Python 2.6 ile birlikte gelmektedir. Özellikle Django 1.6.1 ve sonraki versiyonlarda django çalışabilmek için Python2.7  versiyonuna ihtiyaç duymaktadır. Bu noktada hali hazırda python 2.7 ile birlikte gelen Ubuntu Server tercih edilebilir. Lakin benim gibi sunucu tarafında CentOS kullanmaya sevdalı insanlar için Django’yu CentOS üzerinde koşturmak  biraz zahmetli. Bu dökümanda CentOS üzerinde gerekli python, setuptools, pip ve apache mod_wsgi kurulumu anlatılmaktadır.

1 – Sistem Updateleri ve Bağımlılıklar

İlk adım olarak sistem update’lerini yapıp gerekli olan paketleri aşağıdaki adımları takip ederek gerçekleştiriniz.

yum -y update
yum groupinstall -y development
yum install -y wget xz-libs zlib-dev openssl-devel sqlite-devel bzip2-devel

2 – Python 2.7.6 Derlenmesi

Python 2.7.6 versiyonunu indiriniz.

cd /root/
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz

İndirilen sıkıştırılmış Python dosyasını açınız.

xz -d Python-2.7.6.tar.xz
tar -xvf Python-2.7.6.tar

Python’unun derlenmesi için ağaıdaki komutları çalıştırınız. Buradaki önemli nokta make altinstall komutudur. Make install yerine make altinstall komutunu vererek mevcut python sürümü ile kurmaya çalıştığımız 2.7.6 sürümünü birbirinden ayırmaktayız. Bu adımda hata yapmamaya özen gösteriniz. Aksi halde durum gerçekten karmaşık bir hal alabilmekte -yaşandı ve görüldü-

cd Python-2.7.6
./configure --enable-shared  --prefix=/usr/local
make
make altinstall

Kontrol etmek için;

python2.7

Eğer “python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file:” gibi bir hata alırsanız; cevap burada.

Yeni python binary’si /usr/local/bin altına yerleşmiş bulunmakta. Aşağıdaki komut ile herhangi bir dizinden direk python2.7 komutuna erişebilmek için PATH değişkenine bu dizini ekleyebilirsiniz.

export PATH="/usr/local/bin:$PATH"

3 – Setuptool Kurulumu

Aşağıdaki komutlar ile yeni python versiyonumuz için setuptool’un kurulumu yapılmaktadır. Buradaki önemli nokta son komut çalıştırılırken python2.7 ile yeni python’unun çağırılmasıdır.

# setuptool indiriliyor
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz

# tar.gz dosyası açılıyor.
tar -xvf setuptools-1.4.2.tar.gz

# setuptool klasörüne geçiş
cd setuptools-1.4.2

# Yeni python için kurulum.
python2.7 setup.py install

4 – PIP Kurulumu

Yeni python için pip kurulumu aşağıdaki adımlar ile tamamlanır.

curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python2.7 -

5 – Django Kurulumu

Python2.7 versiyonu için pip kurulumu tamamlandıktan sonra Django’nun kurulumu aşağıdaki komut ile yapılabilir. Bu komutta django 1.6.1 versiyonu kurulmuştur.

pip install django==1.6.1

6 – mod_wsgi kurulumu

Django uygulamalarını Apache ile koşturmak için ihtiyaç duyulan modül mod_wsgi’dir. Mod_wsgi’nin paket yönetim sistemi -yum- ile kurulması durumunda mod_wsgi Django’yu ayağa kaldırırken hali hazırda gelen Python2.6’yı kullanır. Django için biz Python2.7 kurmuştuk. Bu durumda mod_wsgi’nin Python2.7’yi görmesini sağlamalıyız. Bunun için mod_wsginin kaynak kodunu indirip derleme yapacağız.

cd /usr/local/src
wget https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
export LD_LIBRARY_PATH=/usr/local/lib
./configure --with-python=/usr/local/bin/python2.7
chmod 755 /usr/lib64/httpd/modules/mod_wsgi.so

Son olarak /etc/httpd/conf/httpd.conf dosyasına aşağıdaki satırı ekleyiniz.

LoadModule wsgi_module modules/mod_wsgi.so
AddHandler wsgi-script .wsgi
WSGIPythonHome /usr/local

Apache servisini restartlayınız.

/etc/init.d/httpd restart

Referanslar:

https://www.digitalocean.com/community/articles/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4
http://jonathandbaker.com/blog/posts/29/centos-6-4-python-2-7-5-modwsgi-3-4/

Another Python/Mercurial/mod_wsgi on CentOS HOWTO – 1/2

Another Python/Mercurial/mod_wsgi on CentOS HOWTO – 2/2