Time zone seçimi ile devam ediyoruz.
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
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 içerisinde öncelikle bir hesap oluşturmamız gerekiyor, ilgili alanları kendimize göre doldurup oluştur butonuyla devam ediyoruz.
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.
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.
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/
İlgili alanları doldurduktan sonra oluşan conf dosyasına giderek kontrol edebiliriz.
Bu alan adı için yapacağımız apache konfigürasyonumuzu bu dosyaya kayıt etmemiz gerekiyor.
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
Web sitemizi düz html olarak yayınladık.
Sunucumuzda yayınlamak üzere django projemizi oluşturalım.
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.
Projemizi oluşturduktan sonra uygulama klasörü altında gerekli .py uzantılı dosyalarımız oluşuyor.
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)
Öncelikle Github'a giriş yaparak PyCharm üzerinde oluşturduğumuz ile aynı proje ismini kullanıyoruz. (ilkprojem)
Oluşturduğumuz proje linkini kopyalayıp PyCharm ile klonluyoruz.
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.
__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.
CTRL+ALT+K , daha sonrasında ALT+P ile oluşturduğumuz commit'i sunucuya gönderiyoruz.
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.
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.
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.
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.
Gönderdiğimiz değişikliği aynı zamanda sunucudan çekmemiz gerekir.
cd ilkprojem/ komutu ile proje klasörümüze gidiyoruz.
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.
Göreceğiniz gibi artık Django projemiz yayında.