6 Aralık 2016 Salı

KERİM METİN-MEHMET SARIKOÇ İŞLETİM SİSTEMLERİ ÖDEVİ




UBUNTU SERVER ÜZERİNDEN MYSQL VE PYTHON İLE BASİT WEB UYGULAMASI GELİŞTİRME


KULLANILAN BİLEŞENLER

* Ubuntu Server 16.10 

    Linux tabanlı özgür ve ücretsiz bir işletim sistemi. Bilgisayarlar, sunucular ve akıllı telefonlara yönelik olarak geliştirilmektedir. Ubuntu projesi Linux ve özgür yazılımın, bilgisayar kullanıcılarının günlük yaşamının bir parçası haline gelmesi amacıyla başlatılmış olup ilk kararlı masaüstü sürümü Ekim 2004'te yayınlanmıştır. Ubuntu’nun masaüstü sürümü günümüzde 40 milyonu aşkın kullanıcı sayısıyla dünyanın en yaygın kullanılan masaüstü Linux dağıtım konumundadır. Ubuntu, başta Linux işletim sistemi çekirdeği olmak üzere, çok sayıda yazılım paketinden oluşmaktadır. Büyük çoğunluğu bir özgür yazılım lisansı altında dağıtılan bu bileşenler içinde tek istisna, bazı özel donanım sürücüleridir. 
      İkinci beta sürümü 28 Eylül 2016‘da duyurulan “Yakkety Yak” kod adlı Ubuntu 16.10’un final sürümü, sürüm takvimine uygun biçimde, bugün (13 Ekim 2016’da) Adam Conrad tarafından duyuruldu. Pek çok güncellenmiş paket ve Unity 8 masaüstü ortamı ile gelen sistem, 4.8 Linux çekirdeği üzerine yapılandırılmış bulunuyor.
     
* Apache Server 2.4.18

        Bu program sayesinde web sunucusu oluşturularak, internet dizinini bu sunucuya göndermemizi ve dizin oluşturmamızı sağlayan bir ücretsiz programdır. Bu program ile 80 portunu kullanarak dizin oluşturabilmektedir. Modüler olarak yapısı açık kaynak kodlu olan bu Apache Server ile sunuculardaki dosyalar kolaylıkla özelleştirebilmektedir.  Apache server ile web sunucuları kolaylıkla kontrol edilebilir, düzenlenebilir ve içerikler zorlanmadan ekleyip çıkarılabilmektedir.

* Pyhton 3.5.2+


       Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir. Girintilere dayalı basit sözdizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır. 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ştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih edilir.

* Mysql 14.14 (distrib 5.7.16)


MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (İng. multi-threaded), çok kullanıcılı (İng.multi-user), hızlı ve sağlam (İng. robust) bir veri tabanı yönetim sistemidir. UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. Linux altında daha hızlı bir performans sergilemektedir. Kaynak kodu açık olan MySQL'in pek çok platform için çalıştırılabilir ikilik kod halindeki indirilebilir sürümleri de mevcuttur. Ayrıca ODBC sürücüleri de bulunduğu için birçok geliştirme platformunda rahatlıkla kullanılabilir. MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları sorununu başarılı bir şekilde çözmektedir. MySQL'in 4.0 sürümü ile birlikte "transaction" desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir.

ADIM ADIM KURULUM İŞLEMLERİ

1. https://www.ubuntu.com/download/server sitesinden Ubuntu Server 16.10 indirildi.

2. https://www.virtualbox.org/ adresinden VirtualBox 5.1 indirildi. 

3. VirtualBox Programı üzerinden İşlemlere başlandı.




CD yazılmadan ISO dosyası üzerinden de işlemler gerçekleştirilebiliyor. Biz Programı Direk ISO üzerinden gerçekleştirdik.
4. Kurulum Başladı. Aşağıdaki ekrandan Kurulum Dili seçiliyor.

Bu ekrandan Ubuntu Sunucu Sürümü İşaretlenir ve Enter tuşuna basılır.





Bu pencereden Ubuntu server için belirleyeceğiniz sunucu ismi girilir.



Bu pencereden kurduğumuzu işletim sistemine şifre (password) veriyoruz.


BU pencereden disk yapılandırması seçeneklerinden uygun olanı seçilir.


Kurulum yapılırken kurulacak servisler işaretlenir( mail server, dns server...)



Kurulum tamamlandı. Ubuntu Server İşletim sistemi Başlatıldı. Login Kısmına Verilen İsim ve Password kısmına ise vermiş olduğumuz şifre girildi...

5. İşletim sistemi kurulumu bittikten sonra sudo apt-get update komutu çalıştırılarak paketlerin güncellenmesi sağlandı.  Bu aşamadan sonra Ödev için gerekli Python3, Apache server, Mysql Server kurulumları gerçekleştirilerek basit bir web sayfası hazırlanmıştır.

python3 kurulumu(sudo apt-get install python3)

python3 pip kurulumu yapıldı. (python paket yöneticisi yüklendi) 

6. Apache Server Kurulumu yapıldı.



      Apache server yapılandırma ayarları:

  • sudo mkdir /var/www/odev komutu ile kök dizini içine ödev klasörü oluşturuldu.
  • sudo a2dismode mpm_event komutu ile python apache servere adapte edildi.
  • sudo a2enmode mpm_prefork cgi ile apache server'ın cgi scriptlerini çalıştırabilmesi için izin verildi,
  • sudo nano  /etc/apache2/sites-enabled/000-default.conf komutu ile apache konfigürasyon dosyasını nano editörü ile açarak aşağıdaki eklemeler ve değişiklikler yapılarak aynı dosyada kayıt işlemi yapılır.



Bu  değişiklikler ile apache serverın kök dizini değişikliği yapıldı ayrıca .py uzantılı dosyaların yayınlanabilmesi için handler eklendi. buradaki test isimli klasör bizim uygulamamızda ödev olarak değiştirildi.


  • mysql -u root -p komutu ile Mysql kullanımına açıldı. mysql klasörüne girildi.
  • Mysql> CREATE DATABASE; deneme ile Deneme veritabanı oluşturuldu. 
  • Use deneme; ile deneme veritabanı kullanıma açıldı.
  • Mysql> CREATE TABLE odev (num INT, isim varchar(30));  ile veritabanı içinde tablomuz oluşturuldu.
Tablomuz içine veri girilince Mysql komutu ile ekran görüntüsü.

 Python Kodu ekran görüntüsü.(sudo nano /var/www/odev/index.py kodu ile)


 python kodları ile oluşturulmuş index.py dosyası için erişim yetkilendirilmesi yapıldı.

7. Ağ Yapılandırılma Ayarları

ifconfig komutu ile sanal makinemizin ip numarasına bakıldığından 10.0.2.15 li bir ip alınıyor. Bu ip numarası ile tarayıcıdan bakıldığında dosyamıza erişim sağlanamıyor. Bunun için VirtualBox'tan Ayarlar kısmından "Ağ" seçenekleri bölümünden "Bağdaştırıcı 1" kısmından "köprü bağdaştırıcısı" olarak yapılandırılacaktır. Ekran görüntüsü aşağıdaki gibidir.

Bu ayarlamadan sonra tarayıcıdan ifconfig komutu ile öğrendimiz ubuntu server makinemizin ip numarasını yazdığımızda web sayfamız görüntülenecektir.

7. Karşılaşılan Zorluklar

* Kurulumlardan sonra fiziksel adres (192.168.43.63) ile sanal makina (10.0.2.15) ip adresi haberleştirilemedi. Dolayısıyla yapılan web sayfası test edilemedi. Yanlış ip adresi aldığı düşünülerek statik ip adresi atamak için "network/interfaces" dosyası üzerinde düzenleme yapılarak statik ip atandı fakat bu yaptığımız değişikliğin fiziksel ip ile haberleşemediğini anladık ayrıca yapılan değişiklik apache server servislerinin ve ağ servislerinin hata vermesine sebep oldu. 

* Bu hatayı gideremedik ve tekrar kurulumlar yapıldı. Karşılaştığımız sorunun VirtualBox' daki ağ ayarlarından bağdaşrıcı türünden kaynaklandığını anladık. Şöyle ki, VirtualBox' daki varsayılan bağdaştırıcı ayarı "NAT" idi bu ayar sanal makinenin belirlenmiş bir ip havuzundan ip almasını sağlıyor fakat fiziksel makinenin ip adresi farklı bir ağda olduğundan haberleşme sağlanamıyordu. Daha sonra bu ayarı "köprü bağdaştırıcı" olarak değiştirdiğimizde sanal makinenin ortamda bulunan DHCP' den ip aldığı ve sorunsuz haberleştiği test edildi. (Komut isteminden sanal makinenin ip adresine ping atılarak problem olmadığı görüldü)

* Python kodlarında yapılan yazım hatalarından dolayı "internal server error (500)" hatası ile karşılaşıldı. Bunun için "index.html" isimli bir dosya oluşturarak html kodları ile sayfanın çalıştığı (Apache ve Ubuntu) görüldü. Sorunun python kodlarında olduğu görüldü. Bununda kullanmış olduğumuz python sürümünden kaynaklandığı, hatayı düzeltmek içinde "index.py" dosyasının ilk satırında "#!/usr/bin/python" olan satır "#!/usr/bin/env python3" olarak değiştirildiğinde çalıştığı görüldü. 

8. Faydalanılan Kaynaklar







Hiç yorum yok:

Yorum Gönder