Sanallaştırmanın Üvey Evladı LXD

Standard

Merhabalar;

Günümüzde her geçen gün yaygınlaşan teknolojilerden birisi de sanallaştırma teknolojileri. Uygulama geliştirirken önceleri tek bir işletim sistemi üzerinde hem veritabanı, hem web arayüzü hem de sistem yönetimi yapılırken, artık mimariler bu parçaların her birini farklı yerlerde tutarak güvenliği artırmaya beraberinde de sistemlerin birbirinden bağımsız çalışmasına imkan sağlayarak daha güvenilir bir yapı kurmaya odaklandı. 2013’te ortaya çıkan ve o günden beri kullanımı gittikçe popülerleşen docker teknolojisinin öncesinde de, LXC mevcuttu…

Okumaya Devam Edeyim Bari…

Kendine Meydan Okuyan Adam

Standard

Geçenlerde üniversiteye giriş sınavının sonuçları açıklanmış ve tam puan alan bir öğrencinin sözleri gündeme roket gibi düşmüştü: hayvan gibi çalıştım. Kibarlıktan ve nezaketten kırım kırım kırılan aktüel hayatımız için kaba saba bir laftı bu ve her kesimden eleştiriler geldi.

Acaba başarmak için odaklanmak ve bu kardeşimiz gibi insanlık sınırlarını zorlayarak çalışmak zaruri mi? Nereye gittiğini bilmeden, sadece içinden geleni yapan ve sonunda bir devrimin kahramanı olmuş olan tutkulu insanlarla dolu tarih. O nedenle bu tür başarı hikâyelerinden ibret almak yerine… kendi yolumuzu çizecek motivasyonu bulmalıyız belki.

Çünkü başarı başkasından bize naklen gelmeyecek, içimizden çıkacak.

Bugün kahramanımız, bir adam…

Okumaya Devam Edeyim Bari…

Sistem Programlama Üzerine Notlar (13 Haftalık Seri)

Standard

Merhaba;

Geçen yıl sistem programlama dersi a
lırken, kendim için de başvurabileceğim kaynak olması adına güzel bir ders serisi (belki de ileride kitaba dönüştürebileceğim) bir döküman hazırlamıştım. Yandex hesabıma bakarken bu notlara denk geldim ve GNU/linux üzerinde güzel bir kaynak olarak kullanılabileceğini düşündüm. Aşağıdaki linkten notlara ulaşabilirsiniz, faydalı olması dileğiyle;

https://yadi.sk/d/klGoSqGj32E5m9

Linux Yaz Kampı Php Sınıfı Alet Çantası

Standard

Merhaba;

linux kampında sadece hafta sonu olmam nedeniyle, sıkıntı olabilecek yerlere dair bir alet çantası hazırlayayım istedim. Sıkıntı olan yerlerde amacım sorunların olası çözümlerini burada barındırmak.

Sanal makineye ubuntu kuracağım, nasıl kurabilirim?

Sizlere ubuntu mate kurulumu yaptık, dolayısıyla burada yaptığım anlatımın ilk kısmında ISO indirme kısmında, siz buradaki(tıkla) ISO kalıbını kullanın. Seçenekler arasından 64-32 bit seçimini yaptıktan sonra “Via Direct Download” altındaki linkten indirme yapınız, torrent ile indirmeyiniz, torrent portları kapalıdır. Onun dışındaki anlatım aşağıdaki linktedir;

Virtual Box Üzerinde Ubuntu Kurulumu ve Ekran Sorunun Giderilmesi

GNU/Linux’umu nasıl güncelleyebilirim?

Önce depolarımızı güncelleyelim;

sudo apt-get update

Sistemdeki güncel olmayan programlarımızı güncelleyelim;

sudo apt-get upgrade

Güncelleme tamamlanmıştır.

GNU/Linux’uma nasıl xampp kurabilirim?

Konsoldan önce xampp’i indirin;

wget https://www.apachefriends.org/xampp-files/5.6.23/xampp-linux-x64-5.6.23-0-installer.run

Eğer indirme sırasında hata alırsanız, bu şekilde indirmeyi deneyin;

wget https://www.apachefriends.org/xampp-files/5.6.23/xampp-linux-x64-5.6.23-0-installer.run --no-check-certificate

İndirme işlemi tamamlandıktan sonra;

sudo chmox +x xampp-linux-x64-5.6.23-0-installer.run
sudo ./xampp-linux-x64-5.6.23-0-installer.run

Kurulumu tamamlanmıştır.

XAMPP kurdum ama nasıl çalıştıracağım?

Konsola girip;

sudo /opt/lampp/lampp start

Ardından şu yazıyı görmelisiniz;

sezer@optimist:~$ sudo /opt/lampp/lampp start
Starting XAMPP for Linux 5.6.23-0...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...ok.

Bilgisayarımda PHP/HTML sayfamı nasıl çalıştıracağım?

Xampp’in olduğu dizin altında htdocs(geldiğimde daha detaylı anlatacağım) klasörü, sunucunun dışarıya açılan kapısıdır. Bu dosyaya masaüstüne kısayol oluşturacak şekilde anlatımını yapacağım;

Kurulumu ingilizce yapanlar için;

ln -s /opt/lampp/htdocs/ /home/KULLANICI_ADINIZ/Desktop/htdocs
sudo chmod 777 /opt/lampp/htdocs

Kurulumu türkçe yapanlar için;

ln -s /opt/lampp/htdocs/ /home/KULLANICI_ADINIZ/Masaüstü/htdocs
sudo chmod 777 /opt/lampp/htdocs

Bu 2 komutu sırayla çalıştırdıktan sonra, bu dizin altındaki tüm dosyaları siliniz. Uğur hocanızın sizden yapmanızı istediği ödevleri bu klasör altında yaparsanız, web tarayıcınızdan ;

http://localhost/

şeklinde girerseniz o dizin altında bulunan sayfalarınızı görüntüleyebilirsiniz.

Sanalda linux kullanıyorum, ekran kuş kadar gözüküyor, nasıl büyütebilirim?

virtualbox panelinde, aygıtlar > misafir eklenti CD kalıbını yerleştir’e tıklayın, ubuntu’da kendiliğinden çalışma isteğini kabul edin. Sanal makinenizi yeniden başlattığınızda sorun çözülecektir. Eğer çözülmez ise arama kısmından display/ekran yazarak görüntü çözünürlüğünüzü yükseltebilirsiniz. Eğer bu CD’yi yerleştirmezseniz, bilgisayarınızın özgün çözünürlüğüne ulaşamayabilirsiniz.

Uğur hoca Github Sablaym text diye birşey kullanıyor ve efsane gözüküyor, bunu nasıl kurabilirim?


1
2
3
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

Komutlarını sırayla uygularsanız Sublime text kurulur, Menu kısmından ulaşabilirsiniz.

Bilgisayarım Aşırı ısınmakta, neden böyle oluyor olabilir?
Not:
Sanal’a kurulum yapanlar için böyle bir olasılık söz konusu değildir.

Laptoplarınıza ancak ubuntu-mate kuracak kadar vaktim oldu. Bilgisayarlarınızda 2 ekran kartı varsa, bunların konfigürasyonunun doğru şekilde yapılması gerekiyor, aksi halde ekran kartınız devamlı çalıştığından, makine sıcaklığınız artıyor. Konu hakkında detaylı bilgiyi geldiğimde anlatırım (hatırlatınız 🙂 ) . Yapmanız gereken;

Konsola giriniz;

lspci | grep VGA

yazdığınızda karşınıza bu çıkıyorsa;


1
2
3
4
5
00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:1616] (rev 09)
    Subsystem: ASUSTeK Computer Inc. Device [1043:1a6d]
    Kernel driver in use: i915
--
04:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 940M] [10de:1347] (rev ff)

2 ekran kartınız var demektir, bu tarz birşey çıktıysa;

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)

tek ekran kartınız var demektir ve kurulum yapmanıza gerek yoktur.

Kurulum yapacak arkadaşlar, önce sistemlerini güncellesinler (bknz: gnu/linux’umu nasıl güncellerim?) ardından menüden, System > Preferences > Hardware > Additional Device kısmına tıklayınız. Orada Nvidia ekran kartınızın ismini ve altında driver’ını göreceksiniz, parantez içerisinde “tested” yazanı tıklayınız(muhtemelen en üstteki), “Apply Changes” diyip bekleyiniz, yalnız butona birden fazla kere basmayın, internetinizin ve şarjınızın olduğundan emin olun, eğer bu yükleme yarıda kesilirse uğraşmanız gerekir. Yükleme barı dolduktan sonra, işletim sistemini yeniden başlatınız, sağ üstte NVIDIA ya da intel simgesini göreceksiniz, intel simgesi olduğu sürece intel ekran kartınız, NVIDIA olduğu sürece nvidia ekran kartınız devrede olacaktır. NVIDIA aktif kaldığı sürece bilgisayarınızın sıcaklığı yüksek olacaktır. Buraya tıklayıp, ekran kartınızı değiştirdiğiniz de oturumdan çıkıp tekrar giriş yapmanız ya da bilgisayarınızı yeniden başlatmanız gerekmektedir.

Ekstra sorularınız oldukça admin@sezerbozkir.com adresine mail atarsanız, soruları bu başlık altına ekleyerek yanıtlayacağım.

banner

 

 

Linux Yaz Kampı 2016

Standard

Merhaba;

Her yıl düzenlenen (artık) geleneksel (diyebileceğimiz) “Linux Yaz Kampı”nın 2016 yılı etkinliğinde PHP sınıfında eğitmen olarak bulunmaktayım. Bu güzel atmosfere dair birşeyler yazıp etkinliği bilmeyen veya katılmamış insanlara bir nefeslik bile olabilse bu etkinliği anlatmak istedim.

Öncelikle Bu sene eğitmen olarak katılmam dolayısıyla işin mutfağına girmiş oldum. Daha önce 2 kere farklı eğitimlerine (PHP ve Linux Sistem Yönetimi 1) öğrenci olarak katılıp, hocalara inatla soru soran, yer yer bıktıran öğrenci profilinden birşeylere yardımcı olmaya çalışmak adına çırpınan eğitmen profiline evrildim 🙂

Şunu gördüm ki öncelikle mutfakta gerçekten hummalı bir çalışma var. Buraya gelen eğitmenler, öğrenciler geldiğinde “acaba eğitimi nasıl verirsek gelen kişiler daha performanslı şekilde öğrenirler?” sorusundan tutun da “canları Iced Chocolate Mocha” çekerse bunu nasıl temin edebiliriz?” sorusuna kadar her ayrıntı için çaba sarfetmekteler. Gelen yüzlerce yeni kişi o heyecanla çevrede gezinirken, ortalıkta bir karmaşa olmadan herkesi doğru yöne yönlendirilip, insanları koordine etmenin nasıl ciddi bir iş olduğunu da bu sayede görmüş oldum.

 

Benim bu kampın sevenlerinden olmanın aslında temel nedeni, gelen insanların -gerçekten- bu eğitimler için hem eğitmenler hem de öğrenciler açısından büyük efor gerektirmesi. Bu sebepten de elbette gelen herkesin gözleri parıl parıl ve herkes tam motive şekilde. Banklarda oturmuş linux üzerine sohbet eden insanlar, bir köşede çayını/kahvesini içerken bu konuda gelişmeleri aktaran bilgili kişiler, bir başka köşede artık bu işde ekol kabul edilmiş hocaların (bknz:Engür Hoca ile Korsan Eğitim Saatleri) inanılmaz lezzetli sohbetleri ile burası tam bir teknoloji çılgınlarının buluşma mekanı olmuş durumda. Yani buraya geldiğiniz zaman “zil çaldı, hadi mola verelim” “zil çaldı hadi derse” modunda bir ortam yok, hiçbir zaman da olmadı da. Daha çok “merhaba ben … şuradan geliyorum, … yerinde çalışıyorum, … eğitimindeyim, siz hangi eğitimdesiniz şu an ?” şeklinde başlayan sohbetler buranın asıl tadını oluşturmakta. Bu sohbetler sayesinde birçok yeni insan birbiriyle tanışıyor, fikir alışverişinde bulunuyor, kamp bittiğinde irtibatını koparmayıp kendini geliştiriyor.

Tüm bunların yanında kesinlikle çılgınlar gibi bir bilgi aktarımı da söz konusu. Sabah 9.30 da başlayıp, 21.30’a kadar öğlen ve akşam araları ile eğitimler sürmekte. Herkes harıl harıl birçok alanda ufuklarını genişletmekte.

 

Kamp ile alakalı izlenimlerimi bu başlık altından sürdürmeyi planlıyorum, imkanım olursa belki birkaç anlatım bile ekleyebilirim, kısacası eğer yılın bu zamanında sıcaktan bunalmışsanız, bilgisayar konusunda hevesliyseniz ve ayırabileceğiniz 15 gününüz var ise, LYK kesinlikle çok faydalı ve eğlenceli bir seçenek olacaktır 🙂

Unutmayın, bilgi paylaştıkça çoğalır…

banner

 

Debian Linux’da SSH üzerinden root olarak Bağlanma

Standard

Merhaba;

Kullanılan sunularda güvenlik nedeniyle varsayılan olarak root olarak direk ssh bağlantısı kapalı durumda oluyor. Ben de her seferinde önce kullanıcı olarak girip ardından root’a yükseliyorum ancak lokal de çalışırken bu koruma gereksiz olacağından bunu deaktif hale getirebiliriz.

Bunun için ssh’ın konfürasyon dosyasını(

1
/etc/ssh/sshd_config

) açıp “PermitRootLogin” kısmını bulunuz, o kısımdan sonrasını silin yes olarak değiştiriniz;

Önceki hali:
PermitRootLogin without-password
düzeltilmiş hali:
PermitRootLogin yes

Ardından ssh servisini yeniden başlatınız;

 # service ssh restart

ya da

/etc/init.d/ssh restart

İşte bu kadar 🙂

Debian linux’da Otomatik Tamamlama ve Sudo Özelliği Ekleme

Standard

Merhaba;

Lokalime sunucu olarak debian kurmam gerekti ve debian kurduğumda yaşadığım ilk 2 sıkıntı [tab] ile tamamlama özelliğinin olmaması ve sudo’nun çalışmamasıydı. Haliyle bu sorunlara çözüm gerekti, önce otomatik tamamlama özelliği ile başlayalım;

apt-get install bash-completion

Ardından konsolda bunun aktif olmasını sağlayalım;

nano /etc/bash.bashrc

Dosyanın şu kısmını bulup, başlarındaki “#” işaretini kaldırarak aktif hale gelmesini sağlayalım;

 # enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Eğer sizin dosyanızda yoksa, sonuna ekleyebilirsiniz.

Gelelim sudo’yu yüklemeye;

 # apt-get install sudo

Şimdi de hangi kullanıcıya “sudo” özelliğini kullandırmak istiyorsak onu sudoers dosyasına yazalım;

 # nano /etc/sudoers

Açılan dosyada bu satırlardan sonra, [kullanici-adiniz] yazan kısma kullanıcı adımızı yazalim, CTRL + O ile kaydedip, CTRL + X ile kapatalım.


1
2
3
# User privilege specification
root    ALL=(ALL) ALL
[kullanici-adiniz] ALL=(ALL) ALL

Şimdi yeniden başlatıp aktif olmasını sağlayalım;

 # reboot

Mission complete 🙂

 

 

 

Nginx üzerinde Buffer Size Konfigürasyonu

Standard

Merhaba;

Bu gün wordpress site üzerinde çalışırken bir dosya yüklemesi yapmam gerekti ve dosyanın boyutu 1.8 MB olunca kullandığım plugin sürekli sunucunun dosyayı reddetmesi nedeniyle hata verdi. Başta sorunun php-fpm üzerindeki buffer-size’dan kaynaklandığını düşünüp değerleri yükselttim. Buna rağmen sonuç değişmedi. Sorunu tekrar araştırdığımda (Serdar Aydoğan ve İlhan Pamuk’a teşekkürler) nginx’in bir buffer size’ının olduğunu ve bunu geçen dosyayı direk reddettiğini gördüm. Gelelim bu buffer-size’ı nasıl konfiğürasyonunun nasıl yapıldığına.

$ sudo nano /etc/nginx/nginx.conf

Bu dosya nginx in konfigürasyon ayarlarının barındırıldığı dosya. Burada “Virtual Host Configs ” satırından sonra şöyle bir kod ekliyoruz;

        ##
        # Nginx Buffer Konfigurasyonu
        ##

        client_body_buffer_size 10K;
        client_header_buffer_size 1k;
        client_max_body_size 8m;
        large_client_header_buffers 2 1k;

Bu kod şu anlama geliyoruz, client tarafındaki buffer’ı 10 kb a bölüyor, başlık size’ını 1 kb yapıyor, maximum size’ı ise 8 mb yapıyor (burayı kendi dosya boyutunuza göre değiştirebilirsiniz tabii) . Bu sayede 8 mb ‘dan küçük dosyalar sunucu tarafından reddedilmemiş oluyor.

Konfigürasyonun geçerli olması için nginx’i yeniden başlatıyoruz;

$ sudo service nginx restart

Ayrıca servisin çalıştığını gözlemlemek için de durumuna şu şekilde bakabilirsiniz;

$ sudo service nginx status

Nginx üzerine daha detaylı konfigürasyon ayarları için;

https://www.digitalocean.com/community/tutorials/how-to-optimize-nginx-configuration

banner

Linux’da Path’e Yeni Yol Ekleme

Standard

Merhaba;

Elle program kurulumunda, tüm programlar /usr/bin gibi Path’in gördüğü dizinlere yüklenmemekteler ya da kişisel tercih olarak programlarınızı bir dizin altında tutup yönetmek isteyebilirsiniz. Böyle durumlarda konsoldan programın dizinine her seferinde gidip “./” ile programı çalıştırmak zahmetli olduğundan konsolun PATH’ine programlarınızı tuttuğunuz dizini bir kere bildirirseniz, direk adını yazarak ulaşabilir hale geliyorsunuz .

Gelelim uygulamasına, 2 farklı yöntem kullanabiliriz;

  1. İlgili dizine gidip, konsolda o dizindeyken bu kodu yazmanız kafii:
    
    
    1
    echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
  2. Direk konsolu açıp:
    
    
    1
     
    1
    echo "export PATH="gostermek_istediginiz_dizin":\${PATH}" >> ~/.bashrc

    İşlem tamamdır 🙂

Ubuntu 16.04 Spark Kurulumu

Standard

 

Merhaba Arkadaşlar;

Yaptığım staj gereği, bilgisayarıma Spark kurulumu gerçeleştirdim. Kurulum için birkaç adım mevcut, genelde anlatımlarda bu kısımlar olmadığından temiz ve işe yarar bir anlatım yapmak istedim.

Öncelikle Spark Java Virtual Machine (JVM)’e ihtiyaç duyduğu için onun kurulumu ile başlıyoruz.

Repository’sini ekleyelim;


1
<span class="line">sudo apt-add-repository ppa:webupd8team/java</span>

Sistemi güncelleyip, kurulumunu yapalım;


1
2
<span class="line">sudo apt-get update
</span><span class="line">sudo apt-get install oracle-java7-installer</span>

Kurulumun doğru şekilde yapılıp yapılmadığını kontrol etmek için şu komutu verdiğinizde, altındaki çıktının benzerini almalısınız;

sezer@optimist:~$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

Spark, yazıldığı dil Scala olduğundan, çalışabilmesi için sisteminize Scala’nın kurulu olması gerekiyor. Onun yüklemesini yapalım;

Skala’yı sitesinden indiriyoruz(ben kurarken bu sürüm vardı, siz kurulum için güncel sürümden faydalanın):


1
<span class="line">wget http://www.scala-lang.org/files/archive/scala-2.11.7.tgz</span>

İndirme tamamlandıktan sonra, dosyayı PATH altına taşıyor ve açıyoruz;


1
2
<span class="line">sudo mkdir /usr/local/src/scala
</span><span class="line">sudo tar xvf scala-2.11.7.tgz -C /usr/local/src/scala/</span>

Scala’yı konsoldan çağırabilmek için .bashrc dosyasının sonuna bu 2 satırı ekleyerek, Scala’nın yolunu gösteriyoruz;


1
2
<span class="line">export SCALA_HOME=/usr/local/src/scala/scala-2.11.7
</span><span class="line">export PATH=$SCALA_HOME/bin:$PATH</span>

Scala’nın aktif olması için konsolu tekrardan başlatıyoruz: (kapa-aç’da olur)


1
<span class="line">. .bashrc</span>

Scala’nın doğru şekilde yüklenip yüklenmediğini kontrol etmek için alttaki komut ve benzeri çıktısını görüyor olmanız gerekmekte;


1
2
3
<span class="line">sezer@optimist:~$ scala -version
Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL
</span>

Şimdiyse Spark’ın kurulumuna geçmeden önce, Github’dan veri çekebilmek için (şart değil, isterseniz sayfasına gidip indirme yaparak bu basamağı pas geçebilir, isterseniz “Github’dan nasıl yazılım indiriliyor?” u bilmiyorsanız buradan öğrenebilirsiniz) git’i kuruyoruz;


1
<span class="line">sudo apt-get install git</span>

Şimdi Spark’ın son sürümünü (şu an için, ileride bu link üzerinden sonraki son sürümünü indiriniz), indiriyoruz;

wget http://www.apache.org/dyn/closer.lua/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz

Şimdi Spark için ana dizinimizde bir dosya oluşturup, onun içerisine aktarıyoruz;

mkdir ~/apache-spark
 cd ~/apache-spark

mv ~/Downloads/spark-1.6.1-bin-hadoop2.6.tgz ~/apache-spark

Şimdi de dosyamızı açıp, çalıştırmayı deniyoruz;


1
 
tar -xzvf 
1
2
3
4
spark-1.6.1-bin-hadoop2.6.tgz
cd spark-1.6.1-bin-hadoop2.6

./bin/spark-shell

Çalıştıysa karşısınıza böyle bir konsol düşer;

scala>

Birkaç örnek ile çalıştığını test edebilirsiniz;


1
2
3
<span class="line"><span class="n">scala</span><span class="o">&gt;</span> <span class="k">val</span> <span class="n">textFile</span> <span class="k">=</span> <span class="n">sc</span><span class="o">.</span><span class="n">textFile</span><span class="o">(</span><span class="s">"README.md"</span><span class="o">)</span>
</span><span class="line"><span class="n">scala</span><span class="o">&gt;</span> <span class="n">textFile</span><span class="o">.</span><span class="n">count</span><span class="o">()
<code>scala&gt; textFile.first()

Az-çok gelecek çıktıları tahmin ediyorsunuzdur 🙂

Kurulum tamamlanmıştır, bir sonraki yazımda görüşmek üzere…

banner