ubuntu server 16.10 işletim sisteminde bulunan

advertisement
UBUNTU SERVER 16.10 İŞLETİM SİSTEMİNDE BULUNAN VERİTABANINIDAKİ
VERİLERİ PYTHON-BOTTLE PROGRAMLAMAYLA ÇEKEN WEB
UYGULAMASI
1. UYGULAMADAKİ YAZILIMLAR
SSH: SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. Ssh ile ağa
bağlı olan iki bilgisayar arasında veri aktarımı güvenlik kanalı üzerinden güvensiz bir ağda
yapılır. Bu durumda ağda Ssh ile haberleşen makinelerden biri ssh sunucusu diğeri ssh
istemcisi olur. Bu uygulamada Windows işletim sisteminden Ubuntu Server‟a erişim
sağlanarak ayarlamalar yapmak için yüklendi.
UBUNTU SERVER: Grafik ara yüzü olmayan ve sunucu işlemleri için kullanılan Linux
tabanlı açık kaynak kodlu işletim sistemidir.
APACHE: açık kaynak kodlu ve özgür bir Web sunucu programıdır. Apache Yazılım Vakfı
tarafından geliştirilmektedir. Unix, GNU, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS
X, Microsoft Windows, OS/2, TPF ve eComStation işletim sistemleri üzerinde çalışabilir.
SQLLİTE: Basit veritabanları oluşturmak için kullanılan bir yazılımdır.
PYTHON: Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek
seviyeli bir programlama dilidir.
Modüler yapısı, sınıf dizgesini (sistem) ve her türlü veri alanı girişini destekler. Hemen hemen
her türlü platformda çalışabilir. (Unix , Linux, Mac, Windows, Amiga, Symbian). Python ile
sistem programlama, kullanıcı arabirimi programlama, ağ programlama, uygulama ve
veritabanı yazılımı programlama gibi birçok alanda yazılım geliştirilebilir.
PYTHON-BOTTLE: Bottle Python için geliştirilen sade, hızlı ve düşük boyutlu mikro webçerçeve aracıdır. Tek dosya modülü şeklinde dağıtılır ve standart Python kütüphanesi dışında
başka kütüphaneye ihtiyaç duymaz.
Bu araç sayesinde web uygulamasının çalışması sırasında Apache Server‟a ihtiyaç duyulmaz,
web uygulaması sorunsuz bir şekilde çalışır.
PYTHON-VIRTUALENV: Virtualenv paketi oluşturulan Python projesinin sistemin Python
ortamından izole edilmesini sağlar. Bu sayede işletim sisteminin tamamını etkilemeyen ayrı
bir Python projesi oluşturulabilir.
2. KURULUM AŞAMALARI
Ubuntu Server 16.10 işletim sistemi VirtualBox programında sanal bilgisayara kurulur.
Kurulum sonunda Resim‟1 görüldüğü gibi iki paket seçilip kurulum tamamlanır.
Resim-1
Kurulan bu sanal makine için VirtualBox‟taki ağ ayarları aşağıdaki şekilde yapılır:
Resim-2‟de görüldüğü gibi NAT seçilir. Bunun nedeni sanal bilgisayarın gerçek bilgisayardan
IP adresini alması gerektiğidir.
Resim-2
Resim-3‟de görülen menüyü açmak için Advanced‟e tıklanır.
Resim-3
Resim-4‟de gösterildiği gibi port ayarlamaları yapılır. SSH; gerçek makinadaki Windows
işletim sisteminden sanal makinadaki işletim sisteminde oturum açıp işlem yapmak için
ayarlanadı. Web; oluşturulan web uygulamasının yönlendirmesini yapmak için oluşturuldu.
Burada 8080 portunun kullanılmasının nedeni sunucuda 80 portunun kullınılıyor olmasıdır.
Resim-4
Kurulum tamamlandıktan sonra işletim sistemi açılır. Gerekli güncelleştirmeler Resim-5‟de
görüldüğü gibi yüklenir.
Resim-5
Resim-6‟da görüldüğü Virtualenv paketi kurulur.
Resim-6
Resim-7‟de görüldüğü gibi Virtualenv paketinin yükleneceği konum için yeni bir dizin (odev)
oluşturulur. Daha sonra paket aktifleştirilir.
Resim-7
Python ile web uygulamasının çalıştırılması için Python-Bottle web aracı yüklenecektir.
Yükleme Resim-8‟de görüldüğü yapılacaktır.
Resim-8
Veritabanı oluşturmak için Sqllite yüklenecektir. Yükleme Resim-9‟daki olacaktır.
Resim-9
Bottle aracının Sqllite veritabanına kolayca bağlanabilmesi için Bottle-Sqllite paketi
yüklenmelidir. Bu paketin yüklenmesi Resim-10‟daki gibidir.
Resim-10
Veritabanının oluşturulması: “nano ~/projects/ogrenci_bilgi.py” komutuyla veritabanı
dosyası oluşturulur. Veritabanının içeriği Resim-11‟de gösterilmiştir. Resim-11‟de
gösterildiği veriler yazıldıktan sonra Ctrl+o tuşlarına basılarak kaydedilir sonra Ctrl+x
tuşlarına basılarak dosya kapatılır. “python ~/projects/ogrenci_bilgi.py” komutuyla veritabanı
oluşturulur.
Resim-11
Web sayfası için kodun yazılması: “python ~/projects/ogrenci.py” komutuyla web sayfasını
oluşturacak komutlar Resim-12‟deki gibi yazılır. Ctrl+o ile dosya kaydedilir, Ctrl+x ile dosya
kapatılır. Host‟un „0.0.0.0‟ olmasının nedeni local makine dışından da içeriğe erişimin
olabilmesidir. 8080 portunun kullanılmasının nedeni diğer portların kullanılıyor olmasıdır.
Resim-12
Web
sayfası
için
template(şablon)
oluşturulması:
“nano
/home/isletimsistemleri/ogrenci_bilgileri.tpl” komutuyla template dosyası oluşturulur. Dosyanın içeriği
Resim-13‟deki gibi olacaktır. Ctrl+o ve Ctrl+x tuş kombinasyonları çalıştırılarak dosya
kaydedilip kapatılır.
Dikkat: Template dosyası root dizinine kaydedilirse web sayfasına erişimde hata oluşur. (Ben
bu sorunu yaşadım. Dosyayı home dizinine taşıdıktan sorun çözüldü.)
Resim-13
Web sunucusu “python ~/projects/ogrenci.py” komutuyla çalıştırılır ve 8080 portu
dinlenmeye başlanır(Resim-14). Herhangi bir bilgisayar web sunucuna bağlandığında gerekli
bilgiler ekranda görülür(Resim-14). Sunucunun portu dinlemesini sonlandırmak için Ctrl+c
tuşlarına basılır. Resim-14 görülen 10.0.2.2 sunucuya bağlanan bilgisayarın IP adresidir.
Resim-14
Web sunucusuna bağlanmak için adres satırına “192.168.56:8080/ogrenci” yazılmalıdır.
Buradaki IP adresi sunucunun kurulu olduğu bilgisayarın IP adresidir. Bağlantı sağlandıktan
sonra bilgisayarın internet tarayıcısında Resim-15‟deki gibi bir sayfa açılır.
Resim-15
PROJENİN YAPIMINDA BAŞVURULAN KAYNAKLAR:
https://tr.wikipedia.org/wiki/SSH
https://tr.wikipedia.org/wiki/Python_(programlama_dili)
http://bottlepy.org/docs/dev/
https://www.digitalocean.com/community/tutorials/how-to-deploy-python-web-applicationswith-the-bottle-micro-framework-on-ubuntu-14-04
Download