Projelerimizi tasarlarken mutlaka bir yerlerine sürekli kullanmayı planladığımız yapılarımızı koyuyoruz. Bu yapılar bizim için genel olarak kullanışlı olduğunda, her seferinde tekrar tekrar yazmak yerine bu yapıları bir paket yapmak istediğimizde, imdadımıza PyPI yetişiyor…
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
Nginx aslında bir Rus yazılım mühendisi tarafından başlangıçta mail servisi olarak tasarlanmış, ardından web sunucu olarak evrilip gelişmiş bir işletim sistemidir. Yaygın olarak (görece) apache’ye nazaran daha hızlı ve stabil bir yapıya sahiptir.
Staj yaptığım sırada böyle bir sisteme ihtiyacım oldu. Ve Türkçe döküman olmadığını farkettim, bende birkaç kaynaktan derlediğim bu işlemleri Türkçe’ye kazandırmak istedim.
Kuruluma depoları ekleyerek başlayabiliriz. (eğer depoları web yansısı kullanarak kur dediyseniz eklemeden de bu depolara erişebiliyorsunuz, dolayısıyla bu adımı geçebilirsiniz)
Kurulum sırasında mysql yüklenirken sizden root şifresi belirlemenizi isteyecektir, bu parola gayet önemlidir, bir kenara not alın, wordpress kurulumu sırasında bu bilgilere ihtiyacımız olacak.
Şimdi fpm servisini konfigüre edelim;
$ sudo nano /etc/php5/fpm/php.ini
CTRL + W yapıp, “cgi.fix_pathinfo” kısmını bulup, şu şekilde aktif edin (baştaki “;” silmeyi unutmayın)
cgi.fix_pathinfo=0
Nginx’i yapılandırırken, uzantısı php olan herşeyi process edilmesi için php-fpm’e ilet diyeceğiz, eğer cgi.fix_pathinfo özelliği devrede olursa ve örnek olarak http://url/falanca.jpg/filanca.php gibi bir istek gelirse ve filanca.php dosyası sistemde yoksa sistem hangi dosyanın işleneceğini tahmin etmeye çalışır ve heralde falanca.jpg diyerek işlenmesi için FastCGI’a iletir. Eğer kötü niyetli biri sisteminize içerisinde php kodları gömülü olan bir jpg yükleyip göndereceği URL’de önde kendi upload ettiği dosyanın ismini ardından da sistemde olmayan bir php dosyasını geçirirse, sistem olmayan php’yi bulamadığı için jpg dosyasının işlenmesi için FastCGI’a iletecek ve ilgili jpg dosyasında gömülü php kodları çalıştırılacaktır.
İşte böyle olası bir güvenlik açığının önüne geçmek için php’ye URL’de geçen path’i olduğu gibi değerlendirmesini, eğer dosya bulunamıyorsa tahmin etmek yerine işlemi sonlandırmasını söylemek gerekir. Bunu da cgi.fix_pathinfo özelliğini 0 yapmak sureti ile (ki default 1’dir) devre dışı bırakarak yapıyoruz.
Şimdi de fpm tüm portları dinlediği için onu 9000. portu dinleyecek şekilde konfigüre edelim;
$ sudo nano /etc/php5/fpm/pool.d/www.conf
Yine CTRL + W kısayolu ile arama yapıp, aşağıdaki “listen= /var/….fpm.sock” kısmını yorum satırı haline getirip, 9000. portu dinlemesini sağlayalım;
Bu aşamaya kadar sıkıntısız geldiyseniz sistemi kontrol edelim;
$ sudo service nginx restart
$ sudo service php5-fpm restart
Ardından tarayıcıda IP adresinizi yazdığınızda şöyle bir hoşgeldin ekranı görmelisiniz;
Bu ekranı gördüyseniz içiniz rahat edebilir, doğru yoldasınız 🙂
Şimdi wordpress kurulumuna başlayabiliriz.Wordpress’in database’ini oluşturup, ona kullanıcı atayalım, isteğe göre “wp_user” kısmına database’e atayacağınız wordpress’in kullanacağı kullanıcı adını değiştirebilir, “wp_db” kısmını yine wordpress’in database’ ismi olduğundan değiştirebilirsiniz. “_secret_password_” kısmına ise kullanıcı şifresi atamanız gerekmekte. Bu kısımdaki bilgileri de not alınız, wordpress kurulumu sırasında bu kısımlara ihtiyacınız olacak;
$ mysql -u root -p
Enter password:
mysql> CREATE DATABASE wp_db;
mysql> GRANT ALL ON wp_db.* to 'wp_user'@'localhost' IDENTIFIED BY '_secret_password_';
mysql> FLUSH PRIVILEGES;
mysql> quit
Artık wordpress’i indirebiliriz;
$ wget http://wordpress.org/latest.tar.gz
Şimdi onu açıp www yani web’e açılacak olan dizinimize taşıyıp yetkilerini düzenleyelim, “example.com” kısımlarını, siz de kuracağınız site adına göre değiştiriniz;
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.
Ş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;
Şu an bir web sunucusu kurmaktayım. Linux bir sunucuda elbette olması gereken LAMP yani Apache server, Mysql ve Phpmyadmin kurulumunu yaptım, aslında türkçe yeterince döküman olmasına rağmen, genelinde eksik kısımlar olduğundan temiz bir anlatım yazmaya karar verdim. Hadi başlayalım;
Öncelikle sistemimizi güncelleyerek başlayalım;
sudo apt-get update && sudo apt-get upgrade
Güncellemeler bittikten sonra, apache server’ımızı kurarak işleme başlıyoruz;
sudo apt-get install apache2
Apache sunucumuzun internete açılmasını sağlayan servis kısmıdır. Apache kurulumu tamamlandıktan sonra IP adresinizi tarayıcınıza yazdığınızda “It Works!” diye başlayan uzun bir sayfa karşınıza çıkmalı.
Eğer çıkmazsa servisi restart ederek tekrar deneyin. Restart’lamak için;
sudo service apache2 restart
yazarak restartlayabilirsiniz, “restart” yazan kısma “start” yazarak başlatma ve “stop” yaparak apache’yi durdurabilirsiniz.
İlk kısmı tamamladığımıza göre MYSQL kurulumuna geçebiliriz.
Mysql kurulumu için konsola;
apt-get install mysql-server php5-mysql
yazarak mysql ve php’nin mysql modulunu yüklüyoruz. Modülün yüklenmesi tamamlandıktan sonra, mysql’i konfügre etmemiz gerekmekte.
Önce konsola;
mysql_install_db
yazarak mysql dizinimizi oluşturuyoruz. Ardından;
mysql_secure_installation
yaparak mysql parolasını belirliyoruz, yalnız bu parolayı bir kenara not alın, çünkü MYSQL’e bağlanmak için bu parolayı kullanmanız gerekecek. Şimdiye kadar Apache ve Mysql kurulumunu tamamladık. Şimdi gelelim Php kısmına;
Bu işlemleri de tamamlamamızın ardından PHP’nin genel modullerini tamamlamış oluyoruz.
Test etmek için;
sudo nano/var/www/html/info.php
içerisine “<? phpinfo(); ?>” yazıp kaydediyoruz. Böylece bize Sunucu üzerindeki php sayfası gelmeli. Eğer sayfayı gördüyseniz problem yok demektir. Sayfa şöyle gözükmeli;
Son olarak phpmyadmin kurulumumuza geçiyoruz;
1
apt-get install phpmyadmin
kurulum sırasında şöyle bir ekran gelecek;
Burada apache2 yi seçerek işimizi garanti altına alabiliriz.
Arından phpmyadmin’i yerine taşıyoruz;
sudo ln -s /usr/share/phpmyadmin /var/www/
phpmyadmin tamamlandıktan sonra, “http://localhost/phpmyadmin” yazdığınızda phpmyadmin’e girebilmelisiniz. Eğer hata alıyorsanız,
1
sudo nano /etc/apache2/apache2.conf
yazarak apache’nin konfügrasyon kısmının sonuna, şu satırı ekleyip kaydedin;
1
Include /etc/phpmyadmin/apache.conf
Son olarak apache servisini tekrar başlatın;
sudo service apache2 restart
Ve ta ta ta tam! LAMP kurulumu tamamlanmıştır, iyi günlerde kullanınız 🙂