
Şu sıralar Hardwaremania’nın alt yapısı ile ilgilendiğimiz için blog’larım bir süre WEB teknolojileri ve sunucular üzerine olacak gibi duruyor. Aslına bakarsanız şirket olarak HWM Network’ün üzerinde çalıştığı konuların başında WEB teknolojileri ve sunucular geliştirmek geliyor.
Günümüz WEB dünyasında bildiğiniz gibi LAMP* sunucuların yeri oldukça büyük. Tabii dolayısı ile PHP uygulamalarınında. Eğer sunucunuzda bir PHP uygulaması çalışıyorsa ve siz çalışan PHP Script’lerininiz derlenmiş hallerini hafızada tamponlayabilirseniz büyük oranda hız artıkları sağlayabilirsiniz.
Öyle ki, PHP Script’lerinizin yarattığı WEB sayfalarının oluşturulma sürelerini beş kata kadar hızlandırabilirsiniz. PHP kodunuzun kullandınız ön bellekleme(cache) metoduna uygunluğuna göre bu hız farkı çok daha yukarılarada çıkabilir. Aynı zamanda bu sayfaların derlenme sürelerindeki kazancın yanında WEB sunucunuzun genel yükünü ve sabit disklerinize erişimide büyük oranda düşürmüş olursunuz. Yani nereden bakarsanız bakın böyle bir cache mekanizmasına ihtiyacımız var.
PHP dünyasında yukarıda bahsettiğimiz mantıkla çalışan açık kaynak bir çok PHP Opcode Cacher var. En popülerleri eAccelerator, APC ve XCache denilebilir. Şimdi isterseniz lafı daha fazla uzatmadan direkt olarak Linux sunucunuza bizim Hardwaremania’da kullandığımız XCache mekanizmasını nasıl kuracağınız ile devam edelim. (XCache’i windows ortamında da kullanabilirsiniz)
Kaynak Kodundan XCache Kurulumu
Kaynak kodundan yeni bir XCache derlemeyi, sunucularımızda tercih ettiğimiz Debian dağıtımı üzerinden anlatacağım. Ancak diğer Linux dağıtımlarda da fark yok denecek kadar az olacaktır. Tabii ki XCache derleyeceğiniz bilgisayarda çalışan bir PHP olduğunu varsayarak anlatmaya devam ediyorum.
Öncelikle bir C kodu derleyeceğimiz için gcc, make, libtool vb. gibi araçlara ihtiyacımız olacak. Eğer APT tabanlı paket yönetim sistemi kullanan bir Linux dağıtımı kullanıyorsanız kaynak kodunu derlemek için gerekli ortamı yaratmak oldukça kolay. – php5-dev ya da dağıtım farkına göre – php5-devel paketlerini kurduğunuzda lazım olan diğer tüm paketlerde otomatik olarak kurulacaktır. Yani sadece aşağıdaki gibi bir komut vermeniz yeterli.
HWM:~# apt-get install php5-dev
Ortam hazır olduktan sonra XCache kaynak kodunu indirerek devam edebiliriz. Ben genelde birşey derleyeceğim zaman kaynak kodlarını /usr/src/ altına indirmeyi tercih ediyorum. XCache’in son sürümünün kaynak kodlarını http://xcache.lighttpd.net adresinden temin edebilirsiniz.
HWM:/usr/src# wget http://xcache.lighttpd.net/pub/Releases/1.3.1/xcache-1.3.1.tar.gz
Önce indirdiğimiz arşiv paketini aşağıdaki komut ile açalım ve arşivi açtığımız klasöre geçelim.
HWM:/usr/src# tar -zxf xcache-*.tar.gz
HWM:/usr/src# cd xcache
Derlemeye başlamadan önce ” phpize ” komutu ile bir PHP eklentisini derlemek için gerekli ortamı hazırlamanız gerekiyor son olarak.
HWM:/usr/src/xcache-1.3.1# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Şimdi XCache’i derlemek için tam olarak hazırız. Aşağıdaki komutları sırası ile verirseniz doğru yapılandırılmış bir Linux dağıtımında birkaç dakika içinde derlenecektir.
Biz “–enable-xcache” parametresi ile derleyeceğiz. Özelllikle PHP geliştiricilerin işine yarayacak birkaç özellik daha derleme sırasında işleme dahil edilebiliyor. Ancak sunucunuzda bunlara pek ihtiyacınız yok. Belki geliştirme ortamınızda ihtiyaç duyabilirsiniz. Tam bir listeyi “../xcache/configure –help” komutu ile görebilirsiniz.
HWM:/usr/src/xcache-1.3.1# ./configure –enable-xcache
HWM:/usr/src/xcache-1.3.1# make
HWM:/usr/src/xcache-1.3.1# su
HWM:/usr/src/xcache-1.3.1# make install
Derleme sonucunda sisteminiz size “/usr/lib/php5/20090626/xcache.so” gibi bir dizin bildirerek derlenmiş xcache’inizin nerede durduğunu söyleyecektir. Bu dizin önemli çünkü php.ini dosyanızda extension’ların yüklendiği alana bunu eklememiz gerekiyor. Aslında bir komut ile xcache parametrelerini php.ini dosyanıza otomatik olarak ekletebiliriz. Aşağıdaki komut php.ini dosyasına gerekli tüm eklemeleri yapacaktır. (php.ini dosyanızın dizini sizin Linux dağıtımınızda biraz farklılık gösterebilir.)
HWM:/usr/src/xcache-1.3.1#cat xcache.ini >> /etc/php5/apache2/php.ini
Aslına bakarsanız XCache şuanda çalışmak için hazır. Ama biz önce php.ini dosyamızı editleyerek derlediğimiz xcache’in ayarlarını optimum hale getirelim. php.ini dosyanızı tercih ettiğiniz bir editör ile açınca içinde aşağıdakine benzer kayıtların bulunduğunu görmeniz gerekiyor.
[xcache-common]
zend_extension = /usr/lib/php5/20090626/xcache.so[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = “admin”
xcache.admin.pass = “e4dd32334c96d39bd345d2ac31d1b44dc1b28″[xcache]
xcache.shm_scheme = “mmap”
xcache.size = 256M
xcache.count = 8
xcache.slots = 16K
xcache.ttl = 3600
xcache.gc_interval = 7200xcache.var_size = 32M
xcache.var_count = 8
xcache.var_slots = 16K
xcache.var_ttl = 3600
xcache.var_maxttl = 7200
xcache.var_gc_interval = 300xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = “/dev/zero”xcache.coredump_directory = “”
xcache.cacher = On
xcache.stat = On
xcache.optimizer = On[xcache.coverager]
xcache.coverager = Offxcache.coveragedump_directory = “”
Yukarıdaki ayarlar bizim Hardwaremania’da kullandığımız ayarlar. Sizde aynı ayarları kullanabilirsiniz. Sadece xcache.size ve xcache.var.size ayarlarını size uygun hale getirin ve xcache.count ve xcache.var.count değerlerini sisteminizdeki işlemci sayısı ile eşleştirin. Bizim sunucu sekiz işlemcili olduğu için bizim sistemde sekiz olarak tanımlı. Diğer ayarların tamamını aynen bırakabilirsiniz. Daha sonra değerleri istatistiklerinizi takip ederek yeniden düzenlersiniz.
XCache Yönetim Ekranına Ulaşma
Öncelikle bu yönetim ekranını oluşturacak dosyaları kopyalamanız gerekiyor. Bu dosyalar XCache’i derlemeden önce çektiğiniz kaynak kodu arşivi içinde /admin klasörü içinde duruyor. Bu dosyaları web’den ulaşılabilen bir dizin içinde istediğiniz yere kopyalayabilirsiniz. Klasör adınıda dilediğiniz gibi değiştirebilirsiniz. Örneğin klasör adını xcache-admin yaparak XCache yönetim ekranına http://xyz.com/xcache-admin/ yolu ile kolayca ulaşabilirsiniz.
Ayrıca yukarıda gördüğünüz php.ini içerisindeki “xcache.admin.user” ve “xcache.admin.pass” parametreler size yönetim ekranına ulaşmanız için gerekli olan hesabı tanımlıyor. Dilediğiniz kullanıcı ismini buraya yazabilirsiniz. Kullanacağınız şifreyi ise sisteme MD5 olarak vermeniz gerekiyor. Dilediğiniz şifreyi http://www.md5.net/ adresinden kolayca MD5′e çevirebilirsiniz.
Bu yönetim ekranından istatistik takip edebileceğiniz gibi tamponlanmış dosyalar üzerinde de hakimiyet elde edebilirsiniz. Ancak biz genellikle istatistik takibi ve gerektiğinde tampon belleği boşaltmak için bu yönetim ekranını kullanıyoruz.
Son olarak daha önce de dediğim gibi özellikle Linux dağıtımlarından kaynaklanan bazı farklılıklar olabilir. Bazı paketlerin ismi ya da bazı dosyaların dizinleri farklı olabilir. Eğer yukarıdaki adımları sakince izlerseniz ve takıldığını yerlerde google’dan yardım alırsanız XCache’i kaynak kodundan derlemeniz en fazla 5 dakikanızı alacaktır. Daha sonra ise XCache siz geçen günlerinize üzüleceksiniz.
Erhan ABAY belki blog’larından birinde size PHP kodunuzu yazarken XCache’in nimetlerinden faydalanma ile ilgili birkaç örnek ve tiyo verir.
*LAMP : Linux-Apache-MySQL-PHP

