Mar 302015
 
835 views

Python ile web sitesinden başlıkları çekmek

İkinci dersimizde urllib ve re paketlerini kullanarak http://hurriyet.com.tr adresinden ana başlıkları nasıl indirebileceğimizi anlatıyorum. Bunlar, veri madenciliği ile ilgilenmeyi düşünen yeni python programcıları için yararlı olabilir.

python dersleri 02

Yaklaşık 10 satırlık bir kodlama ile gazetenin ana sayfasındaki tüm başlıkları kolayca indirebiliyoruz.

Ayrıca, Türkçe karakterlerin düzgün görünmesi için kullanılan küçük bir fonksiyonu da kodlarımıza ekledik.

Urllib paketi internet sitelerine ulaşıp, oradaki html kodlarını indirebilmemizi sağlayan fonksiyonlara sahip. Re paketi ise, ulaştığımız html kodlarınını uygun bir şekilde filtre edebilmemizi sağlıyor.

İnternet sitelerine farklı paketler ve yöntemlerle ulaşmak mümkün olsa da, re paketini (regular expressions – düzenli ifadeler) en ince ayrıntılarıyla tanımakta büyük yarar var.

Eğer düzenli ifadelere yeterince hakim değilseniz, aşağıdaki kaynak çok işinize yarayabilir. Düzenli ifadeleri nasıl kullanacağınızı bu siteden oyun oynar gibi ve çok kısa bir sürede öğrenebilirsiniz:

http://regexone.com/

İkinci ders kodlarımızın bitmiş hali aşağıda yer alıyor. Videoyu kodları inceledikten sonra izlemek, daha verimli olabilir.

Bu kodları doğrudan çalıştırmanız da mümkündür:

Beni izlemeyi unutmayın!

ahmet aksoy

Şub 032015
 
664 views

MultiSite WordPress Kurulumu

Bu yazıyı standart wordpress kurulumu konusunda deneyimli kişiler için kaleme aldım. Elbette ilk denemede multisite wordpress kurulumu yapmak ta pekala mümkün. Ancak bir yerde takılınca, multisite ile ilgili yanıt bulmak epeyce sıkıntılı oluyor.

Öte yandan, standart wordpress siteler konusunda deneyimli olduğu halde, multisite konusunda en ufak bir bilgiye bile sahip olmayan çok sayıda webmaster var.

Aslına bakarsanız, multisite wordpress kurulumu, standart kurulumdan çok farklı bir yol izlemiyor. Sadece birkaç küçük ayrıntı var.

Subdomain ayarı: (eğer alt siteler subdomain olacaksa cPanelden aşağıdaki ayar yapılmalı.)

multisite wordpress subdomain

wp-config.php (aşağıdaki satırın wp-config.php dosyasına kurulumdan önce işlenmesi gerekiyor. Bu satır konmazsa, standart kurulum gerçekleşir.)

/* Multisite */
define( ‘WP_ALLOW_MULTISITE’, true );

Normal kurulumu yap.

Tools -> Network setup (Ayarlar -> Ağ ayarları):
Subdomain (alt alan) veya Subdirectory (alt dizin) olarak tanımla.

Ağ ayarları düzenlendiğinde wp-config.php dosyasına eklenmek üzere aşağıdaki satırlar oluşur.

define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, true);
define(‘DOMAIN_CURRENT_SITE’, ‘mydomain.com’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);

(Yukarıdaki satırlarda yer alan mydomain.com yerine kendi alan adınızı yazmalısınız. Alt sitelerinizin xyz.mydomain.com şeklinde çağrılmasını istiyorsanız,

define(‘SUBDOMAIN_INSTALL’, true);

eğer alt sitelerinizin www.mydomain.com/xyz şeklinde çağrılmasını istiyorsanız

define(‘SUBDOMAIN_INSTALL’, false);

satırlarını kullanmanız gerekir.

Son olarak, .htaccess dosyasına eklenmesi gereken temel satırlar şunlar olmalıdır:
.htaccess dosyası:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2[L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress

İşte hepsi bu kadar!..

Temel adımları yeniden özetleyecek olursak:
1. Wp-config.php dosyasına define( ‘WP_ALLOW_MULTISITE’, true );
satırını ekle
2. Ağ ayarları (Network setup) seçeneklerini düzenle
3. “Subdomain” veya “sub directory” yöntemini seç
4. Ağ adı (network name) bilgisini gir
5. Yönetici (admin) eposta adresini tanımla
6. wp-config.php dosyasını verilen kodlara göre düzenle
7. .htaccess dosyasına verilen kodları ekle
8. Siteye yeniden giriş yap

Multisite sistemi tarafından veritabanına eklenen tablolar şunlardır:
• wp_blogs
• wp_blog_versions
• wp_registration_log
• wp_signups
• wp_site
• wp_sitemeta

Ana site tabloları standart tabloların aynısıdır.

Yavru sitelere ait tablolar ise yavru site için verilen blog numarası eklenerek oluşturulur. İçerikler standart tabloların aynısıdır.

Yazımın başında da belirttiğim gibi, wordpress sistemini zaten tanıyor olduğunuzu varsaydım. Bu nedenle bir çok ayrıntıyı burada tekrar vurgulamaya gerek duymadım.

Eğer tek başınıza çok sayıda siteyi yönetmek gibi bir amacınız varsa, multisite wordpress sistemi sizin için güzel bir çözüm sağlayabilir. Ama bu sistemden mucizeler yaratmasını da beklemeyin!

Sorularınızı veya değerlendirmelerinizi yorumlar bölümünden bana iletebilirsiniz.

Ahmet Aksoy

Türkçe kaynaklar:
http://rooteto.com/wordpress/multisite
http://wpnotlari.com/wordpress-multi-site-kurulumu/
http://bimedya.com/multisite-kurulumu-ve-ayarlari

Yabancı kaynaklar:
http://www.wpbeginner.com/wp-tutorials/how-to-install-and-setup-wordpress-multisite-network/
http://www.elegantthemes.com/blog/resources/the-complete-guide-to-creating-a-wordpress-multisite-installation
http://mashable.com/2012/07/26/beginner-guide-wordpress-multisite/

Oca 212015
 
745 views

Bir Alexa Rank Macerası

Web sitelerimden birinin faaliyete geçişi aslına bakarsanız oldukça eskilere uzanıyor. Eski siteler de genellikle değerlendirmede yenilere kıyasla fazladan puan alırlar.

Hal böyleyken benim Alexa puanım düşmek bir yana, tersine sürekli yükseliyordu ve son birkaç gün içinde 14 milyonu geçmiş durumdaydı (14,875,990-17.01.2015). Berbat bir sonuç yani!..

Bu web sitemin (http://www.axtelsoft.com) nasıl işlediğini anlatayım biraz.

WordPress kullanıyorum. Multisite, yani tek alan adı (domain) üzerinden çok sayıda bağımsız site çalışıyor.

Google çalışmalarının içerik değerlendirmesine yönelmesi nedeniyle ben de ana siteyi askıya almış, alt siteleri de konularına göre özelleştirmeye başlamıştım.

Site analizleri, SEO düzenlemeleri… Elimden ne geliyorsa yaptım ama, bunların “Alexa Rank” üzerinde neredeyse hiçbir olumlu katkısı olmadı.

Alexa, alt alan (subdomain) üzerinde çalışan siteleri bağımsız olarak değerlendirmiyor. Temel değerlendirmeleri hep ana alan adı üzerinden yapıyor.

Sonunda farkettim ki, ben alt alan (subdomain) sitelerimde ne yaparsam yapayım, alexa gidip sadece ana alan hesabımı kontrol ediyor. Alt alanlara hiç bakmıyor bile.

Hal böyle olunca, ana alan (http://www.axtelsoft.com) sitemde uzun zamandır hiçbir değişiklik olmadığından alexa değerinin serbest uçuşa geçmesini kavramak kolaylaşıyor.

Ana sitede yayınladığım son yazının tarihi 25 Kasım 2012. Neredeyse milattan önce!…
Durum tespitini bu şekilde yapınca, çözüm için ne yapılması gerektiği de çok açık.

Ben de hemen oturdum ve bir yazı hazırlayıp yayınladım. Yeni yazımın tarihi 18 Ocak 2015. 3 gün öncesi.

Ve bu sabaha ait alexa değerlendirmesi şekildeki gibi:

alexa rank

Değişim olumlu yönde %38.7…

Şimdi bu durumdan şöyle bir ders çıkarmak lazım: WordPress multisite sistemi günümüz değerlendirme sistemleriyle pek fazla örtüşmüyor. Aynı düzeyde olmasa bile Google değerlendirmelerinde de benzer sıkıntılar mevcut.

Eğer siz de wordpress multisite bir siteler grubu işletiyorsanız, ana siteyi kesinlikle ihmal etmeyin. En azından orayı alt sitelerinizin bir endeksi olarak kullanabilir, yazı özetleri yayınlayabilirsiniz. Ana sitenizin hareketliliği arttıkça sonucun alexa değerlendirmelerine hemen yansıdığınızı göreceksiniz.

Alexa Rank sisteminde çalışmalarımın sonucunu görebilmek için ne gibi işlemler yaptığımı şöyle özetleyebilirim:
1- Yeni yazılar yayınlamaya başladım
2- Chrome için “alexa toolbar” indirip kurdum
3- Axtelsoft.com sitesi için www.alexa.com adresinden bir “Alexa Verification ID” aldım ve sitemi alexa’ya yeniden tanıttım.

Yaptığım şeyler sadece bunlar ve birkaç gün içinde etkisini belirgin bir şekilde görmek mümkün oldu.

Eğer sizin de alexa değerlendirmesiyle ilgili sıkıntılarınız varsa, benim kullandığım yöntem işinize yarayabilir.

ahmet aksoy

24.01.2015 tarihi itibariyle Alexa Rank değeri 7,746,673 oldu. Gayet güzel bir gelişme. Bir hafta içinde neredeyse yarıya düştü.

Alexa Rank

Oca 122015
 
627 views

Web Sitelerinin Güvenliği İçin Kali Linux

kali

Güvenlik, diğer alanlarda olduğu gibi, web siteleri için de önemli.

Kolayca alınabilecek önlemleri zamanında almamak, sonradan önemli zaman kayıplarına, emeğin boşa harcananmasına neden olabilir. Bu kayıplar bazan donanımsal veya kullanım hatasına bağlı kayıplar olabilir. Bazan da meraklı veya art niyetli kimi insanların farklı nedenlere bağlı girişimlerine…

Nedeni ne olursa olsun, risklerin varlığı, gelişimin itici motorlarından biridir. Önlem almak zorunda kalmadığımız alanlarda, yapılan çalışmaların geliştirilmesini sağlayan motivasyon ortadan kalkar. Gelişme durur. Gelişmenin durması ise çöküşün başlangıcıdır.

Elbette “Mükemmel Güvenlik” diye bir şey yoktur.

Bir yerde bir kilit varsa, onu açacak anahtar da mutlaka bulunur. Bunu unutmamak lazım. Buna karşın, “ne yaparsak yapalım, nasıl olsa onu aşacak birileri çıkacaktır” anlayışı da doğru değil. O zaman da yılgınlığa ve sonunda eylemsizliğe mahkum oluruz. Önemli olan, mevcut şartlarda alabileceğimiz önlemlerin en iyilerini almaktır. Sağlığımızı korumak nasıl ki hasta olmayı bekleyerek sağlanamazsa, web çalışmaları için de aynı mekanizmalar geçerlidir.

Web sitelerinin güvenliğini sağlarken dikkat edilmesi gereken noktalar bellidir. Buna rağmen, gözden kaçan zayıf noktalar da olabilir.

İşte bu noktaların “önlem” amacıyla “önceden” tespit edilmesi için yapılan tüm girişimler büyük bir önem taşır.

Kali Linux, elektronik iletişim denetimi amacıyla geliştirilmiş bir araçtır. Onu bir alet çantasına benzetebiliriz. Bu çantanın içinde elektronik iletişim sektörünün hemen her alanına ilişkin çeşitli araç-gereçler bulunur.

Benim en çok ilgimi çekenler web sitelerinin güvenliği ile ilgili olanlar.

Örneğin, sistem zayıflıklarını tespit eden programlar.
Ya da parola yapılarını denetleyenler.
Dikkatsizlik yüzünden silinmesi unutulmuş ve içinde kritik bilgiler bulunan dosyalar…

Önümüzdeki dönemde bu alanda yapmakta olduğum çalışmalardan bazı örnekler verecek ve deneyimlerimi sizlerle paylaşmaya çalışacağım.

İlk çalışmalarım özellikle “wordpress” kullanan sitelerle ilgili olacak. Daha sonra fırsat oldukça başka konulara da gireceğim.

Eğer siz de bir wordpress yöneticisi iseniz ve hele henüz öğrenme dönemindeyseniz, beni izlemenizi öneriyorum. Bu sitede yazdıklarımı mutlaka takip edin. Ayrıca WebKurnaz.net forumuna üye olun. Orada bu çalışmalarla ilgili çok güzel paylaşımlarımız olacak. Sorunlarınız ve sorularınızı bize yazabilirsiniz. Önerilerinizi, projelerinizi bizimle paylaşabilirsiniz.

Amacınız ister güvenli bir web sitesine sahip olmak, isterse web güvenliği konusunda uzmanlaşmak olsun; birlikte yapabileceğimiz pek çok şey bulabiliriz.

Bir sonraki yazımda Kali Linux kurulumunu ele alacağım.
Bu arada siz de http://hackertarget.com/wordpress-security-scan/ adresinden kendi sitenizle ilgili ön testleri yapabilirsiniz.

Unutmayın! Bilgi, paylaştıkça büyüyor.

ahmet aksoy

Oca 122015
 
587 views

WordPress Siteleri İçin Ücretsiz Güvenlik Taraması

Bir kaç haftadır Webkurnaz.net Forumunda WordPress konusunda moderatörlük yapmaya başladım.

Bu forumda WordPress konusla ilgili bilgilendirmeler yapıyor, soruları yanıtlamaya, bilgilerimizi paylaşmaya çalışıyoruz.

Ziyaretçi sayımızı arttırmak için son günlerde yeni kampanyalar başlattık.

Bu kampanyalardan birisi de WordPress sitelerinin güvenliği ile ilgili.

Bu kampanya döneminde, foruma üye olup WordPress bölümünde en az 2 mesaj yayınlayan wordpress kullanıcılarının web sitelerini ücretsiz güvenlik taramasından geçiriyor ve elde ettiğimiz sonuç raporunu özel olarak kendilerine iletiyoruz.

Eğer siz de bir WordPress sitesi işletiyorsanız, forumumuza sizi de bekleriz. Bir göz atmanız yeter!..

webkurnaz
Webkurnaz Forum

ahmet aksoy

Ara 282014
 
553 views

WordPress Yetkili Kullanıcılarına Reklam Göstermemek

google adsenseAdsense, insanların kendi sayfalarındaki reklamlara tıklamasını banlama nedeni sayıyor. Haklı elbet!

Ben de wordpress sayfalarımda Adsense reklamları kullanıyorum. Düne kadar, bu reklamlara tıklamamaya hep özen gösterdim. Zaten çoğu ilgimi çekmeyen reklamlardı.
Ancak -özellikle son bir aydır- bu konuda sıkıntı yaşamaya başladım. Çünkü bu son dönemde kendi sayfalarımda, benim ilgimi çeken reklamlar da yayınlanmaya başladı. Örneğin hosting konusunda bir internet araştırması yapıyorum; sonra bir bakıyorum kendi sayfalarımdaki reklamların konusu birdenbire hosting ağırlıklı hale gelmiş. Reklamı tıklamamak için kendimi zor tutuyorum. Üstelik, reklamdaki firmaların pek çoğunun erişim bilgilerine reklam üzerinden ulaşmak mümkün olmuyor. Bazılarında reklamı veren firmanın adı bile yok!…

Bana kalırsa, Google bu konuda bir ayrıntıyı atlamaya başladı, ya da bunu önemli bir sorun olarak görmüyor. Ama bana kalırsa, bu, oldukça önemli bir sorun. Adsense isterse, yetkili kullanıcılara onları doğrudan ilgilendirecek reklamlar göstermeyi engelleyebilir.

İşte bu nedenle ben de kendi sorunumu kendim halletmek istedim.

Yazıların içinde yayınlanan reklamlar için eklenti (plugin) kullanıyorum. Kullandığım eklentide “sisteme giriş yapanların açtığı sayfalarda reklam gösterimemesini sağlamak” için bir seçenek var. Onu işaretledim ve kendi sayfalarımda yayınladığım yazıların içindeki reklamlar bana görünmez hale geldi. Eğer sistemde çıkar ve yetkisiz biri olarak sayfayı açarsam, reklamlar tekrar görünür hale geliyor.

Sorunumun bu aşamasını çözmek kolay oldu.

Ancak bir de yan panelde metin kutusu içinde kendi tanımladığım reklamlar var. Bunları manuel olarak eklediğim için, Adsense plugin buraya müdahale edemiyor.

Bunun çözümü de kolay aslında. Basit bir PHP testi ile kullanıcılın yetkili girişi yapıp yapmadığını kontrol et; yetkili ise reklamı gösterme, yetkisiz ise göster.

Ancak, bileşen (widget) bölümlerinde PHP komutları işe yaramıyor. Daha doğrusu, normal kodlar gibi davranmıyor.

Bu durumu bile bile bir deneme yaptım:

reklam göstermemek

Pek umudum olmasa da kod çalıştı. Yetkili kullanıcı olarak sisteme giriş yaptığımda reklam alanı boş olarak görünüyor. Normal bir ziyaretçi gibi aynı sayfayı açtığımda ise reklamı görebiliyorum.

Ancak küçük bir sorun var. Çünkü yukarıdaki kodu metin kutusunun içine eklediğimde, reklam ister gösterilsin, ister gösterilmesin en sondaki “tırnak” karakteri ve sonraki karakterler metin kutusunun son tarafında yayınlanıyor. İşlevsel bir sorun yok ama, “sinek-mide bulantısı” meselesini unutmamak lazım.

Bu minik soruna bulduğum çözüm ise biraz mantık dışı: Tırnak işareti ve sonrasındaki karakterleri silmek.

Normal koşullarda burada bir sürü yazım hatası oluşması gerekirken, hiçbir sorun görünmüyor ve kod da olması gibi çalışıyor.

Umulmadık bir zamanda bir başka soruna yol açmamasını umuyorum.

ahmet aksoy