Mysqldump ile Yedek Almak

Birçok kontrol paneli üzerinde mysql yedeğinizi alabilmeniz için gerekli araçlar bulunmaktadır ve mysql yedeği almak oldukça basittir.Bu yazımızda mysql yedeğinimizi komut ile nasıl alırız bunun hakkında sizlere bilgi vereceğiz.

cPanel’de mysql veri tabanları /var/lib/mysql dizini içerisinde bulunmaktadır.Herhangi bir sitenin yedeğini alabilmek için öncelikle bu dizine giriş yapmanız gerekir.Öncelikle aşağıdaki komutlar ile veri tabanlarının bulunduğu dizine giriş yapıyoruz.

Komut ile mysql yedeği alabilmek için sunucunun mysql şifresine ihtiyacınız olacaktır.Bu şifreyi de aşağıdaki komut ile ekrana basıyoruz.

Şifremizi ekrana bastıktan sonra artık mysql yedeğimizi alabiliriz.Bu işlem için aşağıdaki komutu uygulamanız gerekir.

Komutu çalıştırdığınızda sizden şifre isteyecektir.Ekrana basmış olduğumuz mysql şifresini kopyalayıp yapıştırdıktan sonra Enter tuşu ile onay veriyoruz.Onay verdikten sonra işlem yapmaya başlayacaktır ve komut satırı pasif hale gelecektir.Mysql yedeği aldıktan sonra tekrar komut satırı aktif olacaktır.İşlem tamamlandıktan sonra tekrar ll komutu ile içerikleri listeleyebilir ve yedek.sql olarak almış olduğunuz yedeği görebilirsiniz.

Yedek Restore Etmek

Elinizde daha önce alınan bir mysql yedeği var ise ve bu mysql yedeğini import etmek istiyorsanız aşağıdaki komutları kullanmanız gerekir.Yedek restore işlemi sırasında da sunucu mysql şifresi gerektiği için yine öncelikle şifremizi ekrana basıp daha sonra işlem yapıyoruz.

Komutu uyguladıktan sonra yine şifremizi girip Enter tuşu ile onaylıyoruz ve işlemin bitmesini bekliyoruz.İşlem tamamlandıktan sonra veri tabanı import edilmiş olacaktır.

SSH Üzerinden Database Onarma (MySQL Repair)

Büyük boyutlu MySQL veritabanı dosyalarında phpMyAdmin yada kontrol paneli üzerinden yapılan onarma işlemleri tamamlanmıyor yada sorunlar çıkartıyor. Bu nedenle boyutu büyük olan MySQL veritabanınızı Linux sunucularda SSH üzerinden onarma yapmak daha sağlıklıdır.

Bunun için SSH bağlantısı yapın ve superuser (root) olduğunuzdan emin olun. Alttaki komutu komut satırına yazın.

mysqlcheck veritabanı kontrol etmek için kullanılan komuttur. -r parametresi ise Repair (onarma) işlemi yapar.

Eğer yukarıdaki komut işe yaramaz ise Linux komut satırı üzerinden direk MySQL dosyalarının bulunduğu klasörü yazarak işlem yapabilirsiniz.

Not: MySQL onarma işlemini yapmadan önce sunucu disk alanının yeterli olduğuna emin olun.

Linux sunucularda Memory kullanımını görüntüleme

Sunucu yönetimine yeni başlayanların genellikle sıkıntı duyduğu konulardan biri Linux sunuculardaki memory kullanımıdır.  Eklediğimiz bu makalede linux sunucularınızdaki memory kullanımı hakkında daha net bilgilere sahip olabileceğinizi düşünüyoruz.

Memory kullanımını görüntülemek için kullanmanız gereken komut free komutudur. Bu komutu yazdığınızda terminal çıktısı alt kısımdaki gibi olacaktır.

Komutun çıktısında ki değerleri daha okunaklı görmek için bazı özel parametreleri kullanabilirsiniz. Bunlardan en sık tercih edilen parametre free -m parametresidir. Daha fazla parametre için man free yazarak free komutunun tüm parametrelerine ulaşabilirsiniz. free -m parametresinin çıktısı alt kısımdaki gibidir, değerler bu komutta megabyte olarak verilir.

Genellikle memory kullanımını görüntülemek ve değerlendirmekteki hata şudur, çıktıda yer alan Mem: alanının Used tablosunu aktif memory kullanımı olarak değerlendirirler, ancak gerçekte aktif memory kullanımı used kısmında yer alan değer değildir. Linux çekirdeği sistemdeki memory kullanımını en optimal seviyede kullanmaya çalışır ve memory de tutulan bilgileri gerek gördüğünde hazır tutmak üzere saklar. Bu nedenle Mem: kısmı hem aktif kullanılan bellek miktarını hemde gerekdiğinde silinebilen ram üzerinde cache edilmiş önbellek miktarını göstermektedir.

Bu nedenlerden dolayı free komutunun 2 satırında bulunan kısım, disk üzerindeki önbellek dışında kalan gerçek kullanımı gösterir.

Gerçekte sistemde kullandığınız bellek miktarı -/+ buffers/cache: sütununda yazan used kısmıdır.

Son olarak free -m çıktısında yer alan Swap: işlevi hakkında sizleri bilgilendireceğiz. Swap, fiziksel bellek miktarının tamamen tükendiği durumlarda işletim sisteminin kararsız hale gelmemesi için başvurduğu sanal bellek miktarıdır. Bu sanal bellek sunucunuzdaki sabit diskler üzerinde çalışır. Bunu kesinlikle önbellek ile karıştırmayın, eğer bir sunucu swap bellek kullanmaya başladıysa oldukça yavaş çalışmaya başlar. Sunucunuzda herhangi bir şekilde Swap: satırının used kısmında kullanım mevcut ise, belirli bir noktada fiziksel bellek miktarınız yetersiz kalmış ve Linux swap bellek miktarına başvurmuş diyebiliriz. (Bazı uygulamaların çalışma mantığı bu konuda farklıdır. Swap bellek miktarını öncelikli olarak kullanabilir.)

Swap kullanmaya başladığınızda sunucunuzun load değerleri artar, swap bellekte kalan verilere erişimin gerçek fiziksel bellek hızından çok daha düşük bir hızda eriştiğinden performans ile ilgili ciddi sıkıntılar yaratabilir. Swap belleğin boşaltılması için alt kısımdaki komutları uygulayabilirsiniz.

Memory kullanımı hakkında sormak istediğiniz sorularınızı yorum bölümünden bizlere iletebilirsiniz.

WordPress Şifresini phpMyAdmin Üzerinden Değiştirme

WordPress Şifresini phpMyAdmin Üzerinden Değiştirme

WordPress içerik yönetim yazılımında en çok karşılaşılan durumlardan birisi kullanıcı giriş şifresinin unutulmasıdır.

Normalde WordPress üzerindeki kullanıcı profilinizde bir mail adresi girdiyseniz, şifremi unuttum diyerek mail ile şifre sıfırlama yapabiliyorsunuz.

Ancak sunucuda php mail() fonksiyonu kapalı ise ve smtp mail kullanmıyorsanız aşağıdaki gibi bir uyarı alırsınız.

wordpress şifre mail

Bu gibi bir durumda phpMyAdmin üzerinden admin giriş şifresini değiştirebilirsiniz.

Öncelikle phpmyadmine giriş yapıyoruz ve buradan şifresini sıfırlayacağımız wordpress sitemizin kullandığını veri tabanını seçiyoruz.

Veri tabanı içerisinde wp_users tablosu içerisine giriyoruz.

user_pass tablousnda işlem yapacağız. Bu tablo içerisinde giriş şifresi MD5 formatında tutulur. Bu nedenle yeni şifremizi de MD5 olarak girmemiz gerekiyor.

Yeni şifrenizi bu adresten md5 olarak oluşturun.

Örnek 12345 şifresi için çıktı 827ccb0eea8a706c4c34a16891f84e7b gibi görünecektir. Bunu kopyalayıp user_pass tablosu içerisine yapıştırın.

Artık şifre olan 12345 ile wordpress yönetim paneline giriş yapabilirsiniz. Eğer yeni şifrenizi basit yaptıysanız panele giriş yaptıktan sonra tekrar değiştirmeyi unutmayın.

Php ile Smtp Mail Göndermek

Bir çok Hosting firmasında olduğu gibi bizim firmamızda da php mail() fonksiyonu kapalı durumdadır. Bu fonksiyonun kapalı tutulmasının nedeni, php mail() fonksiyonunda hiçbir doğrulama olmadan direk olarak mail gönderilebilmesidir. Bu da mailin direkt olarak spam olarak algılanıp gereksiz kutusuna düşmesine neden olur. Fazla gönderimlerde de sunucu ip adresi karalisteye girer.

Şimdi Php üzerinden Smtp bağlantısı yaparak nasıl mail gönderilir göreceğiz. Bunun için PHPMailer kütüphanesini kullanacağız.

PHPMailer kütüphanesini buradan indirebilirsiniz.

class.phpmailer.php, class.smtp.php ve class.pop3.php dosyalarını mail formumuz ile aynı dizine atıyoruz.

Mail formumuzun kodları:

IsSMTP();
$mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl'; // Güvenli baglanti icin ssl normal baglanti icin tls
$mail->Host = "mail.siteismi.com"; // Mail sunucusuna ismi
$mail->Port = 465; // Gucenli baglanti icin 465 Normal baglanti icin 587
$mail->IsHTML(true);
$mail->SetLanguage("tr", "phpmailer/language");
$mail->CharSet ="utf-8";
$mail->Username = "isim@siteismi.com"; // Mail adresimizin kullanicı adi
$mail->Password = "PASSWORD"; // Mail adresimizin sifresi
$mail->SetFrom("isim@siteismi.com", "Isim"); // Mail attigimizda gorulecek ismimiz
$mail->AddAddress("bilisim34@msn.com"); // Maili gonderecegimiz kisi yani alici
$mail->Subject = "Mesaj Basligi"; // Konu basligi
$mail->Body = "Mesaj icerigi"; // Mailin icerigi
if(!$mail->Send()){
echo "Mailer Error: ".$mail->ErrorInfo;
} else {
echo "Mesaj gonderildi";
}
?>

Doldurulması gereken kısımları kodların arkasında yazdım.

Şimdi ücretsiz mail hizmeti veren Gmail ve Yandex için gereken ayarları görelim.

Yandex Smtp Ayarları:

$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.yandex.com';
$mail->Port = 587;

Hazır Scriptler İçin Smtp Mail Ayarları:

Gelelim hazır yazılımlar için Smtp ayarlarının nasıl yapılması gerektiğine. Hazır yazılımların bazılarında PHPMailer kütüphanesini bulunur ve arkada çalışır. Admin arayüzünden bu ayarlar yapılır. Örnek olarak bazı yazılımlardaki ayarları aşağıda iletiyorum.

WordPress için WP Mail SMTP eklentisini kurmamız gerekiyor. Ayarlar > Email bölümünden aşağıdaki ayarları uygulayınız. From Email: isim@siteismi.com From Name: İsim Mailer: Send all WordPress emails via SMTP. SMTP Host: localhost SMTP Port: 465 Encryption: Use SSL encryption. Authentication: Yes: Use SMTP authentication. Username: isim@siteismi.com Password: mailsifresi

vBulletin İçin Smtp Ayarları: vBulletin Seçenekler > E-Mail ayarları Buradan Emailleri SMTP-Serveri aracılığı ile gönder seçiyoruz

SMTP-Serveri: mail.siteadresiniz.com SMTP Portu: 465 SMTP Kullanıcı Adı: isim@siteismi.com SMTP Şifresi: Email adresinizin şifresi SMTP-Serverine garantili bağlanma: SSL

SMF İçin Smtp Ayarları: Ayarlara ulaşabilmek için Yönetim Masası > Bakim > E=Posta kısmına giriyoruz. E-Posta türü: SMTP SMTP sunucusu: ssl://localhost yada ssl://mail.siteadresiniz.com SMTP bağlantı noktası: 465 SMTP kullanıcı adı: isim@siteismi.com SMTP şifresi: Email adresinizin şifresi

OpenCart İçin Smtp Ayarları: Ayarlara ulaşabilmek için System > Settings > Mail kısmına giriyoruz. Mail Protocol: SMTP SMTP Host: ssl://localhost yada ssl://mail.siteadresiniz.com SMTP Username: isim@siteismi.com SMTP Password: Email adresinizin şifresi SMTP Port: 465

Diğer yazılımlar için de aynı ayarları yaparak Smtp ile mail gönderimi yapabilirsiniz.

PHP Bot Yapımı – Uzak Siteden Veri Çekmek

Php ile bot yazarken iki yöntem kullanılır bunlardan biri file_get_contents() yöntemi, bir diğeri ise Php CURL yöntemidir. İlk yöntem local ortamda çalışır ancak bazen sunucuya attığınızda çalışmayabilir o yuzden en sağlıklı yöntem CURL yöntemidir. Bu makalede CURL ile php bot nasıl yazılır ? bundan bahsetmek istiyorum.

Php ile bot yazmak nedir, neden ve nerelerde kullanırız bundan bahsedelim biraz; sitenizde kullanmak istediğiniz bir veriyi başka bir siteden, sayfadan dinamik olarak çekebiliriz. Örneğin film sitelerinin birçoğo bu iş için kendi veri tabanını kullanmaz ve başka bir siteden kaynak alarak sayfasını doldurur ve bu işlem sadece metin türü veriler için değil resim dosyalarına varana kadar çekebilirsiniz.

Şimdi CURL yöntemiyle php bot nasıl yazılır buna bakalım.

Öncelikle kendimize Curl fonksiyonu oluşturalım.

Eğer bir post verisi gönderecekseniz 2. parametreyi “kullanici=bilisim34&sifre=123456” şeklinde kullanmanız gerekecek.

Örneğin :

Bu örnek kullanımda kendi sitemizin paneline giriş yapmak için kullanıcı adı ve şifremizi postlamış olduk. Doğru bilgileri yazdığımızda curl fonksiyonu sayesinde PHP üzerinden panelimize de ulaşabiliriz.

PHP botu ile belirli içerikleri alma

Sitelerin içeriklerine direkt olarak ulaştıktan sonra istediğimiz kısımdaki değeri ve içeriği almak için öncelikle bir ara belirlemeliyiz. Sitenin kaynak kodunu inceleyip ayırt edici bir aralık bulmalıyız.

Ben örnek bir içerik sunacağım, ve bu örnek içerikten istediğimiz kısmı alacağız. Metereoloji sitesinin İstanbul için verdiği sonuçların bulunduğu kısmın kaynak kodu aşağıdaki gibi:

Çok karışık bir kaynak kodu gibi görünüyor ama aslında tam bizim aradığımız gibi bir sonuç. Farkettiyseniz tüm değerler ayırt edilebilecek belli bazı elementlerin arasında. Örneğin tarih class=”sond_zaman”> ile </td> arasında.

Bir içerikte istediğimiz aralığı almak için yine curl gibi hazır bir fonksiyon kullanacağız. Bu fonksiyonu kopyala-yapıştır yaparak sizde kullanabilirsiniz.

Bu parcala_ve_al  fonksiyonuda basit bir şekilde aralık içerisindeki değeri bize verir. Kullanımı için 3 parametre vardır. İlk parametre aralığın başı, ikinci parametre aralığın sonu, üçüncü parametre ise araştırılacak içerik.

Bu örnekte sitemizin kaynak kodlarına ulaşıp <title>…</title> arasını yani sitemizin başlığını almış olduk ve ekrana yazdırdık. Değerin yüklendiği değişkene [0] dememizin sebebi ilk yakalanan aralığı almamız. Eğer benzer aralıklardan daha fazla var ise onlarıda dizinin diğer elemanları olarak ekleyecektir. Örneğin birden fazla title aralığı olsaydı diğer sonuçlarda [1], [2] şeklinde diğer dizilere sıralanacaktı.

Gelelim bu fonksiyonu bahsettiğimiz meteroloji sitesinde uygulamaya:

Sitede alt ve üst sıcaklıkların bulunduğu değerlerin aralığını bulup ara fonksiyonumuz sayesinde aralığı alıp ekrana yazdırdık. Sonuç olarak ekranda İstanbul da 11 Kasım Çarşamba için tahmini sıcaklık:16,5°C  şeklinde bir çıktı alacağız.

Kısaca bot içerik alma mantığı sitelerdeki içeriklerin ayırt edici aralıklarını bulup o kısmı almaya dayanmaktadır. Bunların dışında hayal gücünüzü kullanarak daha bir çok mantık üretebilir ve her türlü içeriğe ulaşıp dilediğiniz botları kodlayabilirsiniz.

PHP ile gerçek ip adresini almak

Aşağıdaki basit fonksiyonu projelerinize dahil ederek kullanıcının gerçek ip adresini alabilirsiniz .

Sürekli kullandığım fonksiyonlardan biridir.

 

 

Smarty içerisinde ezSql sınıfı kullanımı

önceki yazılarda smarty ve ezSql ile alakalı bilgiler verip nasıl kurulduğunu ve kullanım örneklerini yaptık . Bu yazımda ise smarty tema moturu içerisinde ezSql veritabanı sınıfının nasıl kullanılacağına bakacağız .

Smarty Nedir ?

Smarty Kurulumu Nasıl Gerçekleştirilir ?

ezSql nedir ?

 

Önceki yazılarımda smarty ve ezSql classlarını ayrı ayrı anlattığım için kurulumu yapacağınızı varsayıyorum .

 

PHP smarty kurulumu

Önceki yazımda smarty framework’ün ne olduğunu açıklamıştım . Bu yazımda ise smarty framework kurulumu ve ilk örneğimizi yapacağız .

Buradaki linkten smarty framework son sürümünü indirelim ve zip içerisinden web sunucumuza yada localhosta sadece libs klasörünü çıkartalım .

Ardından aşağıdaki gibi klasör ve dosya yapımızı oluşturalım .

cache
config
libs
templates
templates_c
index.php

Uyarı : Templates ve cache klasörleri yazma iznine sahip olmalıdır .

Ardından index.php sayfamızı açalım ve kodumuzu yazalım

 

Tema dosyamızı oluşturmamız gerekiyor . Bunun için templates klasörü altına index.tpl isimli bir dosya oluşturalım ve içerisine html ve smarty kodumuzu yazalım

Smarty ile ilk örneğimiz bu şekildedir . Kısaca açıklamak gerekirse ;

index.php dosyamızda smarty template ve cache klasörleri yollarını belirledir .
Ardından merhaba_dunya adında bir değişken tanımladık ve bu değişkene Merhaba Dünya yazısını atadık .
display fonksiyonu ile de değişkenimizi templates/index.tpl dosyamıza gönderdik . İlk örneğimiz burada son buldu .

Bundan sonraki yazımda php smarty ile veritabanı işlemlerine gözatacağız .

PHP smarty framework nedir ?

PHP ile kullanabileceğimiz birçok framework mevcuttur . Bir çoğu MVC mimarisine sahip framework’ lerdir . MVC ( model – view – controller ) mimarisi yazılımı html taglarını ve veritabanı işlemleri birbirinden ayıran yapıya sahiptir . Smarty ise sadece yazılımı html taglarından ayıran yapıdadır . Bu tip yapılara sahip framework’ lere tamplate engine denir .

MVC yapısına ait resmi aşağıda inceleyebilirsiniz .

mvc

Smarty açık kaynak kodlu php template motorudur . Ön tanımlı olarak hemen hemen tüm php hazır sistem fonksiyonlarını içerisinde barındırır . Öne çıkan birkaç özelliğini aşağıdaki gibi sıralayabiliriz .

  • Control flow, foreach
  • if, elseif, else gibi koşullu ifadeleri kullanabilme
  • Değişken oluşturabilme ve özelleştirme – Örnek {$variable|nl2br}
  • Hazır fonksiyonlar – Örnekler {html_select_date start_year=’-5′ end_year=’+5′}
  • Fonksiyonları kendi düzenleyecileri ile oluşturabilme imkanı / fonksiyonlar / çıkış filtreleri
  • Sayfaları önbelleğe alabilme

Sayfa önbellekleme yani cache özelliği kullanışlı ve kolaydır . Küçük bir kod ile kolayca cache özelliğini aktif edebiliriz .

Smarty yapısına ait kod aşağıdaki gibidir .
define('SMARTY_DIR', 'smarty-2.6.22/' );
require_once(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates/compile/';
$smarty->assign('title_text', 'TITLE: Smarty için basit bir örnek ...');
$smarty->assign('body_html', 'BODY: Bu mesaj assign() fonksiyonu kullanarak ayarlanmaktadır');
$smarty->display('index.tpl');

HTML yapısında kullanımı :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">

<html>
<head>
   <title>{$title_text|escape}</title>
   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
 
<body> {* Sayfada görünmeyen HTML yorumu *}
 
{$body_html}
 
</body>

</html>