Takip et

Django CMS Nedir ve Neden Kullanılır?

Django CMS Nedir ve Neden Kullanılır? Django CMS, popüler Django web framework’ü üzerine inşa edilmiş, açık kaynaklı ve güçlü bir içe

Django CMS Nedir ve Neden Kullanılır?

Django CMS, popüler Django web framework’ü üzerine inşa edilmiş, açık kaynaklı ve güçlü bir içerik yönetim sistemidir (CMS). Geliştiricilere esneklik sunarken, editörlere de sezgisel bir arayüz ile kolayca içerik oluşturma ve yönetme imkanı tanır. Modüler yapısı, eklenti desteği ve çoklu dil yetenekleri sayesinde küçük bloglardan büyük kurumsal web sitelerine kadar geniş bir yelpazede kullanılabilir. Bu rehberde, eski sayılabilecek Debian 7 veya Ubuntu 13 VPS ortamlarında Django CMS’i nasıl kuracağınızı adım adım öğreneceksiniz.

Ön Hazırlıklar ve Sistem Güncelleme

Django CMS kurulumuna başlamadan önce, VPS’inizin güncel olduğundan ve gerekli temel paketlere sahip olduğundan emin olmalıyız. Debian 7 ve Ubuntu 13, Python 3’ün modern sürümlerini doğal olarak barındırmayan eski işletim sistemleridir. Modern Django CMS sürümleri Python 3 gerektirdiğinden, bu durum ek adımlar gerektirecektir.

Sistem Güncelleme

İlk olarak, sistem paket listelerinizi güncelleyin ve yüklü paketleri yükseltin:

sudo apt-get update
sudo apt-get upgrade -y

Gerekli Paketlerin Kurulumu

Python geliştirme için gerekli olan temel araçları ve kütüphaneleri yükleyelim. Özellikle build-essential ve python3-dev (veya python-dev Python 2.7 için) paketleri, Python uygulamalarının bağımlılıklarını derlemek için kritik öneme sahiptir.

sudo apt-get install -y build-essential libpq-dev git

libpq-dev paketi, PostgreSQL veritabanı ile Python arasındaki bağlantıyı sağlayan psycopg2 kütüphanesinin derlenmesi için gereklidir.

Python 3 ve Sanal Ortam Kurulumu

Debian 7 ve Ubuntu 13 varsayılan olarak Python 2.7 ile gelir. Modern Django ve Django CMS sürümleri Python 3 gerektirdiğinden, Python 3’ü kurmamız veya mevcut en yüksek Python 3 sürümünü kullanmamız gerekmektedir. Ubuntu 13 için PPA (Personal Package Archive) kullanmak nispeten kolaydır, ancak Debian 7 için Python 3’ü manuel olarak derlemek veya daha eski bir Python 3 sürümünü kullanmak gerekebilir.

Eğer sisteminizde Python 3 yüklü değilse veya eski bir sürümü varsa:

Ubuntu 13 için Python 3 (Önerilen Yöntem):
Ubuntu 13 için deadsnakes PPA’sı genellikle modern Python sürümlerini sağlamaz. Bu nedenle, apt ile mevcut en yüksek Python 3 sürümünü yüklemeyi deneyin. Genellikle bu, 3.4 veya 3.5 civarında bir sürüm olacaktır.

sudo apt-get install -y python3 python3-pip python3-venv

Debian 7 için Python 3 (Alternatif Yöntem – Python 2.7 Kullanımı Veya Manuel Kurulum):
Debian 7’de apt ile Python 3’ün modern bir sürümünü yüklemek zordur.
* Seçenek 1 (Daha Eski Django CMS Sürümü ile Python 2.7): Eğer Python 3 kurmak mümkün değilse, Python 2.7 ile uyumlu olan Django CMS’in eski bir sürümünü (örneğin Django CMS 3.0-3.3 arası) kullanmayı düşünebilirsiniz. Bu durumda python-pip ve python-virtualenv kurmanız gerekir:

sudo apt-get install -y python-pip python-virtualenv

Bu rehber Python 3’e odaklandığından, bu seçeneği kullanıyorsanız Django CMS kurulum komutlarını buna göre ayarlamanız gerekecektir.

* Seçenek 2 (Manuel Python 3 Derlemesi): Bu, daha karmaşık bir yoldur ve bu rehberin kapsamını aşabilir, ancak en son Python 3 sürümünü kurmak için Python’ın kaynak kodunu indirip derlemeniz gerekebilir. Bu, genellikle bir VPS için önerilen bir başlangıç yöntemi değildir.

Bu rehber, Python 3’ün sisteminizde python3 komutuyla erişilebilir olduğunu varsayacaktır. Eğer sadece Python 2.7 varsa, komutları python ve pip olarak değiştirmeniz ve Django CMS’in eski bir sürümünü kurmanız gerektiğini unutmayın.

Sanal Ortam Oluşturma

Projenizin bağımlılıklarını sistem genelindeki Python paketlerinden izole etmek için bir sanal ortam oluşturmak en iyi uygulamadır.

mkdir django_cms_project
cd django_cms_project
python3 -m venv venv_cms # venv_cms adında bir sanal ortam oluşturur
source venv_cms/bin/activate # Sanal ortamı etkinleştirir

Artık terminalinizde (venv_cms) ibaresini görmelisiniz, bu da sanal ortamın etkin olduğunu gösterir.

Veritabanı Kurulumu ve Yapılandırması (PostgreSQL)

Django CMS projeleri için PostgreSQL, güçlü ve güvenilir bir veritabanı seçeneğidir.

PostgreSQL Kurulumu

sudo apt-get install -y postgresql postgresql-contrib

Veritabanı Kullanıcısı ve Veritabanı Oluşturma

PostgreSQL’e bağlanmak için bir kullanıcı ve projeniz için bir veritabanı oluşturmalıyız.

sudo -u postgres psql

PostgreSQL komut istemine girdikten sonra:

CREATE USER cmsuser WITH PASSWORD 'your_secure_password';
CREATE DATABASE cmsproject OWNER cmsuser;
\q

your_secure_password yerine güçlü bir parola belirlemeyi unutmayın.

Django CMS Projesinin Oluşturulması ve Kurulumu

Sanal ortamımız hazır ve veritabanımız ayarlandı. Şimdi Django CMS’i kurup projemizi oluşturabiliriz.

Django CMS Kurulumu

Sanal ortamınız etkin durumdayken, Django CMS ve PostgreSQL bağlantısı için gerekli olan psycopg2-binary paketini pip ile kuralım:

pip install django-cms psycopg2-binary

Django CMS Projesi Oluşturma

Django CMS, proje oluşturmayı kolaylaştıran bir komut satırı aracı sunar.

djangocms my_site # "my_site" adında yeni bir Django CMS projesi oluşturur

Bu komut size birkaç soru soracaktır:
* Select a version for Django CMS: Genellikle varsayılanı (en son kararlı sürüm) seçmek en iyisidir.
* Use latest stable release? [y/N]: y
* Use a custom template? [y/N]: N
* Configure database? [y/N]: y
* Database engine: postgresql_psycopg2
* Database name: cmsproject
* Database user: cmsuser
* Database password: your_secure_password
* Database host: localhost
* Database port: (Boş bırakın veya 5432 girin)
* Activate Django I18n? [y/N]: y (Çoklu dil desteği için)
* Set timezone? [y/N]: y (Kendi zaman diliminizi seçin, örneğin Europe/Istanbul)
* Activate Django MPTT? [y/N]: y
* Install Node.js dependencies? [y/N]: N (VPS üzerinde Node.js kurmak istemiyorsanız N seçin, frontend geliştirmeleri için genellikle yerel ortamda yapılır.)
* Install frontend dependencies? [y/N]: N
* Load a starting page with some example content? [y/N]: y (İlk sayfa içeriği için faydalıdır)

Proje oluşturulduktan sonra, yeni oluşturulan proje dizinine geçin ve gerekli bağımlılıkları yükleyin:

cd my_site
pip install -r requirements.txt

Veritabanı Ayarlarını Kontrol Etme ve Gerekirse Düzenleme

my_site/settings.py dosyasını açarak veritabanı ayarlarının doğru olduğundan emin olun.

# my_site/settings.py içinde DATABASE bölümü
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'cmsproject',
        'USER': 'cmsuser',
        'PASSWORD': 'your_secure_password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

Eğer djangocms komutu sırasında doğru girdileri sağlamadıysanız, bu bölümü elle düzenlemeniz gerekebilir.

ALLOWED_HOSTS Yapılandırması

Güvenlik nedeniyle, Django projenizin hangi host isimlerine yanıt verebileceğini settings.py dosyasında belirtmeniz gerekir. VPS’inizin IP adresini veya alan adını ekleyin.

# my_site/settings.py içinde
ALLOWED_HOSTS = ['your_vps_ip_address', 'your_domain.com', 'localhost']

your_vps_ip_address ve your_domain.com yerine kendi bilgilerinizi girin.

Django CMS’i Başlatma ve İlk Yapılandırma

Her şey hazır olduğuna göre, veritabanı geçişlerini yapabilir, bir süper kullanıcı oluşturabilir ve geliştirme sunucusunu başlatabiliriz.

Veritabanı Geçişlerini Uygulama

Django’nun veritabanı şemasını oluşturması için geçişleri (migrations) uygulamamız gerekir:

python manage.py migrate

Süper Kullanıcı Oluşturma

Django CMS yönetim paneline erişmek için bir süper kullanıcı hesabı oluşturmalıyız:

python manage.py createsuperuser

Komut istemindeki adımları takip ederek bir kullanıcı adı, e-posta ve parola belirleyin.

Geliştirme Sunucusunu Başlatma

Şimdi Django CMS projenizi bir geliştirme sunucusu üzerinde çalıştırabilirsiniz:

python manage.py runserver 0.0.0.0:8000

0.0.0.0 IP adresi, sunucunun tüm ağ arayüzlerinden erişilebilir olmasını sağlar. 8000 ise varsayılan porttur.

VPS’inizin güvenlik duvarı (örneğin UFW) etkinse, 8000 portuna dışarıdan erişime izin vermeniz gerekebilir:

sudo ufw allow 8000/tcp

Artık web tarayıcınızdan http://your_vps_ip_address:8000/ adresine giderek Django CMS sitenize erişebilirsiniz. Yönetim paneline girmek için http://your_vps_ip_address:8000/admin/ adresini kullanabilir ve oluşturduğunuz süper kullanıcı bilgileriyle giriş yapabilirsiniz.

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

Tebrikler! Debian 7 veya Ubuntu 13 VPS’inizde Django CMS’i başarıyla kurdunuz ve çalıştırdınız. Bu rehber, eski sistemlerdeki Python 3 zorluklarına rağmen temel kurulumu tamamlamanıza yardımcı olmuştur. Üretim ortamı için Gunicorn, Nginx gibi web sunucularını ve statik dosyaların yönetimi gibi ek adımları düşünmeniz gerekecektir.

Sıkça Sorulan Sorular (SSS)

S1: python3 komutu bulunamıyor veya eski bir sürüm yüklü?
C1: Eğer python3 komutu çalışmıyorsa veya çok eski bir sürümse, Ubuntu 13 için PPA ile Python 3 kurmayı deneyin veya manuel olarak derleyin (bu daha karmaşıktır). Debian 7 için Python 3 kurulumu daha da zor olabilir; bu durumda Django CMS’in Python 2.7 ile uyumlu olan eski bir sürümünü kullanmayı düşünebilirsiniz. Ayrıca, python komutuyla Python 2.7’ye erişiyorsanız, pip yerine pip2 veya pip komutunu kullanmanız gerekebilir.

S2: Veritabanı bağlantı hatası alıyorum, ne yapmalıyım?
C2:
* my_site/settings.py dosyasındaki DATABASES ayarlarının doğru olduğundan emin olun (kullanıcı adı, parola, veritabanı adı).
* PostgreSQL servisinin çalıştığından emin olun: sudo service postgresql status.
* PostgreSQL kullanıcınızın ve veritabanınızın doğru oluşturulduğunu kontrol edin.
* Eğer localhost dışında bir yerden bağlanmaya çalışıyorsanız, pg_hba.conf dosyasını düzenlemeniz gerekebilir.

S3: ALLOWED_HOSTS hatası alıyorum, siteye erişemiyorum?
C3: my_site/settings.py dosyasında ALLOWED_HOSTS listesine VPS’inizin IP adresini veya alan adını eklediğinizden emin olun. Örneğin: ALLOWED_HOSTS = ['your_vps_ip_address', 'your_domain.com'].

S4: Yönetim paneline giriş yapamıyorum?
C4: python manage.py createsuperuser komutuyla doğru bir süper kullanıcı oluşturduğunuzdan ve belirlediğiniz kullanıcı adı ve parolayı doğru girdiğinizden emin olun.

S5: Statik dosyalar (CSS/JS) yüklenmiyor veya resimler görünmüyor?
C5: Geliştirme sunucusunda bu genellikle bir sorun değildir. Ancak üretim ortamı için python manage.py collectstatic komutunu çalıştırmanız ve web sunucunuzu (örneğin Nginx) statik dosyaları sunacak şekilde yapılandırmanız gerekir. Medya dosyaları için de benzer bir yapılandırma gereklidir.

S6: MySQL veya SQLite kullanabilir miyim?
C6: Evet, Django CMS diğer veritabanlarını da destekler. MySQL kullanmak isterseniz pip install mysqlclient komutunu çalıştırmanız ve settings.py dosyasındaki ENGINE değerini django.db.backends.mysql olarak değiştirmeniz gerekir. SQLite, küçük projeler veya geliştirme için uygun olsa da, üretim ortamında genellikle önerilmez.

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

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.