Turkticaret.net Üzerinde Django Projesi Canlıya Alma

Kendi bilgisayarımızda geliştirdiğimiz bir Django web projesini paylaşımlı bir hosting ortamında yayına almak, standart bir WordPress kurulumundan biraz daha farklı yapılandırmalar gerektirir.

bugrayalcin.com.tr alan adı üzerinden ilerleyerek, Turkticaret.net altyapısında standart bir hosting paketinden Python destekli sunucuya nasıl geçiş yapılacağını ve projenin nasıl yayına alınacağını adım adım inceleyeceğiz.

1. Hazırlık ve Mevcut Sunucudan Ayrılma

Turkticaret.net üzerinde standart bir web hosting paketi aldığınızda, bu paket varsayılan olarak standart PHP işlemleri için optimize edilmiştir. Django gibi Python tabanlı bir projeyi çalıştırabilmek için projenizi sistemin Python/Node.js destekli özel sunucularına taşımanız gerekir.

Destek ekibinin de belirttiği üzere, bu geçişi sağlamak için öncelikle alan adımızı mevcut standart panelden silmeliyiz.

⚠️ Önemli Uyarı: Bu işleme başlamadan önce mevcut sitenizde bulunan tüm dosyaların ve veritabanlarının yedeğini bilgisayarınıza indirdiğinizden emin olun. Alan adı silindiğinde eski verileriniz kaybolacaktır.

  • Turkticaret.net müşteri paneline giriş yapın.

  • Sol menüden Hosting İşlemleri -> Yeni Web Hosting Paketleri adımını izleyin.

  • Mevcut hosting paketinizin içindeki Tanımlı Domainler listesine gelin.

  • Önce varsa "Alias (Park)" domainleri, en son ise ana domaininizi (bizim örneğimizde bugrayalcin.com.tr) İşlemler -> Sil butonunu kullanarak kaldırın.

(Destek ekibinin yönlendirmesi aşağıdaki görselde yer almaktadır.)

2. Python/Node.js Destekli Yeni Sunucuyu Tanımlama

Alan adımızı boşa çıkardıktan sonra, şimdi onu Python kodlarımızı derleyebilecek doğru sunucu mimarisine bağlayacağız.

  • Aynı hosting yönetimi sayfasında bulunan "Yeni Alan Adı Ekle" veya "Domain Tanımla" butonuna tıklayın.

Karşınıza çıkan pencerede şu kritik seçimleri yapmalısınız:

  1. Eklenecek Alan Adı: Kendi domaininizi yazın (bugrayalcin.com.tr).

  2. Hosting Türü: Linux seçeneğini tercih edin.

  3. Hosting Paneli: İşte en önemli kısım burası! Açılır menüye tıklayın ve standart panel yerine "Python/Nodejs Hosting" seçeneğini işaretleyin.

Bu seçimleri yapıp "Ekle" butonuna bastığınızda, sistem alan adınızı Python altyapısına sahip yeni bir sunucuya atayacaktır.

3. Yeni Sunucu Bilgilerini Kaydetme ve DNS Ayarları

Tanımlama işlemi tamamlandığında sistem size yeni bir başarı penceresi sunacaktır. Bu pencere, uygulamanızın yeni evinin anahtarlarını içerir.

Bu ekranda yer alan:

  • Panel URL: (Örn: https://python01.turkticaret.net)

  • Panel Kullanıcı Adı: (Örn: bug6lyalcicomtr)

  • Panel Şifresi

bilgilerini mutlaka güvenli bir yere kopyalayın. Artık tüm dosya yükleme ve terminal işlemlerinizi bu yeni panel adresi üzerinden gerçekleştireceksiniz.

Ayrıca ekranın alt kısmında yer alan Name Server (DNS) bilgilerine dikkat edin. Yeni sunucuya geçtiğiniz için, alan adınızın ayarlarından Name Server adreslerinizi (ns1, ns2, ns3.turkticaret.net olarak) güncellemeyi unutmayın.

4. Yeni Panele Giriş ve Dosya Yükleme İşlemleri

DNS yönlendirmelerinizi yaptıktan ve kaydettiğiniz bilgilerle yeni Panel URL'nize (python01.turkticaret.net) giriş yaptıktan sonra sizi standart bir cPanel arayüzü karşılayacaktır.

  • Bu arayüzde Files (Dosyalar) bölümü altındaki File Manager (Dosya Yöneticisi) aracına tıklayın.

  • Güvenlik açısından, Django dosyalarınızı herkesin erişebildiği public_html klasörüne değil, ana dizinde oluşturacağınız yeni bir klasöre (Örn: django_app) yükleyin.

Projenizi yüklemeden önce lokaldeki settings.py dosyanızda DEBUG = False yaptığınızdan ve terminalden pip freeze > requirements.txt komutu ile kütüphane listenizi çıkardığınızdan emin olun. .venv gibi sanal ortam dosyalarını sunucuya yüklemeyin, sadece kodlarınızı yükleyin.

1. ZIP dosyasını cPanel'e yükleyin

cPanel → File Manager

Şuraya girin:

public_html

veya alt domain kullanıyorsanız onun klasörüne.

Sonra:

  • Upload

  • sikayet_projesi.zip yükle

  • Yükleme bitince

  • ZIP'e sağ tık → Extract

Şöyle görünmeli:

public_html/
    sikayet_projesi/
        manage.py
        config/
        petitions/
        requirements.txt

2. Python uygulaması oluşturun

cPanel → Setup Python App

Görselde zaten var.

Create Application deyin.

Önerilen ayarlar:

Python version

Python 3.12 veya 3.11

(3.13 varsa Django 6 ile uyabilir ama 3.11/3.12 daha güvenli)


Application root

ZIP'in içindeki proje klasörü:

sikayet_projesi

veya tam yol:

/home/kullaniciadi/sikayet_projesi

Application URL

Ana domain:

/

veya alt domain:

sikayet

Startup file

Django için:

passenger_wsgi.py

Application Entry Point

application

Create deyin.


3. Terminal açın

cPanel → Terminal

Görselde var.

Terminalde:

Önce Python app ortamını aktif edin.

cPanel oluşturunca size şu tip komut verir:

source /home/USERNAME/virtualenv/sikayet_projesi/3.12/bin/activate

Onu çalıştırın.


4. Requirements kurun

Terminal:

cd ~/sikayet_projesi

Sonra:

pip install -r requirements.txt

Kurulacak paketler:

  • Django

  • djangorestframework

  • jazzmin

  • Pillow

  • corsheaders


5. passenger_wsgi.py oluşturun

Proje kökünde oluşturun:

sikayet_projesi/passenger_wsgi.py

İçeriği:

import os
import sys

sys.path.insert(0, os.path.dirname(__file__))

os.environ.setdefault(
    "DJANGO_SETTINGS_MODULE",
    "config.settings"
)

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

6. Static dosyaları toplayın

Bu adım önemli.

Terminal:

python manage.py collectstatic

Sorarsa:

yes

7. Migration kontrolü

SQLite dosyanız ZIP içinde mevcut:

db.sqlite3

Yine de çalıştırın:

python manage.py migrate

8. Superuser oluşturun (gerekiyorsa)

Admin hesabınız yoksa:

python manage.py createsuperuser

9. .htaccess kontrolü

Bazı hostinglerde gerekebilir.

public_html/.htaccess

şu şekilde olabilir:

PassengerAppRoot /home/USERNAME/sikayet_projesi
PassengerPython /home/USERNAME/virtualenv/sikayet_projesi/3.12/bin/python

10. Python App'i restart edin

Setup Python App →

Restart

butonuna basın.


11. Siteyi test edin

Tarayıcıda:

bugrayalcin.com.tr

Admin:

bugrayalcin.com.tr/admin

Projede dikkatimi çeken birkaç nokta:

1. DEBUG=False

Bu doğru.


2. ALLOWED_HOSTS=["*"]

Çalışır ama güvenlik için sonra bunu değiştirin:

ALLOWED_HOSTS = [
    "bugrayalcin.com.tr",
    "www.bugrayalcin.com.tr"
]

3. Gmail SMTP

.env dosyanız var.

Hostingte bunun çalışması için .env içine gerçek bilgiler girin:

EMAIL_HOST_USER=mail@gmail.com
EMAIL_HOST_PASSWORD=uygulama_sifresi


Yorumlar

Bu blogdaki popüler yayınlar

Pardus Üzerine Django Kurulumu

Python ile Web Geliştirme: Django App Oluşturma