Takip et

Django Web Framework’ü CentOS 7 Üzerine Kurulum Rehberi

Django Web Framework’ü CentOS 7 Üzerine Kurulum Rehberi Django, Python ile yazılmış, hızlı geliştirme ve temiz, pragmatik tasarım sağlaya

Django Web Framework’ü CentOS 7 Üzerine Kurulum Rehberi

Django, Python ile yazılmış, hızlı geliştirme ve temiz, pragmatik tasarım sağlayan yüksek seviyeli bir web çatısıdır (framework). Geliştiricilerin web uygulamalarını hızlı ve verimli bir şekilde oluşturmalarına olanak tanır. CentOS 7 ise kurumsal düzeyde sunucular için popüler ve kararlı bir Linux dağıtımıdır. Bu rehberde, Django web çatısını CentOS 7 sunucunuza nasıl kuracağınızı adım adım öğreneceksiniz.

Bu rehber, bir CentOS 7 sunucusuna root erişiminiz veya sudo yetkilerine sahip bir kullanıcınız olduğunu varsayar.

Sistem Hazırlığı ve Gerekli Bağımlılıkların Kurulumu

Django’yu kurmadan önce, sisteminizin güncel olduğundan ve gerekli Python bağımlılıklarının kurulu olduğundan emin olmalıyız. CentOS 7 varsayılan olarak eski bir Python sürümü (Python 2.7) ile gelir. Django’nun modern sürümleri Python 3.6 ve üzerini gerektirdiğinden, Python 3’ü kurmamız gerekecektir.

Sistemi Güncelleme

İlk adım olarak, sisteminizdeki mevcut paketleri güncelleyelim. Bu, olası uyumluluk sorunlarını önleyecek ve en son güvenlik yamalarını uygulayacaktır:

sudo yum update -y

Bu komut, tüm yüklü paketleri en son sürümlerine günceller. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar.

EPEL Deposunu ve Python 3’ü Kurma

CentOS 7’nin varsayılan depolarında Python 3’ün en son sürümleri bulunmayabilir. Bu yüzden, ek paketler sağlayan Extra Packages for Enterprise Linux (EPEL) deposunu kurmamız gerekecek:

sudo yum install epel-release -y

EPEL deposu eklendikten sonra, Python 3 ve pip (Python paket yöneticisi) kurabiliriz. pip, Django ve diğer Python kütüphanelerini kurmak için kullanılacaktır:

sudo yum install python3 python3-pip -y

Bu komut, Python 3 yorumlayıcısını ve Python 3 için pip paket yöneticisini kuracaktır. Kurulum tamamlandıktan sonra, Python 3 ve pip’in doğru bir şekilde kurulup kurulmadığını kontrol edebilirsiniz:

python3 --version
pip3 --version

Çıktı olarak kurulu Python 3 ve pip 3 sürümlerini görmelisiniz (örneğin, Python 3.6.8 ve pip 9.0.3).

Son olarak, pip‘i en son sürümüne güncelleyelim. Bu, paket kurulumunda yaşanabilecek sorunları önleyecektir:

sudo pip3 install --upgrade pip

Sanal Ortam Oluşturma ve Aktifleştirme

Django projelerinizi geliştirirken, her proje için ayrı bir sanal ortam kullanmak en iyi pratiktir. Sanal ortamlar, projelerinizin bağımlılıklarını izole etmenizi sağlar. Bu sayede, farklı projeler farklı Python kütüphanesi versiyonlarına ihtiyaç duysa bile çakışmalar yaşanmaz.

Sanal Ortam Aracı Kurulumu

Python 3.3 ve üzeri sürümler, venv modülü ile yerleşik sanal ortam desteği sunar. Bu nedenle ayrı bir araç kurmanıza gerek kalmayabilir. Ancak bazı durumlarda python3-venv paketi eksik olabilir. Onu da kuralım:

sudo yum install python3-venv -y

Proje Dizini Oluşturma ve Sanal Ortamı Kurma

Şimdi, Django projeniz için bir dizin oluşturalım ve bu dizin içinde bir sanal ortam kuralım:

mkdir ~/my_django_project
cd ~/my_django_project

Ardından, venv adında bir sanal ortam oluşturalım. Bu komut, my_django_project dizini içinde venv adında bir dizin oluşturacak ve buraya Python yorumlayıcısının ve pip’in izole bir kopyasını yerleştirecektir:

python3 -m venv venv

Sanal Ortamı Aktifleştirme

Sanal ortamı aktifleştirmek için aşağıdaki komutu kullanın:

source venv/bin/activate

Sanal ortam başarıyla aktifleştirildiğinde, komut isteminizin başında (venv) gibi bir ibare göreceksiniz. Bu, artık sanal ortamınız içinde olduğunuzu ve burada kuracağınız tüm Python paketlerinin global sistem paketlerinden bağımsız olacağını gösterir.

Sanal ortamdan çıkmak isterseniz, deactivate komutunu kullanabilirsiniz:

deactivate

Ancak bu rehberin devamı için sanal ortamın aktif kalması gerekmektedir.

Django Kurulumu ve İlk Projenizi Oluşturma

Sanal ortamımız hazır ve aktif olduğuna göre, Django’yu bu ortama kurabilir ve ilk projemizi oluşturabiliriz.

Django Kurulumu

Sanal ortam aktifken, pip kullanarak Django’yu kurun:

pip install django

Kurulum tamamlandıktan sonra, Django’nun doğru bir şekilde kurulup kurulmadığını ve hangi sürümün yüklendiğini kontrol edebilirsiniz:

django-admin --version

Yeni Bir Django Projesi Oluşturma

Şimdi, myproject adında yeni bir Django projesi oluşturalım. Bu komut, bulunduğunuz dizinin içine myproject adında yeni bir dizin ve gerekli dosya yapısını oluşturacaktır:

django-admin startproject myproject .

. (nokta) kullanmak, projenin mevcut dizin içine oluşturulmasını sağlar. Eğer django-admin startproject myproject komutunu kullanırsanız, my_django_project dizini altında myproject adında bir alt dizin daha oluşur. Bu rehberde, proje dosyalarının ~/my_django_project altında olmasını istediğimiz için . kullanıyoruz.

Proje dizinine gidelim:

cd myproject

Artık manage.py dosyasını ve projenizin ana yapılandırma dosyalarını bu dizinde göreceksiniz.

Veritabanı Göçlerini Uygulama

Django, varsayılan olarak SQLite veritabanını kullanır ve bazı ön tanımlı tablolarla gelir (kullanıcılar, yetkilendirmeler vb.). Bu tabloları veritabanınıza uygulamak için aşağıdaki komutu çalıştırın:

python manage.py migrate

Bu komut, Django’nun veritabanı şemasını oluşturur.

Yönetici Kullanıcı Oluşturma

Django yönetim paneline erişmek için bir yönetici (superuser) hesabı oluşturmanız gerekir:

python manage.py createsuperuser

Komutu çalıştırdıktan sonra, sizden kullanıcı adı, e-posta adresi ve şifre girmeniz istenecektir.

Geliştirme Sunucusunu Çalıştırma

Django, geliştirme amacıyla kullanabileceğiniz hafif bir web sunucusu ile birlikte gelir. Projenizi çalıştırmak için aşağıdaki komutu kullanın:

python manage.py runserver 0.0.0.0:8000

* 0.0.0.0: Bu, sunucunun tüm ağ arayüzlerinden gelen bağlantıları dinlemesini sağlar. Bu, sunucunuza dış IP adresiniz üzerinden erişebilmeniz için önemlidir.
* 8000: Bu, sunucunun dinleyeceği port numarasıdır.

Bu komutu çalıştırdığınızda, sunucu terminalinizde çalışmaya başlayacaktır. Ancak, sunucunuza dışarıdan erişebilmek için CentOS 7’nin güvenlik duvarını (firewall) yapılandırmanız gerekebilir.

Firewall Ayarları

CentOS 7’de firewalld varsayılan güvenlik duvarı yöneticisidir. 8000 numaralı porttan gelen bağlantılara izin vermek için aşağıdaki komutları kullanın:

sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

* --add-port=8000/tcp --permanent: 8000 numaralı TCP portunu kalıcı olarak güvenlik duvarına ekler.
* --reload: Güvenlik duvarı kurallarını yeniden yükler, böylece değişiklikler anında etkinleşir.

ALLOWED_HOSTS Ayarı

runserver komutunu 0.0.0.0 ile çalıştırdığınızda veya projeyi bir sunucuya dağıttığınızda, Django’nun settings.py dosyasında ALLOWED_HOSTS ayarını yapmanız gerekir. Bu ayar, Django’nun hangi ana bilgisayar başlıklarını kabul edeceğini kontrol eden bir güvenlik önlemidir.

my_django_project/myproject/settings.py dosyasını bir metin düzenleyici ile açın:

nano ~/my_django_project/myproject/settings.py

ALLOWED_HOSTS satırını bulun ve sunucunuzun IP adresini veya alan adını ekleyin. Geliştirme aşamasında tüm bağlantılara izin vermek için '*' kullanabilirsiniz, ancak üretim ortamında bu önerilmez:

# my_django_project/myproject/settings.py

ALLOWED_HOSTS = ['your_server_ip_address', 'your_domain.com', '127.0.0.1', 'localhost']

Veya tüm bağlantılara izin vermek için (sadece geliştirme ortamı için önerilir):

ALLOWED_HOSTS = ['*']

Dosyayı kaydedip kapatın (nano’da Ctrl+O, Enter, Ctrl+X).

Şimdi, tarayıcınızdan sunucunuzun IP adresi ve 8000 portunu kullanarak Django projenize erişebilirsiniz: http://your_server_ip_address:8000/

Başarılı bir kurulumda, “The install worked successfully! Congratulations!” mesajını içeren varsayılan Django karşılama sayfasını görmelisiniz. Yönetim paneline erişmek için http://your_server_ip_address:8000/admin/ adresine gidebilirsiniz.

Sonuç ve Sıkça Sorulan Sorular (SSS)

Bu rehberde, CentOS 7 sunucunuza Django web çatısını nasıl kuracağınızı, sanal ortamları nasıl kullanacağınızı ve ilk Django projenizi nasıl çalıştıracağınızı öğrendiniz. Bu adımlar, Django ile web geliştirmeye başlamak için sağlam bir temel oluşturur. Üretim ortamında Django uygulamalarını dağıtmak için Gunicorn, Nginx veya Apache gibi ek araçlar kullanmanız gerekecektir, ancak bu rehberin kapsamı dışındadır.

Sıkça Sorulan Sorular (SSS)

  1. Neden sanal ortam kullanmalıyım?

    Sanal ortamlar, her Django projenizin kendi Python bağımlılık setine sahip olmasını sağlar. Bu, farklı projelerin farklı kütüphane versiyonlarına ihtiyaç duyması durumunda ortaya çıkabilecek çakışmaları önler. Ayrıca, sistem genelindeki Python kurulumunuzu temiz tutar.

  2. Django projem neden dışarıdan erişilemiyor?

    Bunun birkaç nedeni olabilir:

    • Firewall: CentOS 7 güvenlik duvarı (firewalld) varsayılan olarak 8000 gibi özel portları engeller. Rehberdeki firewall-cmd komutlarını kullanarak bu porta izin vermeniz gerekir.
    • ALLOWED_HOSTS ayarı: settings.py dosyasındaki ALLOWED_HOSTS ayarına sunucunuzun IP adresini veya alan adını eklemeyi unutmayın.
    • runserver komutu: python manage.py runserver komutunu 0.0.0.0:8000 şeklinde çalıştırmalısınız ki tüm arayüzlerden gelen bağlantıları dinlesin.
  3. pip veya python komutu bulunamıyor hatası alıyorum, ne yapmalıyım?

    Bu genellikle Python 3 ve pip’in doğru bir şekilde kurulmadığı veya PATH ortam değişkeninde bulunmadığı anlamına gelir. sudo yum install python3 python3-pip -y komutunu tekrar çalıştırdığınızdan emin olun. Ayrıca, komutları python3 ve pip3 olarak kullanmaya özen gösterin.

  4. CentOS 7’de Python 3’ü varsayılan Python olarak nasıl ayarlarım?

    CentOS 7’nin sistem komut dosyaları hala Python 2’yi kullandığından, Python 3’ü varsayılan olarak ayarlamak önerilmez ve sistem kararlılığını bozabilir. Bunun yerine, python3 ve pip3 komutlarını açıkça kullanmak veya her proje için sanal ortamları aktifleştirmek en güvenli yaklaşımdır.

  5. Django’yu üretim ortamında nasıl çalıştırmalıyım?

    Geliştirme sunucusu (python manage.py runserver) üretim için uygun değildir. Üretim ortamında, Django uygulamanızı bir WSGI sunucusu (örneğin, Gunicorn veya uWSGI) ile çalıştırmalı ve bu WSGI sunucusunun önüne bir ters proxy sunucusu (örneğin, Nginx veya Apache) koymalısınız. Bu yapılandırma, performansı, güvenliği ve ölçeklenebilirliği artırır.

Bu rehberin, Django ile CentOS 7 üzerinde başarılı bir başlangıç yapmanıza yardımcı olduğunu umuyoruz. İyi geliştirmeler!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version