Kategoriler
Nginx Web Server

Centos 6 Panelsiz websunucusu kuralim (10 saniyede) Nginx, php-fpm, mysql,pdo

10 Saniyede hizlica panelsiz websunucu kurmak ve hizli bir sekilde yeni siteler eklemek icin hazirlanmis harika bir makale.

Kategoriler
SSH üzerine

SSH üzerinden bir klasörün boyutunu hesaplama (Ayrıntılı)

Arkadaslar ssh uzerinden bir klasorun yada icerisindeki klasorlerin boyutlarini MB yada GB cinsinden gormek isteyebilirsiniz. Bunun icin sagidaki basit kodu kullanabilirsiniz:

du -sh /home/xx

Bunun sonucu asagidaki gibi olacaktir.

300MB /home/xx

******

Ancak bazi durumlarda klasorun icinde baska klasorde varsa onunda boyutlarini listelemek isteyebilirsiniz. Buda ayrintili bir kod yazarak mumkun olacaktir:

du -h --max-depth=1 /home/

Sonucu asagidaki gibi olacaktir (ornektir)

0       /proc
7.1M    /bin
34M    /lib
12G     /var
17G     /home

Kolay gelsin arkadaslar..

Kategoriler
Linux Web sunuculari SSH üzerine

Linux klasör boyutu öğrenme: SSH

SSH aracılığı ile sunucumuzda bulunan dosya boyutlarını kolaylıkla öğrenebiliriz. bunun için ilerde de kullanabileceğim, sık sık unuttuğum aşağıdaki kodları kullanabilirsiniz…

Kategoriler
Linux Web sunuculari SSH üzerine

Red Hat / CentOS Linux: 2 sunucu ssh bağlantısı sorununa çözüm

İki ayrı sunucu arasında veri alışverişi yapmak istediğinizde genelde SSH paneli aracılığı ile RSYNC yada SCP gibi çok faydalı komutları kullanmak isteriz. Ancak öyle zaman gelirki bir türlü iki sunucuya bir türlü ssh yolu ile erişemezsiniz. Devamlı Yetkiniz yok tarzında sinir bozucu hatalar alırsınız. Bunun bir çok sebebi olabilir ama benim karşılaştığım sorunun çözümünü aşağıda yazacağım. Belli mi olur belki bir gün yine aynı sorunla karşılaşırım..

Kategoriler
Apache Cpanel Faydalı Bilgiler SSH üzerine

Lisanssız Cpanel sunucularda domain yada subdomain ekleme!

Arkadaslar cpanel kullaniyorsaniz yuklu bir ucret oduyorsunuz demektirki bu ucret bazen butcemizi zorlayabilir. Ancak lisanssiz kullanima malesef izin verilmiyorki bu kisitlamalardan biride domain yada subdomain ekleyememek. Bunu asmak icin sshyi kullanacagiz.

Lisanssiz cpanel sunucularda domain eklemek icin burdaki yaziyi (Cpanel sunucularda SSH den yeni domain eklemek!) okuyabilirsiniz. Bunun yaninda yeni bir subdomain eklemek isterseniz asagidaki yonergeleri sirasi ile takip edin.

Apache yapilandirma dosyasini acalim: /etc/httpd/conf/httpd.conf

icerisinde domain bilgilerinizin eklendigi (sonlara dogru) bir yer var.

<VirtualHost 144.255.144.144:80>

......

</VirtualHost>

ile biter.

Buraya biz ekleyecegimiz subdomain ile ilgili yeni bilgileri ekleyecegiz. Siz kendi dosyanizdaki herhangi bir domainin VirtualHost kod kismini alip degistirerek ekleyebilirsiniz, yada asagida benim yazdigimi ekleyebilirsiniz. Saglikli olan sizdeki kalibi kullanmaniz olacaktir, cunku bazi sunucularda suphp v.s gibi programlar kurulmamis olabiliyor.

<VirtualHost 144.255.144.144:80>
    ServerName SUBDOMAIN.domain.com
    ServerAlias www.SUBDOMAIN.domain.com
    DocumentRoot /home/anaDOMIANklasoru/public_html/SUBDOMAIN
    ServerAdmin [email protected]
    ## User piclect # Needed for Cpanel::ApacheConf
    <IfModule mod_suphp.c>
        suPHP_UserGroup anaDOMIANklasoru anaDOMIANklasoru
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        SuexecUserGroup anaDOMIANklasoru anaDOMIANklasoru
    </IfModule>
</VirtualHost>

Kodlamadaki renkli kisimlar onemlidir, yanlislik yapmayin.

*144.255.144.144 = Domain’in ip adresi, eger eklememis iseniz default sunucu ipsini girin.
*SUBDOMAIN.domain.com = olusturacaginiz subdomainin ismi
*anaDOMIANklasoru = Ana domainin kurulu oldugu klasor ismi
*SUBDOMAIN = Subdomain klasorunun ismi (ana domainin bulundugu alana yeni klasor acmaniz gerekli)
*anaDOMIANklasoru = UserGroup kisimlarindaki alani ana domainin grup ismine gore degistirin. Genelde olustururken kullandiginiz kullanici adi olur.

Ek not: bunu yaptiktan sonra subdomain icin klasor olusturmayi unutmayin.

Sonrasinda NS tanimlayarak bu domaine gelecek istekleri apachenin yonlendirebilmesini saglayacagiz.

Ana Domain’in Ns yapilandirma dosyasini acin: /var/named/ANADOMAIN.com.db

En altina asagidaki kodlari duzenleyerek ekleyin:

SUBDOMAIN 14400 IN A  144.255.144.144
www.SUBDOMAIN 14400 IN A  144.255.144.144

islem bu kadar. Sonrasinda yapilacak is apache ve dns server’a restart atmak olacaktir. Asagidakileri sirasi ile calistirin:

service httpd restart
service named restart

Eger sisteminizde nginx kurulu ise yapilandirma dosyasinda subdomain bilgilerinizi eklemeniz ve apachede tanimladigimiz port’u (80) degistirmeniz gereklidir.

Kategoriler
Cpanel Faydalı Bilgiler SSH üzerine

Cpanel sunucularda SSH den yeni domain eklemek!

Bazen cpanel kullanmayabiliriz, bunun farkli sebepleri varki bunlarin basinda lisans ucreti gelmektedir. Asagidaki kodu kullanarak SSH den sunucunuza kolayca yeni domain ekleyebilirsiniz:

/scripts/wwwacct DOMAIN.com KULLANICI-adi SIFRE-yaz unlimited advanced -n

Bunu SSH ekranindan kendinize gore duzenleyerek gonderin, karsiniza bir soru kismi gelecek. Eger gercekten olusturmak istiyorsaniz yes yazarak enter yapin, domain hostunuza eklenmis olacaktir.

NOT: kullanici adini fazla uzun girmeyin, kabul etmeyebilir..

Kategoriler
Apache Faydalı Bilgiler SSH üzerine

Apache başlatma sorunu: Starting httpd: (98)Address already in use…

Bir ara yardimci olur diye yazilarim arasina ekliyorum bu konuyu. Apache log dosyalarini sildigimde bu hatayla karsilastim, baska sebepleride oabilir, yanlis httpd konfigurasyon yapilandirilmasi yuzundende olabilir.

Genel olarak hata mesaji bu sekilde oluyor:

Starting httpd: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs!

Olurda sizde bu tarz kucuk hatalarla karsilasip, bir turlu cozemiyorsaniz asagidakileri sirasi ile ssh panelinden uygulayin :)

crond servisini durduralim.

service crond stop

apacheye restart atalim.

service httpd restart

Bu islemden sonra buyuk ihtimal apache calisacaktir :) sorun giderildigi icinde crond’yi tekrar aktif edelim.

service crond start

Sorunumuz cozulmustur sanirim, herkese hayirli olsun :)

Kategoriler
Nginx

Nginx web sunucusunda GZIP aktif etme (%30 performans artisi)

Nginx harika bir sistem, ancak ince ayarlarla daha cok performans almaniz muhtemel, bu performans cogu zaman gozle gorulur derecede belirgin olabilir. Bunlardan biriside nginx in “–with-http_gzip_static_module” moduludur. Ne yapar bu diye sorarsaniz kisaca aciklayalim: sitenizdeki belirtmis oldugunuz dosya turlerini yada icerigini gzip seklinde sikistirarak %30 lara varan bir kucultme ile kullaniciya ulasma suresini dusurerek, iceriginizin daha hizli ve guvenli yoldan ulastirilmasini saglar.

Nginx kullanicilarinin bunu aktif etmesi gerekli. Oncelikle gerekli modulun oldugundan emin olun. ssh giris yaparak ekrana bunu yazin: nginx -V
cikan sonuclar icinde bunu goruyorsaniz bir sonraki adima gecebilirsiniz demektir: –with-http_gzip_static_module

Eger yoksa, diyecegim ama olmamasi imkansiz, cunku default olarak geliyor zaten :)

Daha onceki nginx makalelerimi okuyup uygulayan arkadaslar nginx.conf dosyalarindaki gzip alanini kaldirin.
Eskisi boyle idi, farklida olabilir ama gzip ile basliyorsa silin hepsini:

gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;

Asagidaki yeni gzip ayar kodunu sildiginiz yere ekleyin (yukaridaki ile degisin):

## Gzip modunu aktif etme / makaleci.com
gzip on;
gzip_static on;
gzip_buffers 4 128k;
gzip_comp_level 1;
gzip_http_version 1.0;
gzip_min_length 0;
gzip_types text/plain application/x-javascript text/xml text/css;
##eger farkli dosya turlerinide gzip seklinde islemesini istiyorsaniz ; dan once
##turunu belirten kodu bosluk birakarak ekleyin.
##Bu turleri gormek icin /etc/nginx/mime.types dosyasina bakabilirsiniz :)
gzip_vary on;

Bu kadar sonrasinda nginx e restart atalim:

service nginx restart

Ve sonuc:

Eger farkli dosya turlerinide gzip seklinde islemesini istiyorsaniz gzip_types alanina turunu belirten kodu bosluk birakarak ekleyin. Bu turleri gormek icin /etc/nginx/mime.types dosyasina bakabilirsiniz. Sonrasinda restart atarak header check yapin, yani burayi kullanabilirsiniz test icin.

Buradaki dokumana binayen guncelleme maksatli ve bilmeyenler icin yardimci olacagini dusundugum icin bunu hazirladim. Zaten konudaki yardimci bash scriptinide guncelleyecegim birazdan.

Bu konuda Hakan isimli sadik takipcimizi ve yorumcumuzu dikkatimizden kacan cogu seyi, gzip olayinda oldugu gibi :) uyararak dokumanlarin daha iyi hale gelmesini sagladigi icin tesekkur ediyorum.

Sevgiler saygilar..

Kategoriler
SSH üzerine Sunucu Yönetimi

RSYNC ile sunucudan dosya yedekleme, gönderme, alma işlemleri!

RSYNC basit olarak iki sunucu arasinda dosya aktarimina olanak saglayan, baglantinin yada sunucunun kapanmasi isleminden sonrada kaldigi yerden devam edebilen (tekrar baslatmaniz gerekli) bir yedekleme yada diger adiyla dosya alma gonderme islemidir. Bu yontem daha cok yedekleme icin kullaniliyor, cunku bu islem ile yedeklediginiz yerdeki dosyalar arasina yenileri eklendiginde tekrar hepsini almak yerine sadece o degisen dosyalari aliyor, buda zamandan ve trafikten tasarruf sagliyor bize. Anlamayanlar icin kucuk bir ornek vermek istiyorum: A sunucunuzda 500 gb lik bir klasor var. Bu klasor devamli olarak yeni resimler, yeni dosyalar yada yedekler ile artiyor, buyuyor. Siz RSYNC yontemi ile bu klasoru B sunucusuna yedeklediginizde dosyalarinizi guvenle yedeklemis olursunuz. Ancak soz konusu klasor hergun yenileriyle buyuyor. Boylece tekrar RSYNC yontemi ile dosya cekmeye calistiginizda onceki yedekledigi dosyalari kontrol ederek almiyor ve sadece yeni eklenen, yani daha once yedeklediginiz dosyalar arasinda olmayanlari yedekliyor.. Ilk islem 2 saat surerse, ikinci islem 2 dakika surecektir, cunku olmayanlari hesaplayip aliyor.

Yeni baslayanlar ve sunucu isi ile ilgilenenlerin hezaman ihtiyac duyabilecegi bu ozelligi kullanmayi anlatacagim, boylece elimizde bir altin bilezik olsun :)

RSYNC islemi ile bir cok isi yapabilrisiniz: Ayni sunucuda icinde dosya transferi, yedekleme islemi, iki sunucu arasinda yedekleme, birden fazla sunucu arasinda dosya transferi gibi bir cok alanda size hizmet edebilir. Ayni zamanda bulundugunuz sunucudan bir baska sunucuya da dosya gonderebilirsiniz..

RSYNC Parametreleri:

Uygulama icin bunlar cok onemlidir, cunku elimiz, gozumuz, ayagimiz olacak bu parametreler. RSYNC komutunu kullanirken herzaman bu 3 parametreyi kullanmanizi oneririm:
-avz
a: Arsivleyerek indir anlamnia gelir
v: yedekleme islemlerini gormemizi saglar ssh ekranindan
z: Dosyalari sikistirirarak ceker, buda hiz acisindan iyi olabilecek bir secenek.

Bunlarin yaninda ek olarak kullanabilecegimiz parametreler:
-p: Dosya izinlerini (chmod) bozmadan, degistirmeden ayni sekilde aktarir.
-t: Dosya tarihlerini degistirmeden ayni sekilde aktarir.
-l: Kisayol dosyalarinida aktarir.
n: bu islemden emin degilim ama sanirim dosya aktarim sirasinda test yapiyor :)
-e: Dosyalarin ssh uzerinden gonderildigini belirtir.
–delete-after: Yedeklediginiz dosyalari, islem bittikten sonra silmenizi saglar. Bu yontemi dikkatli kullanin, hatda hic kullanmayin :) Profesyonel degilseniz tavsiye edilmez..

RSYNC ile Ayni sunucu icinde dosya Transferi:

Ornek kullanim:

rsync -av -t -l /home/kuaza /var/www/

burda kuaza klasorunu www klasorunun icine klasor olarak aktardik, eger sonuna / isareti koysaydik kuaza klasorunun, o zamanda klasor yerine sadece icindekileri aktarmamizi saglayacaktir. Ornek sadece kuaza klasoru icindekileri aktarmak istersek:

rsync -av -t -l /home/kuaza/ /var/www/

Kod icerisinde parametreleri istediginiz gibi kullanabilirsiniz.

RSYNC ile sunucudan sunucuya dosya gondermek:

Yukardaki kullanim gibidir, tek yapmaniz gereken gonderilecek sunucu bilgilerinide girmek.

rsync -av -t -l /home/kuaza [email protected]:/var/www/

Bu islemden sonra size soru sorayaca, yes diye yazip enter yapin sonrasinda da karsi sunucunun, yani dosyalari gondermek istediginiz sunucunun sifresini soracak size, sifreyi yazin enter yapin, dogru ise islem baslayacak ve aktarimi goreceksiniz. Burda onemli olan nokta ilk islem sorasinda sunucuya erisimi olan kullanici ismini ve sunucunun IP adresini dogru kullanmaniz.

Ornegin: [email protected] : Burda root sunucuya baglanirken kullandigimiz kullanici adidir. Bazi sunucularda kullanici adi farkli olabilir. Ornegin Bluehost.com yada hostgator.com dan dosya cekmek istedigimizde giris sirasinda kullandigimiz kullanici adini yazmaniz gerekecek. Tabi ssh erisimi gerekebilir, bunuda zaten actirabiliyorsunuz kolaylikla..

RSYNC ile Baska sunucudan dosya cekmek:

Yukaridaki islemin tersini uygulayarak baska bir sunucudan o anda kullandiginiz sunucuya dosya aktarabilirsiniz.

rsync -av -t -l [email protected]:/home/kuaza /var/www/

Burda da IPsini yazdigimiz bilmem kac ipli sunucudan kuaza klasorunu kendi sunucumuzda bulunan www klasorune cekiyoruz. Tekrar ediyorum parametreler kismini istediginiz gibi kullanabilirsiniz. Ornegin chmod ayarlarinin da degismesini istemiyorsaniz -p parametresinide ekleyebilirsiniz..

rsync -av -t -l -p [email protected]:/home/kuaza /var/www/

Basitce bu islemi size anlatmaya calistim, benimde devamli kullandigim bir ozellik oldugu icin devamli bir yerde not olarak tutmam gerekiyor, bazen aradigimi kolay kolay bulamiyorum, ozellikle kullanimini unuttuklarimin.

Bu dokumanda yararlandigim kaynaklar:
http://ni.net.tr/blog/rsync-baslangic.html
http://www.manpagez.com/man/1/rsync/

Yardimci olabilecek kaynaklar:
http://www.linuxuzmani.com/rsync-ile-yedekleme-incremental-backup.html

Kategoriler
Faydalı Bilgiler mysql hakkında Panelsiz

SSH ile Mysql database oluşturma, kullanıcı oluşturma, database silme

Daha once hazirladigim panelsiz websunucusu hazirlama dokumanini guncelledim, ayri olarak bir konu acip bu bilgiyede ihtiyaci olan arkadaslarin daha cabuk ve kolay sekilde ulasabilmelerini istedim. Soz konusu dokuman ssh ile mysql programiniz da database, kullanici hesabi olusturabilmenizi ogrenmenizi saglayacak..

SSH panelimize girelim (putty), ardindan asagidakini yazip enter yapin: (mysql’ye baglanalim)

mysql -u root -p

Ardindan mysql sifrenizi isteyecek sizden, dokumanin baslarina dogru mysql sifrenizi yenilemeyi gormustunuz, burda yaptiginiz sifreyi yazip enter yaparak mysql programina baglanin.

Sonrasinda asagidaki kodu kullanarak database olusturalim:

CREATE DATABASE db-isminiz-buraya;

db-isminiz-buraya: bu kismi olusturacaginiz database ismi ile degistirin ve enter yapin, sonrasinda asagidaki gibi bir mesaj cikacak, bu islemi dogru yaptiginiz anlamina gelir, aksi halde hata yapmissiniz demektir:

Query OK, 1 row affected (0.00 sec)

Simdide Database adina kullanici ve sifre belirleyelim:

GRANT USAGE ON db-isminiz-buraya.* to [email protected] IDENTIFIED BY 'db-sifreniz-buraya';

db-isminiz-buraya: az once olusturdugumuz db ismi aynen yazin.
db-kullanici-adiniz-buraya: database icin kullanici adini yazin.
db-sifreniz-buraya: Olusturdugunuz kullanici icin sifre belirleyin.

Ve Database ile kullanici ismini birbirine baglayalim:

GRANT ALL  ON db-isminiz-buraya.* to [email protected] ;

db-isminiz-buraya: az once olusturdugumuz db ismi aynen yazin.
db-kullanici-adiniz-buraya: database icin kullanici adini yazin.

Olusturdugunuz bir datebaseyi silme:

DROP database db-isminiz-buraya;

db-isminiz-buraya: Silmek istediginiz db ismi aynen yazin.

Bu islemlerin her kademesinde Query OK seklinde cikti verecek, bu sorunsuz islemleri hallettiniz anlamina gelecektir. Suanda database ve kullanici hesaplarini olusturmus olduk. Artik wordpress yada farkli bir sistem kurarken db bilgilerini istediginde yukarida yaptigimiz kullanici adi, database adi ve sifreyi kullanabilirsiniz..