MYSQL WAIT TİMEOUT ÖZELLİĞİ HAKKINDA

Baya uzun bir zaman olmuş yazmayalı bu da cok da uzun bir yazi olmayacak zaten. Gecenlerde bir tool yazarken surekli mysql server has gone away hatasi almaktaydim bunun sebebinin de my.cnf de olan bir ozellikten ( wait_timeout ) kaynaklandigini biliyordum fakat bu ozellgin ( wait_timeout ) degerini de degistirmem bize sorun yasatacagindan nasil bu sorunu asabilirim diye arastirirken bir sql cumlecigine rast geldim.

Mysql baglantiyi sagladiktan sonra SET SESSION wait_timeout = 3600; sorgusunu calistirirsaniz sayet sadece o anki session icin wait_timeout degeri 1 saat olarak ayarlanacak ve muhtemelen surekli yasadiginiz has gone away hatasini deklare etmis olacaksiniz.

wait_timeout ozelligi mysqle acilan bir baglantinin maksimum bekleme suresidir eger wait_timeout degeri boyunca bir islem yapmazsaniz mysql bağlantiniz zaman asimina ugrar ve siz bir sorgu calistirdiginizda muhtemel has gone away alirsiniz.

dipnot: eksik ya da hatali bilgi var ise yorumlardan duzeltebiliriz


NGINX LOAD BALANCER VE NGİNX – PHP-FPM WEB SUNUCU KURULUMU

Merhabalar bugun openx cluster yaparken nginx load balancer kullanmak zorunda kaldim bugun ki yasadigim deneyimleri de size aktarayim dedim. Benim yaptigim cluster yapi da 1 adet load balancing yapacak server 2 adet web server 1 adet veritabani mevcuttu.

Kurulumlari Centos 6.x surumune gore anlatacagim diger dagitim veya versiyonlar icin de aynisidir muhtemelen. Oncelikle yapmamiz gereken tum centos sunuculara nginx reposunu ve remi reposunu yuklememiz gerekiyor.

Nginx reposu icin asagidaki satirlari /etc/yum.repos.d altine nginx.repo adinda dosya olusturup icine yazip kaydetmeniz gerekiyor.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Remi reposunu kurmak icin de /etc/yum.repos.d dizini altina remi.repo adinda dosya olusturup asagidaki satirlari icine yazip kaydettiginiz vakit tamamlanmis olacaktir.

[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

Repolarimizi ekledigimiz varsayarak ilerliyorum komut satirinda asagidaki yum komutunu uygulayin. LB icin php kisimlarini yazmayabilirsiniz. Fakat webler icin php yuklemelisiniz.

yum install nginx php php-fpm php-cli php-mysql php-pdo php-pear php-gd

bu komutla birlikte nginx ve php sistemimize kurulacaktir.

Kurulumlar tamamlandigina gore artik ayar islemlerine gecebiliriz.

Server listemizi hazirlayalim.

LB Ip: 10.1.1.1
Web1 Ip: 10.1.1.2
Web2 Ip: 10.1.1.3
Web3 Ip: 10.1.1.4 ( ayrica veritabani sunucusudur )

Ilk olarak Web 1, Web 2, Web 3 sunucumuzda php’yi yapilandiralim sirasiyla

/etc/php.ini dosyasini vim ya da nano ile acip date.timezone satirinin basindaki ; kaldirarak su sekilde degistirelim. date.timezone=”Europe/Istanbul”
cgi.fix_pathinfo degerini 0 yapalim.
Simdi nginx yapilandirmasina gecelim. Yine web sunucu olarak isaretledigimiz sunucularda /etc/nginx/conf.d/default.conf dosyasini acalim.

location / {
root /usr/share/nginx/html;
index  index.html index.htm;
}

yukaridaki index ile baslayan satira index.php ekleyelim yani asagidaki gibi olmasi gerekiyor

location / {
root /usr/share/nginx/html;
index  index.php index.html index.htm;
}

yine ayni dosya icindeki asagidaki satirlari bulup basindaki # leri silelim.

location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

bu sekilde duzenleyelim. SCRIPT_FILENAME kismini duzenlemeyi unutmayin :) root parametresinde web root dizinini belirtmeniz gerekiyor bunu da unutmayalim.

Nginx ayarlarini da yaptiktan sonra php-fpm yapilandirmasina gecebiliriz. vim ya da nano ile /etc/php-fpm.d/www.conf ile dosyayi acip

listen = 127.0.0.1:9000

olan satiri asagidaki satir ile degistirelim.

listen = /tmp/php5-fpm.sock

daha sonra kaydedip cikalim bunu yapmamizdaki amac php-fpm unix socket kullandigi icin TCP overhead olayindan kurtulmamizi saglar.

Tum ayarlari yaptiktan sonra web sunucularinda asagidaki

chkconfig --levels 235 nginx on
chkconfig --levels 235 php-fpm on

komutlari uygulayalim bunlar sunucular reboot edildiginde acilista otomatik baslayacaktir sonrasinda ise

service php-fpm start
service nginx start

komutlarini uygulayin. Son olarak web 3 sunucusuna da dilerseniz

yum install mysql

diyerek mysql veritabanini yukleyin.

Evet web sunuculari ile ayarlarimizin sonuna geldik. Simdi load balancer yapacak sunucumuzu yapilandirmaya. Load balancer sunucusuna sadece nginx kurmustuk.

Load balancer olacak sunucumuz da vim ya da nano ile /etc/nginx/conf.d/default.conf u aciniz ve server { ile baslayan satirin hemen ustune asagidaki satirlari ekleyiniz.

upstream lb_units {
server 10.1.1.2 weight=10 max_fails=3 fail_timeout=30s;
server 10.1.1.3 weight=10 max_fails=3 fail_timeout=30s;
server 10.1.1.4 backup max_fails=3 fail_timeout=30s;
}

daha sonra ayni dosya icinde biraz asagida

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

satirlarini bulacaksiniz bu satirlari asagidaki gibi degistirip kaydedip dosyadan cikiniz.

location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
proxy_pass http://lb_units; # Load balancing
}

ardindan

chkconfig --levels 235 nginx on

bu komutu uygulayalim ki load balancer sunucumuz da yeniden baslatildiginda nginx acilista otomatik baslasin.

asagidaki komutu uygulayarak nginx’i baslatalim.

service nginx start

test edelim hersey yolunda gittiyse sistemimiz calisacaktir.

dipnot: yazim hatalarim varsa kusura bakmayin


CENTOS VSFTPD KURULUMU VE CHROOT LİSTESİNİN AYARLANMASİ

Selamlar bugunlerde beni bir yazma hevesi sardi. Yine bugun ihtiyac geregi centos kurulu bir sunucuya ftp kurmam gerekti. bunu sizlerle de paylasayim istedim. vsftpd server uzaktan sizin sunucunuza ftp ile baglanilmasini saglayan bir aractir.

Hemen kuruluma gecelim. Centos uzerinden anlatacagim icin ben yum paket sistemi ile kuruyorum debian ve turevlerinde apt-get ile paket aratip kurabilirsiniz.

Oncelikle

yum install vsftpd

diyerek vsftpd kuruyoruz. Kurulum bittikten sonra /etc/vsftpd altina yapilandirma dosyalarini olusturmaktadir. Ardindan vim ya da nano ile

/etc/vsftpd/vsftpd.conf

dosyasini acalim ve dosya icindeki ayarlari asagidaki ile degistirelim.

anonymous_enable=NO
connect_from_port_20=NO
chroot_list_enable=YES (basindaki # kaldirin)
chroot_list_file=/etc/vsftpd/chroot_list (basindaki # kaldirin)

daha sonra kaydedip cikabilirsiniz. Simdi chroot listemiz icin yukarida belirtmis oldugumuz dosyayi olusturalim

touch /etc/vsftpd/chroot_list

buraya kadar bir problemle karsilasmadiysaniz eger simdi bir kullanici tanimlayalim.

adduser ysfkc
passwd ysfkc

dedikten sonra sifrenizi giriniz. Son olarak yeni kullanicimizi chroot_list icine yazmaliyiz ki sadece kendi dizini icine hapsolsun bir ust dizinlere goz atamasin vim ya da nano ile

/etc/vsftpd/chroot_list

dosyasini acip icine ysfkc ( siz kendi kullanici adinizi yazin ya da olusturdugunuz kullanici adlarini ) kaydedip cikiniz evet her şey tamam artik vsftpd yi baslatabiliriz.

chkconfig --levels 235 vsftpd on // reboot edildikten sonra otomatik baslar
service vsftpd start

evet vsftp de basladigina gore filezilla gibi bir client ile denemesini yapabilirsiniz gule gule kullaniniz.

Eger bunlara ragmen ftp ye baglanamiyor veya baglanip dosya olusturamiyorsaniz muhtemelen selinux aciktir asagidaki komutlari sirayla calistiriniz.

setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir 1


MAC OS X ŞİFRE RESETLEME

Selamlar bugun bir imac in sifresinin resetlenmesini istediler nasil yaparim derken bir kac secenek buldum. secenekler arasinda boot cd vs var ama bunlar heran yaninizda olmayabilir. Onun icin daha kisa bir yol buldum yazayim dedim hemen.

Oncelikle mac’nizi reboot edin sonrasinda ise command + s tusna basili tutun mac single user mod da acilacak ve komut satirina dusecektir. Komut satirina dustukten sonra sirayla asagidaki komutlari uygulayin

# fsck -fy
# mount -uw /
# rm /var/db/.applesetupdone
# reboot
Bu islemlerden sonra mac’iniz ilk kurulum sonrasi ayarlara donecektir yeni bir kullanici olusturduktan sonra sifresini unuttugunuz kullanicin system preferences dan degistirip yeni kullaniciyi silebilirsiniz.


Merhaba dünya!

WordPress’e hoş geldiniz. Bu sizin ilk yazınız. Bu yazıyı düzenleyin ya da silin. Sonra yazmaya başlayın!