26 Haziran 2019 08:34

Erdem K.

Django

Django Projesi Yayınlama ve Gerekli Paketlerin Kurulumu

Anasayfa

Django

Django Projesi Yayınlama ve Gerekli Paketlerin Kur...

Dil paketi ve iptables ayarlarımız ile kuruluma başlayabiliriz;

sudo -s
 

locale-gen en; update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8
dpkg-reconfigure locales; dpkg-reconfigure tzdata; export LANGUAGE=en_US.UTF-8; export LC_ALL=en_US.UTF-8
apt autoremove -yqq && apt autoclean
apt update && apt upgrade -yqq
apt autoremove -yqq && apt autoclean
 

 

 

utf-8

 

utf-8

 

Time zone seçimi ile devam ediyoruz.

 

Ubuntu Tzdata Asia

 

 

 

Ubuntu Tzdata Istanbul

 

echo "deb http://archive.ubuntu.com/ubuntu bionic main universe multiverse" >> /etc/apt/sources.list  

Apache 2.4

apt install apache2 -y
a2enmod http2; a2enmod rewrite; a2enmod expires; a2enmod headers; a2enmod ssl; systemctl restart apache2; clear
 

Python 3.6

 

apt install python3.6  

Paketler

 

clear; apt install -y python3-distutils git-all certbot bind9 libapache2-mod-wsgi-py3 libdbi-perl build-essential libauthen-pam-perl apt-show-versions libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev libexpat1 ssl-cert perl libnet-ssleay-perl openssl libpam-runtime libio-pty-perl libjpeg-dev libfreetype6-dev zlib1g-dev unzip; clear;  

PIP3.6

 

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py; python3.6 get-pip.py  

 

PostgreSQL

 

apt install -y postgresql postgresql-contrib libdbd-pg-perl libpq-dev python3-psycopg2; sudo -H pip3.6 install psycopg2 psycopg2-binary  

Dışarıdan bağlantıya izin vermek için;

 

nano /etc/postgresql/10/main/postgresql.conf  

postgresql listen addresses

 

postgresql listen addresses

 

 echo "host  all  all 0.0.0.0/0 md5" >> /etc/postgresql/10/main/pg_hba.conf  

service postgresql restart   

Django

 

sudo -H pip install Django  

clear; apt autoremove -y; apt autoclean; apt update; apt upgrade -y; apt autoremove -y; apt autoclean; clear  

Virtualmin 

 

wget http://software.virtualmin.com/gpl/scripts/install.sh; sh install.sh -f -n server.alanadi.com
 

Virtualmin kurulumumuz tamamlandıktan sonra https://ipadresiniz:10000 şeklinde bağlantı sağlayabilirsiniz.

 

virtualmin login 

 

Virtualmin içerisinde öncelikle bir hesap oluşturmamız gerekiyor, ilgili alanları kendimize göre doldurup oluştur butonuyla devam ediyoruz.

 

create virtual server

 

Oluşturduğumuz "denemeproje.com" bize ait olmadığı için kendi bilgisayarımızın host dosyasına bu alan adını yazabilir ve  bu alan adı üzerinde işlem yapıyor gibi gösterebiliriz;

 

Kendi kullandığımız bilgisayar üzerinde (linux)

echo "192.168.102.22 djangodeneme.com" >> /etc/hosts  

Windows üzerinde;

 C:\Windows\System32\drivers\etc dizinindeki hosts dosyasını bir metin düzenleyicisi ile açıp içerisine yazabiliriz.

Windows Hosts

 

 Host dosyamızı düzenleyip kaydettiğimizde djangodeneme.com alan adı 192.168.102.22 ip adresinde çalışıyor.

 

Tarayıcımıza alan adımızı yazıp test edebiliriz.

 

forbidden

 

Sunucumuzda bir html dosyası olmadığı için ve Apache servisine web sitemizin hangi dizinde çalışacağını belirtmediğimiz için sayfayı görüntüleyemiyoruz,

 

Gerekli kayıtlarımızı oluşturmak için Webmin'e giriş yapıyoruz ve "Servers" kısmından "Apache Webserver" kısmına ilerliyoruz.

 

Bu alanda bulunan Create Virtual Host butonuna tıklayarak gerekli alanları doldurmamız gerekiyor.

 

 https://djangodeneme.com:10000/

 

 Apache Create Virtual Host

 

İlgili alanları doldurduktan sonra oluşan conf dosyasına giderek kontrol edebiliriz.

 

Apache Edit Virtual Host

 

Bu alan adı için yapacağımız apache konfigürasyonumuzu bu dosyaya kayıt etmemiz gerekiyor.

 

Edit Directives

 

Bu dosyaya ssh üzerinden de müdahale edebiliriz;

 

Alan adımızın apache conf dosya yolu: /etc/apache2/sites-available/djangodeneme.com.conf

 

Web sitemizin çalışacağı dizini /home/djangodeneme/public_html/ilkprojem/ olarak belirtmiştik.

 

Bu dizine giderek bir html dosyası oluşturalım.

Sunucumuza giriş yaparak;

 

echo "Django Deneme" >> /home/djangodeneme/public_html/ilkprojem/index.html  

systemctl restart apache2  

Django Deneme

 

Web sitemizi düz html olarak yayınladık.

 

Sunucumuzda yayınlamak üzere django projemizi oluşturalım.

 

django-proje-olustur

 

Python 3.6 sürümünü seçip projemize bir isim veriyoruz, more settings kısmından Django Admin' i aktif ediyoruz ve bir uygulama oluşturuyoruz.

 

python3.6

 

django-app-olustur

 

Projemizi oluşturduktan sonra uygulama klasörü altında gerekli .py uzantılı dosyalarımız oluşuyor.

 

ilk uygulama

 

Projemizde yaptığımız değişiklikleri sunucumuza kolay yoldan ulaştırmak için Github kullanacağız. Bu yüzden proje isimleri çakışmaması için öncelikle oluşturduğumuz projenin ismini bulunduğu dizinden değiştiriyoruz. örn:(../PycharmProjects)

 

Proje Adı Değiştirme

 

Öncelikle Github'a giriş yaparak PyCharm üzerinde oluşturduğumuz ile aynı proje ismini kullanıyoruz. (ilkprojem)

 

Github Proje Oluşturma

 

Oluşturduğumuz proje linkini kopyalayıp PyCharm ile klonluyoruz.

 

Github Proje Link

 

Github Clone

 

Pycharm Git Pull

 

Daha sonra proje klasörüne giderek CTRL+H ile gizli dosyaları görüntülüyoruz.

 

Daha önce ismini "__ilkprojem" yaptığımız klasörden github üzerinden klonladığımız, içerisinde ".git" gizli klasörü bulunan dizine kopyalıyoruz.

 

Proje Birleştir

 

__ilkprojem isimli klasörü artık silebiliriz.

 

Github ile bağlantılı olan projeye girdiğimizde yeni oluşan dosya isimlerinin turuncu renkle işaretlendiğini göreceksiniz.

 

CTRL+K ile Commit oluşturuyoruz.

 

Commit Oluşturma

 

CTRL+ALT+K , daha sonrasında ALT+P ile oluşturduğumuz commit'i sunucuya gönderiyoruz.

 

Git Push

 

Gönderdiğimiz bu dosyaları sunucuya da kopyalamamız gerekiyor.

 

Sunucumuzda projemizi yayınlayacağımız klasöre gidiyoruz. git clone https://projelinki şeklinde komutu giriyoruz.

 

Git Pull

 

kullanıcı adı ve parolamızı girdikten sonra dosyaların sunucuya eklendiğini göreceksiniz.

 

Yayınlayacağımız web sitesi düz html olmayacağı ve bir django projesi olacağı için Apache Webserver üzerinde birkaç değişiklik yapmamız gerekiyor.

 

 

Kullandığımız web kontrol paneline giriş yaparak config dosyasına gidiyoruz, bu işlemi bir kontrol paneline ihtiyaç duymadan ssh üzerinden de gerçekleştirebiliriz. (/etc/apache2/sites-available/djangodeneme.com.conf)

 

ServerName kısmı alan adımızı temsil ediyor.
DocumentRoot kısmına proje yolumuzu yazıyoruz.
WSGI ile olan kısımlar için projemizde WSGI dosyasının olduğu dizini belirtmemiz gerekiyor.

 

 

Apache Conf

 

Config dosyasını bu şekilde düzenledikten sonra systemctl restart apache2 komutu ile web servisimizi yeniden başlatıyoruz.

 

Artık tarayıcı üzerinde alan adımızı çağırabiliriz.

 

Bu şekilde hata almamızın sebebi settings.py klasöründeki ALLOWED_HOSTS fonksiyonuna bir parametre girmememizden kaynaklanıyor.

 

Allowed Hosts Error

 

Projemizde settings.py klasörüne giderek ALLOWED_HOSTS fonksiyonuna alan adımızı veya "*" yazabiliriz.

 

Yaptığımız değişikliği canlı olarak görebilmek için tekrar sunucuya göndermemiz gerekiyor.

 

Git Push

 

Gönderdiğimiz değişikliği aynı zamanda sunucudan çekmemiz gerekir.

 

cd ilkprojem/ komutu ile proje klasörümüze gidiyoruz.

 

İlk Projem

 

git pull komutu ile daha önce bu klasör için tanımladığımız github projesinden dosyalarımızı sunucumuza çekiyoruz.

 

systemctl restart apache2  

komutu ile Apache servisimizi yeniden başlatıyoruz.

 

Git Pull & Apache Restart

 

Göreceğiniz gibi artık Django projemiz yayında.

 

Django Projesi Hazır

 

Kaynakça

Django

hakkında diğer konular

Makdos Bilişim Teknolojileri 2015 - 2025