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/