Save 15% on All Hosting Services

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Linux Yönetim

Django’yu Bir Hosting Sunucusuna Nasıl Yükleyebilirsiniz: Tam Adım Adım Rehber

Django, Python web framework’ü olarak hızlı geliştirmeyi ve temiz, pragmatik tasarımı teşvik etmek için tasarlanmış yüksek seviyeli bir framework’tür. Basit bloglardan karmaşık kurumsal platformlara kadar ölçeklenebilir, güvenli ve bakımı kolay web uygulamaları oluşturmak için en popüler seçeneklerden biri olmaya devam etmektedir. Bu kapsamlı kılavuzda, Linux ortamınızı hazırlamaktan ilk projenizi çalıştırmaya ve üretime hazırlamaya kadar, bir hosting sunucusuna Django yüklemek için gereken her adımda size rehberlik edeceğiz.

Web Uygulamanız İçin Neden Django Seçmelisiniz?

Kurulum işlemine dalmadan önce, Django’nun Python web geliştirme alanında neden hakim olmaya devam ettiğini anlamak değerlidir:

  • Hepsi dahil: Django, yerleşik kimlik doğrulama, yönetici paneli, ORM, form işleme ve güvenlik özellikleriyle birlikte gelir.
  • Ölçeklenebilirlik: Django, Instagram ve Pinterest gibi yüksek trafikli platformları güçlendirir.
  • Güvenlik odaklı tasarım: Django, varsayılan olarak SQL enjeksiyonu, XSS, CSRF ve clickjacking dahil olmak üzere yaygın güvenlik açıklarına karşı koruma sağlar.
  • Hızlı geliştirme: Kural-üstüne-yapılandırma felsefesi, geliştiricilerin özellikleri daha hızlı sunmasını sağlar.
  • Büyük ekosistem: Binlerce yeniden kullanılabilir paket ve geniş bir topluluk, neredeyse her soruna çözüm bulunduğu anlamına gelir.

Django’dan en iyi şekilde yararlanmak için güvenilir bir sunucu ortamı isteyeceksiniz. Bir VPS Hosting planı, Django uygulamalarının talep ettiği root erişim, özel kaynaklar ve esneklik sağlar.

Ön Koşullar

Kurulum işlemine başlamadan önce, aşağıdakilerin yerinde olduğundan emin olun:

  • Linux dağıtımı çalıştıran bir hosting sunucusu (Ubuntu 20.04/22.04 veya Debian önerilir)
  • sudo ayrıcalıklarıyla sunucuya SSH erişimi
  • Python 3.8 veya daha yüksek (Python 3.10+ önerilir)
  • pip (Python’ın paket yöneticisi) yüklü
  • Linux komut satırı hakkında temel bilgi

> Pro İpucu: Üretim Django uygulaması çalıştırıyorsanız, paylaşılan hosting ortamlarından kaçının. Bir VPS Hosting planı veya Dedicated Server, uygulamanızın ihtiyaç duyduğu kontrol ve performansı sağlayacaktır.

Adım 1: SSH Aracılığıyla Sunucunuza Bağlanın

Terminal’i açın ve hosting sunucunuza SSH bağlantısı kurun:

ssh username@server_ip

username yerine gerçek sistem kullanıcı adınızı ve server_ip yerine sunucunuzun genel IP adresini yazın. Özel bir SSH portu veya anahtar tabanlı kimlik doğrulama dosyası kullanıyorsanız, komutu buna göre ayarlayın:

ssh -i /path/to/your/key.pem username@server_ip

Bağlandıktan sonra, kurulum işlemine başlayabileceğiniz sunucunuza bir komut satırı arayüzü elde edeceksiniz.

Adım 2: Sisteminizi Güncelleyin ve Python & pip Yükleyin

Sistem paketlerinizi güncel tutmak, hem güvenlik hem de uyumluluk açısından kritik bir ilk adımdır.

Paket İndeksini Güncelleyin

sudo apt update && sudo apt upgrade -y

Python 3 ve pip Yükleyin

Çoğu modern Ubuntu ve Debian dağıtımı, Python 3’ün önceden yüklü olarak gelir. Önce Python sürümünüzü doğrulayın:

python3 --version

Python 3 yüklü değilse veya pip’e ihtiyacınız varsa, bunları şu şekilde yükleyin:

sudo apt install python3 python3-pip -y

Yüklemeleri doğrulayın:

python3 --version
pip3 --version

Her iki aracın da mevcut olduğunu doğrulayan sürüm numaralarını görmelisiniz.

Adım 3: Python Sanal Ortamı Kurun

Sanal ortam kullanmak sadece önerilmez — her Python projesi için en iyi uygulama olarak kabul edilir. Sanal ortamlar, projenizin bağımlılıklarını sistem genelinde Python yüklemesinden ve aynı sunucudaki diğer projelerden izole eder, sürüm çatışmalarını önler ve ortamınızı temiz tutar.

virtualenv Yükleyin

sudo pip3 install virtualenv

Alternatif olarak, Python’ın yerleşik venv modülünü (Python 3.3+ sürümünde mevcut) kullanabilirsiniz:

sudo apt install python3-venv -y

Proje Dizininizi ve Sanal Ortamınızı Oluşturun

Projenizi barındırmak istediğiniz dizine gidin veya yeni bir tane oluşturun:

mkdir myproject
cd myproject

Şimdi proje dizininizin içinde sanal ortamı oluşturun:

virtualenv venv

Veya yerleşik venv modülünü kullanarak:

python3 -m venv venv

Sanal Ortamı Etkinleştirin

source venv/bin/activate

Etkinleştirildikten sonra, komut isteminiz sanal ortam adını gösterecek şekilde değişecektir, örneğin:

(venv) username@server:~/myproject$

Sanal ortam etkin durumdayken yürütülen tüm pip install komutları, paketleri yalnızca bu izole ortamda yükleyecektir. Herhangi bir zamanda devre dışı bırakmak için şunu çalıştırın:

deactivate

Adım 4: Django Yükleyin

Sanal ortamınız etkin durumdayken, pip kullanarak Django’yu yükleyin:

pip install django

Django’nun belirli bir sürümünü yüklemek için (uyumluluk sağlamak için üretim için önerilir):

pip install django==4.2

Yüklemeyi doğrulayın:

django-admin --version

Terminal’e yüklü Django sürüm numarasını yazdırılmış görmelisiniz.

Adım 5: Yeni Django Projesi Oluşturun

Yeni bir proje oluşturmak için Django’nun yerleşik django-admin komut satırı aracını kullanın:

django-admin startproject myproject .

> Not: Sondaki nokta (.), Django’ya proje dosyalarını iç içe geçmiş bir alt dizin oluşturmak yerine geçerli dizinde oluşturmasını söyler. Bu, çoğu dağıtım için daha temiz bir yapıdır.

Proje dizininiz şimdi aşağıdaki yapıyı içerecektir:

myproject/
├── manage.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • manage.py — Django projenizle etkileşim kurmak için komut satırı yardımcı programı.
  • settings.py — Projenizin merkezi yapılandırma dosyası.
  • urls.py — URL yönlendirme yapılandırması.
  • wsgi.py / asgi.py — WSGI ve ASGI uyumlu web sunucuları için giriş noktaları.

Adım 6: Veritabanı Ayarlarını Yapılandırın

Veritabanı bağlantısını yapılandırmak için settings.py dosyasını açın:

nano myproject/settings.py

Varsayılan: SQLite (Yalnızca Geliştirme)

Varsayılan olarak, Django, geliştirme ve test için uygun olan ancak üretim için önerilmeyen SQLite kullanmak üzere yapılandırılmıştır:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Üretim Seçeneği: PostgreSQL

PostgreSQL, üretimde Django için en yaygın olarak önerilen veritabanıdır. Önce gerekli paketleri yükleyin:

sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binary

Ardından DATABASES ayarını settings.py içinde güncelleyin:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Üretim Seçeneği: MySQL / MariaDB

MySQL veya MariaDB’yi tercih ederseniz, gerekli adaptörü yükleyin:

sudo apt install default-libmysqlclient-dev -y
pip install mysqlclient

Ardından DATABASES ayarını yapılandırın:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

ALLOWED_HOSTS Yapılandırın

settings.py içindeyken, ALLOWED_HOSTS ayarını sunucunuzun IP adresini veya alan adını içerecek şekilde güncelleyin. Bu, Django’nun hata ayıklama olmayan modda istekleri sunması için gereklidir:

ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']

Adım 7: Veritabanı Geçişlerini Uygulayın

Django, veritabanı şeması değişikliklerini yönetmek için bir geçiş sistemi kullanır. Gerekli tüm veritabanı tablolarını oluşturmak için ilk geçişleri çalıştırın:

python manage.py migrate

Uygulanan her geçişi listeleyen çıktı göreceksiniz. Başarılı bir geçiş şöyle görünür:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  ...

Süper Kullanıcı Oluşturun (İsteğe Bağlı Ancak Önerilir)

Django’nun yerleşik yönetici arayüzüne erişmek için bir yönetici hesabı oluşturun:

python manage.py createsuperuser

Kullanıcı adı, e-posta adresi ve parola girmeniz istenecektir.

Adım 8: Django Geliştirme Sunucusunu Çalıştırın

Yüklemenizi doğrulamak için Django’nun yerleşik geliştirme sunucusunu başlatabilirsiniz:

python manage.py runserver 0.0.0.0:8000

Bu komut, geliştirme sunucusunu 8000 numaralı bağlantı noktasında tüm kullanılabilir ağ arabirimlerine bağlar. Web tarayıcınızı açın ve şu adrese gidin:

http://your_server_ip:8000

Django karşılama sayfasını görmelisiniz — “Kurulum başarılı oldu! Tebrikler!” mesajıyla bir roket gemisi.

Yönetici paneline erişmek için şu adrese gidin:

http://your_server_ip:8000/admin

> Önemli: Django’nun yerleşik geliştirme sunucusu üretim için uygun değildir. Tek iş parçacıklı, performans için optimize edilmemiş ve güvenlik sertifikasyonundan yoksundur. Canlı dağıtımlar için her zaman üretim sınıfı bir web sunucusu kullanın.

Adım 9: Django’yu Üretim İçin Hazırlayın (Önerilir)

Üretim dağıtımları için uygun bir web sunucusu yığını yapılandırmanız gerekir. En yaygın ve önerilen kurulum Nginx + Gunicorn‘dur.

Gunicorn Yükleyin

Sanal ortamınız etkin durumdayken:

pip install gunicorn

Gunicorn’un uygulamanıza hizmet verebileceğini test edin:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi

Nginx’i Yükleyin ve Yapılandırın

sudo apt install nginx -y

Nginx sunucu bloğu yapılandırma dosyası oluşturun:

sudo nano /etc/nginx/sites-available/myproject

Aşağıdaki yapılandırmayı ekleyin:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        root /home/username/myproject;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Yapılandırmayı etkinleştirin ve Nginx’i yeniden başlatın:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Statik Dosyaları Toplayın

settings.py dosyasını statik dosyalar dizini ile güncelleyin:

STATIC_ROOT = BASE_DIR / 'staticfiles'

Ardından tüm statik dosyaları toplayın:

python manage.py collectstatic

Uygulamanızı SSL ile Güvenli Hale Getirin

Herhangi bir üretim Django uygulaması için HTTPS vazgeçilmezdir. Bir SSL Sertifikası, sunucunuz ile kullanıcılarınız arasında aktarılan verileri şifreler, hassas bilgileri korur ve modern tarayıcı güven göstergeleri için gereklidir. AlexHost, hosting ortamınızla sorunsuz bir şekilde entegre olan SSL sertifikaları sunar.

Ek Üretim Hususları

Hassas Ayarlar İçin Ortam Değişkenleri

SECRET_KEY, veritabanı parolaları veya API anahtarları gibi hassas değerleri settings.py içinde asla sabit kodlamayın. Bunun yerine ortam değişkenlerini kullanın:

pip install python-decouple

settings.py içinde:

from decouple import config

SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)

Üretimde DEBUG’u False Olarak Ayarlayın

###

Yönetim
Linux Sanal Sunucular
Güvenlik LiteSpeed ​​Barındırma Yönetim

Save 15% on All Hosting Services

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bilgiye hızlı erişim
Bilgiye hızlı erişim

Zamandan tasarruf edin ve sorunuza hızlı bir yanıt alın

Sorunları kendiniz çözün
Sorunları kendiniz çözün

Bilgi tabanı, teknik görevleri kendi başınıza halletmenize olanak tanıyan ayrıntılı eğitimler içerir.

Becerilerin geliştirilmesi
Becerilerin geliştirilmesi

Bilgi tabanını kullanarak, web barındırma ve ilgili konular hakkındaki bilgilerinizi genişletirsiniz

Çizimler ve diyagramlar
Çizimler ve diyagramlar

Birçok makaleye, karmaşık süreçlerin ve ayarların anlaşılmasını kolaylaştıran resimler ve diyagramlar eşlik etmektedir.

Yararlı Püf Noktaları
Yararlı Püf Noktaları

Site veya web uygulamanızın performansını artırmak için faydalı ipuçları ve püf noktaları bulacaksınız.

Verilen konuların uygunluğu
Verilen konuların uygunluğu

Bilgi bankasındaki bilgiler, BT altyapısı ve AlexHost hizmeti alanındaki en son değişiklikleri ve eğilimleri yansıtacak şekilde düzenli olarak güncellenmektedir

Aradığınız konuyu bulamadınız mı? Mükemmel bir çözüm var

Seçkin Misafirler ve Müşteriler! Sizin rahatınız bizim önceliğimizdir! Belirli bir yazılımı kurmakta veya bir sunucuyu dağıtmakta zorluk çekiyorsanız, lütfen bizimle iletişime geçmekten çekinmeyin. Görüşlerinize değer veriyoruz ve sorunlarınızı çözmenize yardımcı olmaya her zaman hazırız.

Dahası, size bilgi tabanımızın oluşturulmasına aktif olarak katılma fırsatı veriyoruz. Veritabanımıza dahil edilmesini istediğiniz konularınız veya sorularınız varsa, bize bildirin! İhtiyaçlarınıza göre ayrıntılı makaleler ve kılavuzlar yazmaya hazırız.

AlexHost ile deneyiminizi mümkün olduğunca rahat ve verimli hale getirmek için çalışıyoruz ve bilgi tabanına katkınız bu hedefe ulaşmamıza yardımcı oluyor. Bize ulaşın ->
info@alexhost.com ve bizimle konaklamanızı nasıl daha iyi hale getirebileceğimizi bize bildirin.

Solution Image