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
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
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
Centos hakkında Günlük hayat Linux Web sunuculari Nginx Webmaster yardım

Centos sunucularda panelsiz Websunucusu (php, mysql) ve NGINX kurmak, yonetmek!

Sunucu bazli yardimsal makalelerime hizlica devam ediyorum arkadaslar. Bu yazimda size panelsiz olarak websunucusu kurmayi anlatacagim.

Bu anlatimla neler yapabileceksiniz ?:
* Bir websunucunuz olacak (apache)
* php uygulamalarini calistirabileceksiniz
* Mysql veritabani yonetim yazilimini kuracagiz.
* BIND (dns) kuracagiz (ama calistirmayacagiz)
* Yeni domain eklemeyi, web tarayicisi ile bu domaine erismeyi ogreneceksiniz.
* Bu islemlerden sonra NGINX ile daha hizli bir websunucusu kuracagiz.
* Yardimci olabilecek modulerede yer verecegim.

Makale sirasinda bize gereken programlari bilgisayariniza indirip kurun:
* Winscp (Windows ortaminda sunucunuza erismenizi ve kolayca duzenleme yapabilmenizi saglar, bir ftp programi gibi)
* Putty (ssh ile sunucuya erismemizi ve unix ortaminda programlari kurmamizi saglayacak)

Gerekli olan programlari kurup actiktan sonra sunucunuza baglanin, bundan sonraki anlatim bunu dusunerek anlatilacaktir..

l: Websunucusu apache dahil bize yardimci olacak php, mysql ve bind modullerini kuralim
Ssh programimizi acalim (putty), ardindan asagidaki kodu yazarak onaylayin:

yum -y install httpd php mysql bind mysql-server php-mysql

Bu islemden sonra sunucumuza apache http websunucusu, bunun yaninda dns uygulamalariniz icin yonetmenize imkan verecek bind (named), php ve mysql, ve bunlarin bir arada derlenmesi islemi bitmis olacak..

A: Apache ve mysql programlarini, sunucunuza restart (reebot) atildiktan sonrada, otomatik baslatilmasi icin, asagidaki kodu sshden uygulayin:

/sbin/chkconfig httpd on
/sbin/chkconfig mysqld on

Apache’yi ve mysql’yi baslatalim:

service httpd start
service mysqld start

B: Mysql root sifrelerimizi olusturalim
mysql kurulduktan sonra sifre degistirilmesi gereklidir, bunun icin asagidaki kodu ssh ekranindan calistirin, ancak once SIFRENIZ kismini kendi yeni sifrenize gore degistirin, bu sifre mysql ye erismede kullanacaginiz guvenlik kodu olacak.

/usr/bin/mysqladmin -u root password 'YENI-SIFRENIZ'
/usr/bin/mysqladmin -u root -h test.kuaza.com password 'YENI-SIFRENIZ'

Restart atmak icinde asagidaki kodu kullanabilirsiniz:

service mysqld restart

C: Yeni domain ve dosyalari icin kullanici ekleme (kullanici izinleri dahil)
ilk olarak sunucunuzun IP adresine yada Hostname domainine girildiginde acilmasini istediginiz alanlari tanimlayalim. Bu ilk domain ekleme islemimiz olacak, dikkatlice takip edin, sonraki adimlarda yeni domain eklemek istediginizde ayni islemi tekrarlamaniz gerekecek.

Oncelikle Hostname (Ornek: test.kuaza.com) domaini icin kullanici ve izinlerini olusturalim: Bu hostname sunucunuzun ismi niteligindedir, asagidaki kodu ssh ile uygulayin:

useradd DOMAIN-ISMI

Ornek: useradd test.kuaza.com

Sonrasinda sunucunuzda /home/ dizini altina kullanici klasoru olusturulmus oldu. Sitemizin dosyalari bu klasor altinda yer alacak, ornegin: resim, html ve php dosyalariniz. Burada olusturulan kullanici klasorune chmod ayari verecegiz. Kullanici klasorunun chmod ayari 711 olmali. Ornek resimdeki gibi:

Simdi /home/ klasoru altinda olusturulan yeni kullanici klasoru icine girin ve asagidaki isimlerde 2 tane klasor olusturun: bunu winscp programi ile yapin.

public_html
logs

Sonrasinda sag tik yapin acilan listede en altdakini secin: Properties ‘i secin: Bu kisimda klasorlere kullanici izinlerini verecegiz, boylece icerisine yukleyecegimiz dosyalara tarayicimiz ile erisim mumkun olacak. Ornek Winscp ile asagidaki resimdeki gibi yapabilirsiniz: Group ve Owner kisimlarini ayni secin, root olmamasi gerek, secmek icin tiklayin orda diger kullanici ismi cikacaktir, onu secin, ornek resimde mevcut. Eger root secili ise tarayici ile dosyalariniza erismek mumkun olmayacaktir:

Simdi public_html kalasoru icine ornek bir resim, php yada html dosyasi yukleyin, bu dosya deneme yaparken calisip calismadigini anlamak icin kullanacagiz.

D: Apache konfigurasyon dosyasina domain ile bilgileri girelim:
Bunu yapmamiz gerekli, cunku gelen istekleri apache hanki klasore yonlendirecek bunun tanimlamasini girecegiz.

Bu ayarida C: anlatimi kisminda oldugu gibi her domain ve kullanici eklendiginde yapmaniz gerekli. Cunku apachenin domain calistirilmak istendiginde hangi klasoru acacagini belirlememiz gerekli, aski halde siteye girilmek istendiginde apache standart dosyasi acilacaktir.

Apache yapilandirma dosyasini acalim (winscp ile): /etc/httpd/conf/httpd.conf

Bunu aratin ve bulun:

#NameVirtualHost *:80

Bu sekilde duzeltin: 

NameVirtualHost SUNUCU-IP-ADRESINIZ:80

Eger sunucunuzda birden fazla ip belirlemek istiyorsaniz altina yeni IP yi asagidaki sekilde eklemeniz gerekli:
NameVirtualHost YENI-SUNUCU-IP-ADRESINIZ:80

Bunu her yeni IP icin yapmaniz gerekli.

Sonrasinda en alta gelerek her domain icin ayri ayri ekleyecegimiz asagidaki kodlari ekleyin:

ServerName test.kuaza.com
ServerAlias www.test.kuaza.com

##Domain ve dosyalar icin kok dizin belirliyoruz
DocumentRoot /home/test.kuaza.com/public_html
##Domain ve dosyalar icin kok dizin belirliyoruz

ServerAdmin kuaza.ca[AT]gmail.com
UseCanonicalName Off

## Hata dosyalarinin tutulacagi yeri belirtiyoruz
ErrorLog /home/test.kuaza.com/logs/test.kuaza.com-error_log
CustomLog /home/test.kuaza.com/logs/test.kuaza.com-access_log common
## Hata dosyalarinin tutulacagi yeri belirtiyoruz

##Bu kisim useradd XXX diye belirledigimiz domaine ozel kullanici izinleri

suPHP_UserGroup test.kuaza.com test.kuaza.com

SuexecUserGroup test.kuaza.com test.kuaza.com

##Bu kisim useradd XXX diye belirledigimiz domaine ozel kullanici izinleri

Bu kodu her domain ekleyeceginiz zaman kopyalayarak yeni domaine uyarladiktan sonra en alta ekleyin. Bunu hostname domaini ve ip adresiniz icinde uygulayin, boylece ip adresini adres satirina girerek ulasmak istendiginde istediginiz bir sayfayi actirabilirsiniz. aksi halde ilk tanimladiginiz domain acilacaktir IP adresi ile girilmeye calisildiginda :)

Bu ayardan sonra apache sunucusuna restart atalim:

service httpd restart

Eger bir hata vermez ise sorunsuz sekilde domaini adres satirindan calistirdiginizda acilacaktir.
Ornek: http://test.kuaza.com
Ornek resim:

Gordugunuz gibi bu adimlardan sonra panelsiz olarak websunucumuz hazir oldu, calisiyor. Suanda BIND yani dns yonetici uygulamasi isimize yaramiyor, daha dogrusu baslatmadik. Baslatsakta calismaz, hata verecektir, cunku konfigurasyon dosyasi ve sunucuda bagli domainler icin yapilandirma dosyalari olusturmamiz gerekli. bu suan icin gerekli degil, cunku gelismis ozellikleri kullanmak isterseniz yapmanizi tavsiye ederim. Ornegin webmail, yeni ns olusturmak, Domaine ozel ip belirlemek gibi. Ilerleyen donemlerde zamanim olursa BIND (dns zone) uygulamasi hakkinda da makale yazacagim, bu makaleye hitafen.

Sizde artik panelsiz olarak sunucunuzu kurabilir, yonetebilirsiniz.

2: Panelsiz sunucuda NGINX kurulumu
Sunucumuzu nginx ile guclendirerek daha hizli ve rahat bir sunucu hazirlayabiliriz. Apache tek basina yuksek hitli sitelerde bunun altindan kalkamayabilir. Cunku apache her dosya icin yeni bir slot yani islem baslatir. Bu statik, resim, html,css,js gibi dosyalarida icerir. Buda kisa surede apachenin uygulayacagi islem gucunun dolmasina neden olur. cogu zaman bu islem gucu asildiginda sitenize ulasilamama, gec acilma gibi bir cok sorunla karsilasirsiniz. Ancak Nginx websunucusu ile statik dosyalarin islenmesi cok daha kolay olur ve apache ye diger uygulamalari calistirmak icin alan ve islem gucu saglanir. isterseniz panelsiz bir sunucuda nginx kurulumu icin detayli bir dokumanin anlatimina baslayalim :)

Oncelikle nginx’i yum yardimi ile kuralim: Nginx derlemesi yum deponuzda olmayabilir, bu yuzden asagidaki adimlari takip edin.

Sunucunuza uygun olani secin ve ssh den calistirin:
CentOS 5

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

CentOS 6

rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

Kendinize uygun olan kismi uyguladiktan sonra nginx otomatik kurulum dosyasi yum depolarina eklenmis oldu, ilk kullandigimiz kurulum kodunu tekrar sshden calistiralim:

yum install nginx

Bunun ardindan nginx’in kurulmus olmasi gerekli. Bu adimdan sonra tek yapacagimiz sey hesabimizdaki domainleri tanimlamak.

Orjinal kurulan nginx konfigurasyon dosyasinda cogu sey belirtilmemistir ve eksiktir. Ozellikle nginx in gzip ozelligi bile acik degildir ve bununla beraber cogu faydali ozellikleri acmak icin asagidaki islemleri sshden uygulayin:

rm -rf /etc/nginx/nginx.conf
cd /etc/nginx/
wget www.makaleci.com/dersler/nginx/nginx.conf

Bu islemden sonra hesabimizdaki siteleri nginx’e tanitalim. Bunun icin her siteyi ayri ayri tanitacagimiz konfigurasyon dosyasini acalim (winscp ile):

/etc/nginx/conf.d/default.conf

Dosya icerisindekileri komple silin ve asagidakileri ekleyin:

server {
access_log off;
error_log /var/log/httpd/nginx.errors.DOMAIN.com.log warn;
listen 80;
server_name DOMAIN.com www.DOMAIN.com;

# Nginx'in calistirmasini istediginiz statik dosya uzantilarini belirleyin.
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
root /home/DOMAIN.com/public_html; # Burda domaine ait kok dizini belirtiyoruz.
}

location / {
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

proxy_connect_timeout 30s;

proxy_redirect http://www.DOMAIN.com:81 http://www.DOMAIN.com;
proxy_redirect http://DOMAIN.com:81 http://DOMAIN.com;

proxy_pass http://DOMAIN-IP ADRESI:81/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Sonrasinda icerisinde goreceginiz BUYUK harfle yazdigim yerleri nginx’e tanitacaginiz domaine gore duzenleyin.
NOT: Bu kod kalibini her domain icin ayri ayri, alt alta ekleyerek yeniden eklemeniz gerekli. Yani her domain icin bu kalibi kullanin ve alt alta ekleyerek kaydedin.

E: Ilk acacagimiz domaini belirttikten sonra bu ayar ile apache’yi acalim ve port ile tanimladigimiz domaine ozel bolumu nginx icin duzenleyelim.

Apache yapilandirma dosyasini acalim (winscp ile): /etc/httpd/conf/httpd.conf
Bunu aratin:

Listen 80

Bununla degistirin: 

Listen 81

Sonrasinda ekledigimiz sunucu ve domain ip lerinin sonundaki port numarasini nginx e yonlendirecegimiz port ile degistirelim:
Bunu aratin:

NameVirtualHost SUNUCU-IP-ADRESINIZ:80

Bununla degistirin: 

NameVirtualHost SUNUCU-IP-ADRESINIZ:81

 

Ve domain kisimlarindaki portuda 81 ile degistirin. Yukarida apache kurulduktan sonra domaini belirttigimiz kod kismi var, en sonda olmasi gerekli. O koddaki 80 kisimlarinida 81 ile degistirecegiz.

Her domain icin ayridir, BULUN:

<VirtualHost IP-ADRESI:80>

DEGISTIRIN:

<VirtualHost IP-ADRESI:81>

Yani kisaca arkadaslar apache yapilandirma dosyasi icindeki acik olan :80 portunu :81 ile degistiriyoruz. Boylece Domaine gelen istekleri NGINX e gondermis olacagiz.

F: mod_rpaf kurulumu
Oncelikle mod_rpaf kurulumu icin gerekli olan uygulamalari yum yardimi ile kuralim:

yum install httpd-devel gcc

Sonrasinda mod_rpaf i kuralim ve derleyelim:

cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Sonrasinda tekrar apache konfigurasyon dosyasini acalim: /etc/httpd/conf/httpd.conf

Aratin: 

LoadModule

 


Bu kismi buldugunuzdan emin olur, apache modullerinin listesini goreceksiniz, alt alta 20-30 tane olmasi gerekli. Bu listenin en sonuna, bir satir asagiya gecip asagidaki kodu ekleyin:

LoadModule rpaf_module modules/mod_rpaf-2.0.so
# mod_rpaf Konfigurasyon alani, Sunucunuzda bulunan IP adreslerini eklemeyi unutmayin
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 10.0.0.1 SUNUCU-IP-ADRESI
RPAFheader X-Forwarded-For

 

Sunucunuzda kac tane ip adresi belirlenmis ise bunlari SUNUCU-IP-ADRESI kismina ve her birini bir bosluk birakarak ard arda ekleyin., Kaydedip cikin.

G: PCRE kütüphanesini Yüklemek (Guncel versiyon: pcre 8.20)

Son sürümü buradan indirebilirsiniz:

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.20.tar.gz
tar xvfz pcre-8.20.tar.gz
cd pcre-8.20
./configure

Sanirim suanda herseyi sorunsuz halletmissinizdir, yani umuyorum :) Asagidaki son adimida uygulayarak ayarlari duzenledigimiz modullerle birlestirelim, etkinlestirelim:

Apache restart atalim:

service httpd restart

Nginx restart atalim:

service nginx restart

Bu adimlardan sonra eklediginiz domaini adres satirindan acarak gozlemleyin, aciliyorsa guzel. acilmiyorsa atladiginiz bir yer var yada yaparken hata almis, hata yapmis olabilirsiniz. Eger nginx in calisip calismadigini kontrol etmek istiyorsaniz bu siteye girerek sorgulatin.

Server kismindan nginx ve versiyon numarasini goruyorsaniz sorunsuz sekilde nginx calisiyor demektir. Tabi en ustdeki kisminda boyle olmasi gerekli: HTTP/1.1 200 OK =>

Ornek calisma ve testler sirasinda kullandigim domaini sorgulattigimda cikan sonuc:

3: Panelsiz sunucuda Mysql kullanimi= Mysql database olusturma, kullanici olusturma, database silme
Sitelerimize erisiliyor, php, html dosyalarimizda calisiyor, nginxde sorunsuz olarak isliyor. O zaman gelin bir wordpress sitesi kuralim :) Ama once mysql database ve kullanici olusturmamiz lazim, bunu bir cozelim once :)

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 kurarken db bilgilerini istediginde yukarida yaptigimiz kullanici adi, database adi ve sifreyi kullanabilirsiniz..

Arkadaslar dokumani hazirlamak bekledigimden uzun surdu. Bir ara sizofreniye baglamaya baslamistim. Sanirim 2-3 gundur uzerinde calisiyorum. Bu test icin 2 vds ile calistim, bu vdslerin sponsorlugunu saglayan kisi ve kurumlar ile ilgili yakin zamanda bir yazi yazacagim, burdan hepsine gonulden tesekkur ediyorum.

Galiba biraz yoruldum, dinlenme moduna gececegim. Dokumanda gozunuze carpan bir yanlislik, hata varsa yorum olarak yazmanizi rica ediyorum. Ayrica kurulum yapmaya calisan arkadaslar, olaki bir sorunla karsilasirsaniz lutfen yorum birakin, dokumani en iyi haliyle guncellemeye calisacagim.

Dokumanda Turkce karakter kullanamiyorum, klavyemden oturu, epey uzun ve yorucu oldugu icinde Turkce karakterleri duzeltmeye zamanim yok. Bu konuda anlayis gostereceginizi umuyor, arkamdan kufretmeyeceginizi dusunuyorum :)

Kategoriler
Centos hakkında Nginx Plesk

Centos/Plesk panel sunucularda nginx kurulumu!

Plesk panel kullananların yıllardan beri aynıdır sorunu, nginx ‘i iyi şekilde kuramamak :) Aşağıdaki anlatacağım yazı ile 5dk gibi bir sürede sitelerinizi nginx yardımı ile göstermeye başlayabilirsiniz. Yaptığım testlerde hit olmamasına rağmen apache üzerindeki wordpress siteler oldukça yavaş durumdaydı. Nginx e geçtikten sonra bu süre gözle görülür derecede düştü ve sitede dolaşma, gezme oranı arttı..

Testler sırasında kullandığım plesk panel son versiyondu sanırım 10.0.1 15 günlük deneme süresi var. ancak aplıkasyon kısmı çok hoşuma gitti, birçok şeyi kolayca ve hızlıca kurabiliyorsunuz, ilerde bu konuda detaylı bir inceleme yapacağım :)

1: ilk adım nginx’i kuralım
Nginx’i yum deposundan kuracağız, büyük ihtimal yum deponuzda nginx uygulaması yoktur, bu yüzden aşağıda işletim sisteminize uygun olan kısmı ssh den çalıştırın:

CentOS 5

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

CentOS 6

rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

Sonrasında aşağıdaki yum kodu ile nginxi kuralım:

yum install nginx

Kurulum sırasında size kurulsunmu diye soru süracak y yaparak enter yapın kurulum tamamlansın. şuanda nginx sisteminize sorunsuz şekilde kurulmuştur.

Sırada nginx conf dosyasını kendi hazırladığımız ile değiştirmek var:

rm -rf /etc/nginx/nginx.conf
cd /etc/nginx/
wget www.makaleci.com/dersler/nginx/nginx.conf

2: Siteleri Nginx’e tanıtma
Sıra hesabımızdaki siteleri nginx’e tanıtmaya geldi. Bunun için bu dosyayı düzenlememiz gerekli:
/etc/nginx/conf.d/default.conf

Ben düzenlemek için cuteftp yada filezilla programını kullanıyorum. ancak sizde bunlardan birisi yoksa ssh ilede düzenleme yapabilirsiniz.
SSH ile dosyayı düzenlemek için bu şekilde açın: nano /etc/nginx/conf.d/default.conf

Dosya içerisindeki herşeyi silin ve aşağıdaki örnek kodu düzenleyerek ekleyin: (Guncellendi: 22/11/2011 19:26)

server {
access_log off;
error_log /var/log/httpd/nginx.errors.DOMAIN.com.log warn;
listen 80;
server_name DOMAIN.com www.DOMAIN.com;

# Nginx'in calistirmasini istediginiz statik dosya uzantilarini belirleyin.
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
root /var/www/vhosts/DOMAIN.com/httpdocs; # Burda domaine ait kok dizini belirtiyoruz.
}

location / {
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

proxy_connect_timeout 30s;

proxy_redirect http://www.DOMAIN.com:8080 http://www.DOMAIN.com;
proxy_redirect http://DOMAIN.com:8080 http://DOMAIN.com;

proxy_pass http://DOMAIN-IP-ADRESINIZ:8080/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Bu kalıp’a dikkat edin, hesabınızda kaç tane domain varsa bu kalıbı kullanarak tanımlamanız gerekli, yani her domain için alt alta yeniden eklemeniz gerekli. Yani bir domain için yukarıdaki kalıbı eklediğinizde default.conf dosyasına, yeni bir domain eklemek isterseniz aynı dosyada en altdan bir satır aşağı geçerek aynı kalıbı kullanarak diğer domaini tanımlamalısınız..

Ne kadar site varsa hepsini default.conf dosyasında tanımladıktan sonra dosyayı kaydedin ve kapatın.

3: Apache portunu düzenlemek
Şimdi yapacağımız işlemde apache portunu düzenleyerek nginx’e yönlendireceğiz, böylece gelen her istek nginx’e giderek işleyecek, statik dosyalar haricindekiler ise apachede kalacak. (hesabınızdaki siteler hariç, o düzenleme sonraki adımda yapılacak)

Bu dosyayı düzenlememiz gerekli: /etc/httpd/conf/httpd.conf
ssh ile yapacaklar: nano /etc/httpd/conf/httpd.conf

Bu dosya içinde Listen 80 kısmı bulup bu şekilde değiştireceğiz: Listen 8080
Kaydedip çıkıyoruz.

3:a – Apache icin mod_rpaf kurulumu:
mod proxy and forward denilen bu modul sayesinde biz nginxden gelen istemlerin normal istemciden gelmis gibi gorunmesini saglayacagiz.

Guncel modul versiyonu icin buraya bakabilirsiniz (asagidaki gunceldir mod_rpaf: 0.6): http://stderr.net/apache/rpaf/download/

cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xvfz mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Bu modulu kurabilmeniz icin sunucunuzda httpd-devel, gcc uygulamalarinin kurulu olmasi gereklidir, eger bunlar yoksa yada hata aliyorsaniz mod_rpaf kurulumunda asagidaki kodu ssh den calistirin ve eklentileri kurun:

yum install httpd-devel gcc

Sonrasinda mod_rpaf kurulumu kurulumunu tekrar bastan yapin..

mod_rpaf kurulduktan sonra httpd.conf dosyanizi acin ve musait bir yere ekleyin:

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 10.0.0.1 (ornek: 127.0.0.1 IP1 IP2 IP3 v.s)
RPAFsethostname On
RPAFheader X-Forwarded-For

Kod icerisinde de belirtilen ip kisminin devamina sunucuda ekli olan butun ipleri bir bosluk birakarak yazmaniz gerekli, aksi halde istatistik programlari veya scriptleri her ziyaretciyi default sunucu ip sinde gorecektir, yani kod icerisindeki (127.0.0.1) ipsinden.
NOT: 127.0.0.1 ip adresini silmemeniz gerekli, diger ip adreslerini devamina eklemeniz gerekli.. (sunucuda kac ip varsa hepsini bir bosluk birakarak devamina ekleyin.)

4: Hesabımızdaki siteleri nginx’e yönlendirelim
Pleskde sitelerin konfigürasyon dosyaları bu klasör içinde bulunur herzaman: /var/www/vhosts/DOMAİN.COM/conf
Bu klasör içinde domaine ait ip, yönlendirme v.s gibi bilgiler yer alır, burdaki dosyaları düzenleyerek içerisinde 80. portu gelen istekleri nginx portuna yönlendirecek şekilde düzenleyeceğiz. Bu düzenlemeyi her domain için yapmanız gerekli, en azından nginx’in yorumlamasını istediğiniz ve nginx’e tanıttığınız siteleriniz için.

Klasör içindeki bütün dosyaları açın, örnek bu şekilde oluyor isimleri genelde:

ve aşağıdaki gibi bir yer arayın: Genelde 135-140. satırlar arasında yer alır.


ServerName "DOMAIN.COM:80"
ServerAlias "www.DOMAIN.COM"

Yani kısaca ordaki dosyaların hepsini açın ve bunu aratın :80 bulduklarınızı da bununla değiştirin :8080

Yine bu düzenlemeyi o klasördeki bütün dosyalarda aratıp bulduklarınızda yapın. Ve hesabınızda ekli bütün domainler için ayrı ayrı yapmanız gerekli :)

4:a – Birden fazla IP li domain varsa eger:

birden fazla domain ve bu domainlere ayri ayri ip atanmis ise asagidaki gibi ipleri belirtmeniz gerekli her domain ipsi icin:

NameVirtualHost ip1:8080
NameVirtualHost ip2:8080
NameVirtualHost ip3:8080
NameVirtualHost ip4:8080

yani her ip icin tanimlama girmeniz gerekli. Genelde vps sitelerinde cikabilecek bir sorun, eger her domainize ayri ayri ip atamis iseniz bu ayari yapmaniz gerekmektedir. Aki halde acilmama gibi sorunlarla karsilasabilirsiniz.

Sonrasında önce apache’e restart atıp sonrada nginx’i başlatalım.
Apache restart:

service httpd restart

Nginx başlat:

service nginx start

Lazım olabilecekler:
Nginx yeniden başlatma:

service nginx restart

Guncellendi: 21/11/2011 19:39
Son bir adim kaldi. Oda kok dizin chmod ayarini duzenlemek. bunu yapmazsaniz nginx’e yonlendirdigimiz statik dosyalar calismayacaktir ve 404 not found hatasi verecektir.
Sitenizin kok dizininin chmod ayarini 0750 den 0755 e cevirin (degistirin): /var/www/vhosts/DOMAIN.com/httpdocs

Ornek resimdeki gibi olacak:

Buraya kadar sorunsuz ve hatasız geldi iseniz hayırlı olsun artık tanımladığını domainler nginx tarafından yorumlanıyor demektir. Bunu test etmek için buraya girip sitenizi sorgulatın ve çıkan sonuçlarda nginx ile versiyon numarasını görün. Görüyorsanız kendinizle gurur duyun :)

5: Nginx’i yeni versiyona guncelleme
Nginx yeni versiyon ciktiginda asagidaki yum kodunu ssh den yazip enter yapin:

yum update nginx

Sonrasinda size soru soracak y yazip enter yapin nginx guncellensin otomatik olarak :)

sonrasinda nginx e restart atalim:

service nginx restart

Bu dokümanı hazırlarken 3 vds den yararlandım, 3’unde de kurdum sorunsuz çalıştı. Netde ki çoğu anlatımda farklı eklentileride kurduruyorlar size ancak problem çıkmadığı için gerek duymadım onları kurmaya. ancak olaki bir sorun çıkarsa yorum olarak bize bildirin, doküman o yönde güncellenecek, yenilenecek, evrim geçirecektir :)

Su an itibari ile dokuman guncellenmistir: 31/01/2012 19:58 (domainleri nginx’e tanitirken kullandigimiz kalip kodlarinda guncelleme yaptim, nginx in isleyecegi statik dosyalari belirterek nginxden daha fazla yararlanmamizi sagladik.

Yeni guncelleme: mod_rpaf kurulumunu anlattim, bunun eksikliginde ziyaretciler ayni IP den girilmis gibi goruluyor ve ip bazli korumali scriptlerde giris sorunu yasanmaktadir. Ayrica giren herkesi ayni ipden gorundugu icin dogru sonuc alinamamaktadir. bu yuzden boyle eksiklikleri yasamamak icin bu eklentiyi kurmamiz gerekli. Lutfen yukaridaki guncelleme tarihinden once bu dokumani kullananlar mod_rpaf kurulum kismini uygulayarak sunucularini guncellesinler.

Yeni guncelleme: Birden fazla ip li ve degisik ipdeki domainler icin duzenleme. Eger her domaine farkli ip atiyorsaniz, bu ayari yapmaniz yerinde olacaktir. bunun icin 4:a kismini uygulamaniz yeterli olacaktir.

Vatana millete hayirli olsun) :)

Kategoriler
Linux Web sunuculari Nginx

Centos/Cpanel sunucularda nginx kurulumu – 2

Bu Dokuman daha once hazirladigim Centos ve cpanel sunucularda nginx kurulumu dokumuninin guncel ve kolay halidir. Kullanimda yada kurulumda karsilastiginiz sorunlari bu konu altindan belirtirseniz o yonde guncellenecektir..

Kategoriler
Nginx Sunucu Yönetimi Web Server Webmaster yardım

Centos ve cpanel sunucularda nginx kurulumu

Bu dokumanin daha guncel ve kolay anlatimi icin buraya bakabilirsiniz: Centos/Cpanel sunucularda nginx kurulumu – 2

Arkadaslar nginx nedir, neler yapar kisaca bir kac cumle ile belirtip hemen dokumani hazirlamaya baslayacagim. Detaylarina daha sonraki yazilarimda girecegim. Nginx apache gibi bir websunucusudur. Ancak kendi akranlarindan cok daha iyidir, oyleki ucretli litespeed den bile daha iyi olarak nitelendirilmektedir, cogu buyuk mecralarda da kullanilmaktadir. Ben kesinlikle apache kullaniyorsaniz yanina nginx ide katip devam etmenizi oneririm. Hem saldirilara karsi, hemde site hizi, sunucu yuku gibi durumlarda tam bir battal gazi diyebilirim :) Neyse kisa bir edebiyat ve direk konumuza geciyorum. Centos ve cpanelli sunucularda nginx kurulumunu anlatacagim. Dokuman denenmistir ve yazinin yazildigidi tarih gunceldir. Pleskde denemedim ama yakinda onuda deneyip onun icinde bir yazi hazirlayacagim.

Kategoriler
Nginx Webmaster yardım

Nginx upload limiti sorununa çözüm (413 request entity too large)

itiraf etmeliyim nginx suana kadar kullandigim en iyi web sunuculardan birisi ve inanilmaz faydalarini gormekteyim. Bu web sunucu hakkinda ilerleyen zamanlarda olumlu, olumsuz yonleriyle ilgili bir makale yazacagim ancak simdilik basit bir sorunun cozumu icin yardim da bulunacagim. Nginx kurulu sunucularda genelde atlanilan bir ozelliktir upload limiti vermek, nitekim yakin bir zamanda da basima gelmisti. Belli bir boydan buyuk dosyalari yukleyemiyordum ve sunucuyla baglanti kesildi uyarisi aliyordum. Hatanin cozumune ulasmam raslanti sonucu oldu ancak gercekten bir kac buyuk sorunumdan birisini halletmis oldum..

Hata kodunu gormemde opera tarayicisinada tesekkur etmek lazim aslinda. Cunku crome ve firefox gibi tarayicilarda hata kodunu hic gormedim, sans eseri acip baktigim operada denemelerimden sonra nginx hata kodu cikti. Hata kodu sayesinde de upload sorunu cozmus bulunduk. Simdi asagidaki anlatacagim yontemle sizde belli bir boydan buyuk dosyalari sunucunuza upload ederken sorun yasamayacaksiniz.

vhost.conf dosyasimizi aciyoruz, buna erisim icin sunucuda root yetkisine sahip olmaniz gerekmektedir. Genelde cpanelli centos sunucularda burada bulunur: /usr/local/nginx/conf/vhost.conf

eklememiz gereken kod: client_max_body_size bu kod sayesinde yuklenebilecek dosya boyutunu vermis oluyoruz, eger bu kod varsa karisinda bulunan sayiyi artirarak sorunu duzeltebilirsiniz ancak yok ise server altindaki location kismina asagidaki gibi bir kod eklemeniz yeterli olacaktir:

client_max_body_size    100m;

vhost.conf dosyasini actiktan sonra ekli olan domainleri goreceksiniz, upload sorunu yasadiginiz ve yuklenecek dosya boyutunu, limitini artirmak istediginiz sitenin ayar kismina gidin, ornek asagidaki gibi olmasi lazim:

    server {
    …..
    …..
    server_name  DOMAIN.com www.DOMAIN.com;
    location / {
    client_max_body_size    100m;
location kisminin altinda client_max_body_size ayar kodu yoksa yukaridaki kirmizi yer gibi sizde ekleyerek mb cinsinden bir limit verin. sonrasinda nginx e restart atarak sorunun duzelip duzelmedigini gormek icin denemeler yapin..

nginx icin restart kodu:

service nginx restart
Nginx sunucusuna restart atarken sorunla karsilasirsaniz yanlis bir sey yapmissiniz demektir, islemleri geri alarak yazdiklarimi tekrar okuyun, yine yapamazsaniz buradan yazin yardimci olmaya calisirim.