Ve Botlar Beni Deli Ederken

Şu sırala ve bot davranışı sergileyen iplerin banlanması üstüne uğraşıyorum.

Yazılımını yaptığım bir haber sitesi var. İlk başlarda %15 civarı olan bot trafiği şu an yüzde 55 düzeyine yükselmiş durumda. Bunu engellemek için farklı şeyler denedim.

İlk önce Apache Bad Blocker kurduk ve verimsizlik yaşadık. Çünkü eklentinin doğasında olan RequireAny değerini gördüğü anda Apache İp adreslerini DNS ile çözümleyip doğrulamaya başlıyordu. Özellikle Uydu Net üstünden gelen isteklerde çözümleme işlemi 15 saniye kadar uzun sürmesi sebebiyle aşırı şikayet oluşmuştu. Eklentinin bu kısmını kullanmaktan vazgeçtik. Eklentinin Mod Rewrite versiyonunu özelleştirip, referans kısmı olmadan kullanmaya başladık.

Buna rağmen şöyle bir durum oluştu, Cpanel üstünden İp engellediğimiz anda Apache yeniden kasılmaya ve gelen her isteği DNS sorgusuna sokmaya başlıyordu. Cpanel üstünden Ip engellemeye son verdik.

WHM üstünden Mod Security kuruluydu ve aktif edilmişti. Lakin sunucuya gelen saldırılar konusunda otomatik yasaklama yapmasına rağmen siteye gelen bot trafiğinde bir düşüş sağlamadı.

Read More

Easy Apache 4

imagemagick nasıl kurdum: https://grepitout.com/install-imagemagick-cpanel-easyapache4/

yum install ImageMagick-devel ImageMagick-c++-devel ImageMagick-perl

pecl eklentilerine gelip imagick diye aratınız ve çıkan sonucu install deyiniz

/opt/cpanel/ea-php70/root/etc/php.ini dosyası sonuna şu kaydı ekleyiniz extension=imagick.so

/opt/cpanel/ea-php70/root/usr/bin/php -m | grep imagick

memcached nasıl kurdum: https://www.liquidweb.com/kb/how-to-install-memcached-on-centos-7/

Sonra servisi çalıştırdım service memcached restart

Sonra şu makaleye bakarak http://serverfault.com/questions/201981/launch-memcached-on-server-boot boot işlemi sırasına memcache i de ekledim.

chkconfig --add memcached
chkconfig memcached on

En son, sistemde kurulu gelmeyen Memcache PECL eklentisini kurdum: https://duvien.com/blog/installing-memcache-easyapache-4-php-7

PHP ile bir ayet göster nasıl yapılır

Bir sitenin namaz vakitleri sayfaasında (http://www.haberiyakala.com/istanbul-namaz-vakitleri) rastgele ayet göstermemiz gereken bir alan yer alıyor.

Lakin anlam bütünlüğünü bozmadan, sağlam bir kaynaktan ve rastgele nasıl ayet gösterebiliriz.

Bunun için önce elimizde bir ayet havuzu / ayet arşivi olması gerekiyordu. Birkaç ayet seçkisi bulduk ama onlar da hangi mealden alındığı belli olmadığı için kullanmakta çekindik.

Bu durumda iş başa düştü ve Diyanet İşleri Başkanlığı’nın şu sayfasından (http://mushaf.diyanet.gov.tr) girip konu fihristinden ahlak kısmından ayetleri seçtik.

Bir ayet birden çok alt konuda listelendiği için tekrar edenleri tek sefer kayıt ettik ve elimizde 100 ayet’in Meali oluştu.

işin php tarafına gelirsek.

Read More

Php Array Türkiyenin Şehirleri

Lazım olsa bulunmaz, şunda dursa kötü olmaz.

	$array_city(
		0 => 'Türkiye',
		1 => 'Adana',
		2 => 'Adıyaman',
		3 => 'Afyonkarahisar',
		4 => 'Ağrı',
		5 => 'Amasya',
		6 => 'Ankara',
		7 => 'Antalya',
		8 => 'Artvin',
		9 => 'Aydın',

		10 => 'Balıkesir',
		11 => 'Bilecik',
		12 => 'Bingöl',
		13 => 'Bitlis',
		14 => 'Bolu',
		15 => 'Burdur',
		16 => 'Bursa',
		17 => 'Çanakkale',
		18 => 'Çankırı',
		19 => 'Çorum',
		20 => 'Denizli',

		21 => 'Diyarbakır',
		22 => 'Edirne',
		23 => 'Elazığ',
		24 => 'Erzincan',
		25 => 'Erzurum',
		26 => 'Eskişehir',
		27 => 'Gaziantep',
		28 => 'Giresun',
		29 => 'Gümüşhane',

		30 => 'Hakkari',
		31 => 'Hatay',
		32 => 'Isparta',
		33 => 'Mersin',
		34 => 'İstanbul',
		35 => 'İzmir',
		36 => 'Kars',
		37 => 'Kastamonu',
		38 => 'Kayseri',
		39 => 'Kırklareli',

		40 => 'Kırşehir',
		41 => 'Kocaeli',
		42 => 'Konya',
		43 => 'Kütahya',
		44 => 'Malatya',
		45 => 'Manisa',
		46 => 'Kahramanmaraş',
		47 => 'Mardin',
		48 => 'Muğla',
		49 => 'Muş',

		50 => 'Nevşehir',
		51 => 'Niğde',
		52 => 'Ordu',
		53 => 'Rize',
		54 => 'Sakarya',
		55 => 'Samsun',
		56 => 'Siirt',
		57 => 'Sinop',
		58 => 'Sivas',
		59 => 'Tekirdağ',

		60 => 'Tokat',
		61 => 'Trabzon',
		62 => 'Tunceli',
		63 => 'Şanlıurfa',
		64 => 'Uşak',
		65 => 'Van',
		66 => 'Yozgat',
		67 => 'Zonguldak',
		68 => 'Aksaray',
		69 => 'Bayburt',
		70 => 'Karaman',

		71 => 'Kırıkkale',
		72 => 'Batman',
		73 => 'Şırnak',
		74 => 'Bartın',
		75 => 'Ardahan',
		76 => 'Iğdır',
		77 => 'Yalova',
		78 => 'Karabük',
		79 => 'Kilis',
		80 => 'Osmaniye',
		
		81 => 'Düzce',
	);

SQL ile Dublicate Başlık tespiti

50 bin haberimiz var ve hangilerinin aynı başlığa sahip olduğunu bilmek istiyoruz…

SELECT 
	content_id, 
	content_title, 
	count(*) 
FROM 
	content 
WHERE
	content_status = 1
GROUP BY 
	content_title
HAVING 
	count(*) > 1
ORDER BY
	content_id DESC;

Kaynak: https://forum.ubuntu-tr.net/index.php?topic=50599.0