6 Aralık 2016 Salı

UBUNTU SERVER'DA WEB UYGULAMASI GELİŞTİRMEK

Kullanılan Bileşenler

MySQL Server

MySQL Nedir?
MySQL bir ilişkisel veritabanı yönetim sistemidir. MySQL’in ne olduğunu tam olarak anlamak için veritabanı yönetim sistemi ve ilişkisel veritabanı terimlerini de biliyor olmalısınız. Hemen bu terimlerin ne anlama geldiğini açıklayarak konumuza devam edelim.Veritabanı yönetim sistemi Wikipedia‘da “Veritabanlarını tanımlamak, yaratmak, kullanmak, değiştirmek ve veri tabanı sistemleri ile ilgili her türlü işletimsel gereksinimleri karşılamak için tasarlanmış sistem ve yazılımdır.” şeklinde tanımlanmış.İlişkisel veritabanı terimi de Wikipedia‘da “İlişkisel veri tabanını çeşitli tablolar arasında organize edilmiş verilerden oluşan veri tabanı olarak açıklayabiliriz. Bu farklı tablolar arasındaki veriler, çeşitli anahtarlar vasıtası ile birbirlerine bağlanırlar. İlgili tablolarda, sütunlar arasında bir anahtar sütun yeralır. Bu anahtar sütun aracılığı ile birden çok tablo verileri birbiriyle bağlantı sağlayabilir ve herhangi bir sorgulamada birlikte görüntülenebilir.” şeklinde açıklanmış.
MySQL çifte lisanslı bir yazılımdır. Yani hem Genel Kamu Lisansı’na (GPL) sahip özgür bir yazılım, hem de GPL’in kısıtladığı alanlarda kullanmak isteyenler için ayrı bir lisansa sahiptir.Ayrıca MySQL işlemlerini SQL adı verilen, veritabanlarına erişmek için kullanılan en yaygın ve standart dil ile yapıyor.
MySQL’in Temel Özellikleri Nelerdir?
MySQL UNIX, OS/2 ve Windows platformlarında kullanılabilmektedir. Fakat Linux altında daha yüksek performans sergilemektedir. MySQL içerisinde ODBC sürücüleri de bulunduğu için birçok geliştirme platformunda rahatlıkla kullanılabilir.Farklı karakter setlerini (iso8859-9, utf-8, latin-5 …) ve onlara göre sıralama yapılmasını destekliyor, farklı dillerde hata mesajları verebiliyor.Çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahip. 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. Böylece çok daha işlevsel bir hale gelmiştir. Transaction ve atomik işlem kullanan çeşitli tablo tiplerini desteklemektedir.
MySQL Nerelerde Kullanılır?
Güçlü bir veritabanı yönetim sistemi olan MySQL veritabanı gerektiren hemen hemen her ortamda rahatlıkla kullanılabilir. Ama özellikle web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web programlama dili ile kullanılabilir.
MySQL Hangi Veritabanı Nesnelerini Desteklemektedir?
  • Tables (Tablo)
  • Views (Görüntü) (Görüntüleme)
  • Procedures (Prosedür/Yordam)
  • Triggers
  • Cursors

VirtualBox Nedir?

Virtualbox,işlemci,HDD, ekran kartı gibi fiziki cihazları yazılımsal olarak taklit ederek, işletim sistemlerini başka bir işletim sistemi üzerinde sanal olarak kullanabilmenize olanak sağlayan bir sanallaştırma yazılımıdır. Yazılım sayesinde Windows üzerinde Linux-MacOS deneyebilir,yazılımları bilgisayarınıza kurmadan önce sanal makinede test edebilirsiniz.
Sanal olarak çalışan işletim sistemine misafir işletim sistemi (guest) denir.Kendi işletim sisteminiz ise (host) işletim sistemidir. Misafir sistemde yaptığınız işlemler tamamen ayrı bir bilgisayarda yapıyormuşcasına evsahibinde hiçbir değişiklik yaratmaz. Bu sebepten ötürü malware analizi gibi  tehlikeli işlemlerde dahi sanal makineler kullanılmaktadır.

VirtualBox Nasıl Kullanılır?

Sanallaştırma çok geniş bir konu , araştırdığım zaman konuyla ilgili makaleleri okurken kendimi "Alice Harikalar Diyarında " gibi hissediyorum . Pratiği Oldukça kolay. Her şey sizin için hazır 1-2 tuşla sanal makine oluşturmak mümkün. Sanal makine oluşturulması aşağıdaki gibi.


Ubuntu Nedir?

Ubuntu, Linux çekirdeğini temel alarak geliştirilen açık kaynak kodlu, özgür ve ücretsiz bir işletimsistemidir. Masaüstü, sunucu ve akıllı telefonlara yönelik olarak geliştirilen türevleri bulunur. İlk kararlı masaüstü sürümü Ekim 2004'te yayınlanmış olup günümüzde 40 milyonu aşkın kullanıcı sayısıyla dünya çapında en yaygın kullanılan masaüstü Linux dağıtımı konumundadır. Akıllı telefon ve tazcüğü, Zulu dilinde "insanlık" anlamına gelir.Ubuntu hem ev hem de işyerinde kullanım için tamamen ücretsiz olarak indirilebilir ve kullanılabilir. Ubuntu'yu, bir lisans kısıtlaması olmaksızın dilediğiniz sayıda bilgisayara kurabilir ve kullanabilirsiniz. Ayrıca yayınlanan güncellemeler için ve sürüm yükseltmek için hiçbir ücret ödemezsiniz. Canonical Limited, Ubuntu'yu daima ücretsiz tutacağına dair söz vermektedir.Ubuntu bünyesinde geliştirilen kodlar GNU Genel Kamu Lisansı isimli bir özgür yazılım lisansı ile lisanslanmıştır. Bu lisans Ubuntu'nun ücretli olmasına bir engel değildir ancak lisans gereğince söz konusu kodlar kamu malıdır yani herkese aittir. Canonical, Ubuntu'nun yalnızca marka haklarına sahiptir. Beklemedik bir şekilde Ubuntu, ücretli hale gelse bile kaynak kodları kamu malı olduğu için, herhangi bir özgür yazılım topluluğu Ubuntu’nun mevcut kodlarını kopyalayarak farklı bir isim altında yayınlayıp sürdürebilir, ücretsiz dağıtabilir.

Kurulumu aşağıdaki adımlardaki gibidir.





Putty Nedir?
Putty ağ üzerindeki Linux işletim sistemli sunucunuza/makinanıza terminal üzerinden bağlantı sağlayanboyut olarak oldukça küçük ama güçlü ücretsiz ve açık kaynak kodlu bir yazılımdır. Putty ile bağlantı yaptığınız sunucunuzu terminal üzerinden çeşitli komutlar ile yönetebilirsiniz. Daha çok gelişmiş linux kullanıcılarına hitap eder zira kullanıcı arayüzü yoktur tüm işlemleri komutlar ile yapmanız gerekir.



FileZilla Nedir?
FileZillaözgüraçık kaynak ve çoklu platform destekli bir FTP istemcisi. FileZilla Client (istemci) ve FileZilla Server (sunucu) adını taşıyan iki farklı sürümü bulunur. WindowsLinux ve Mac OS X işletim sistemlerinde çalışabilir. FTPFTPS ve SFTPdesteği mevcuttur.


 MySQL' e bağlanıp veritabanı oluşturmak

MYSQL SERVER 5.7 KURULUM

sudo apt-get install mysql-server komutunu yazarak mysql 5.7 yi kuruyoruz. 
Ardından mysql server ı başlatmak için       sudo /etc/init.d/mysql start diyoruz. 
Opera veritabanı uygulaması aşağıdadır.
Öncelikle server a bağlanalım => mysql -h localhost -u root -pşifreniz NOT:”-pşifre” .
Yeni bir veritabanı oluşturalım=>create database veritabanıadı; Query Ok, 1 row affected çıktısını almanız gerekiyor.Ardından veritabanınızın oluştuğunu görmek için mysql>show databases; demelisiniz.Data sonra use operam; diyip grant all on operam.* to 'nesrin'@'localhost' diyerek yetki vermeniz gerekmekte.
 Operam adlı veritabanı aşağıdaki gibidir.




Ubuntu(Linux) Django Kurulumu

Pip dediğimiz, python programlama dili için oluşturulmuş veri merkezidir. Yani bütün yüklemelerin, paketlerin olduğu yerdir. Pip sayesinde bunları rahat bir şekilde kurabilme imkanımız vardır.
Pip’i daha iyi anlamak adına Ubuntu üzerinden örnek verebiliriz. Ubuntu’da bir uygulama yüklemek için “apt-get” veri merkezini kullanılırız. Aynı şekilde python’un veri merkezide pip’dir.
Pip uygulamazın güncel olarak yüklenmesi için, ubuntu veri merkezini güncellemeliyiz :
-sudo apt-get update
-sudo apt-get install python-pip

Python2x için pip kurulumu tamamlandığında, kontrol amaçlı pip versionu kontrol edelim.

-pip --version

Şimdi, Python3x sürümü için pip kurulumu sağlıyalım.
-sudo apt-get install python3-pip

Pip kurulumunu tamamiyle bitirdik. Şimdi pip kullanımından bahsedelim.Pip kurulumunu öğrendiğimize göre bize gerekli paket “Django” olduğunu biliyoruz o halde Django paketini yükleyelim :
Terminale aşağıdaki komutu yazalım.
-sudo apt-get install python-django

Projemizi oluşturmaya başlayalım

Terminale django-admin startproject proje_adi diyerek projemizi oluşturuyoruz.
sudo nano~/proje_adi/proje_Adi/settings.py


Burada ilgili alanlara dikkat etmelisiniz aksi takdirde hata alacaksınız.Terminale name,user
password,host,port alanlarını sizin doldurmanız gerekiyor.

Bir sonraki adımda cd proje_adi diyerek projemizin içine giriyoruz.Dosyanın nerede olduğunu
bilmiyorsanız ls komutunu kullanabilirsiniz.Terminale sudo python manage.py syncdb diyip
sonraki adımlara evet diyoruz.


Süper kullanıcı oluşturmuş olduk.
Bu adımda python manage.py runserver 0.0.0.0:8000 diyerek portu çalıştırmış oluyoruz.


Server'ı test ettim.




"view.py" dosyasını düzenleyip ağda veritabanı kaydımızı görüntülemeye çalışalım.



Sitenin son hali aşağıdaki gibidir.


Karşılaşılan sorunlar: öncelikle mysql bağlantsı oluştururken şifremi unuttuğumdan dolayı yeniden 
her şeyi oluşturmak zorunda kaldım ,  adımları daha iyi anlamaya başladım .Şunu söylemeliyim ki
konsol da kod yazmak ölüm,hele ki türkçe klavye kullanmamış biri olarak çok zorlandığımı söyleyebilirim tek tek özel karakterlere bakmak zorunda kaldım.Not: putty e bağlanmakta bu kadar zorlanmasaydım kolaylıkla üstesinden gelebilecektim hocam derste yok muydun ? diyişinizi duyar gibiyim evet vardım ama yapamadım şimdiden özür diliyorum :) python öğrenmenin kolay olduğunu keşfettim.Sanal makine ,ubuntu server da uygulama geliştirmek kendimi mühendis adayı gibi hissetmemi sağladı.