Drupal Sayfa Açılımını Hızlandırma

Blog Kategori: 

Drupal güçlü olmasına güçlü ama eksiklerinden birisi sunucuları gereğinden fazla kasması ve sayfa yükleme süresinin uzun olması. Kurulumda gelen performans özelliğindeki önbellekleme veritabanına yapıldığı için her ne kadar önbellekte veri saklansa da veritabanı meşguliyetinden dolayı beklentiyi karşılamamakta. Bu nedenle sürücü üzerinde önbellek (cache) yapan modüllere (eklenti) ihtiyaç duyulmaktadır.

Öncelikle ilk yapmamız gereken temamızın kodlarını düzenli hale getirmektir ( Fazlalık tüm kodları çıkartmaktır). CSS dosyalarında ise kodlarımızı tek satır halinde toplamamız bizim yararımıza olacaktır.

Şimdi gelelim bellekleme işlemine; bu işlem için drupal sisteminin temelindeki modül ne yazık ki işimizi fazla göremiyor veya yetersiz gelmektedir.

Öncelikle bellekleme için bir sürü eklenti bulunduğunu belirtmeliyim. Eklentilerin topluca açıklandığı sayfaya baktığınızda bunu sizde görebilirsiniz.

Ayrıca performansını nasıl hızlandırabileceğinizi görebilmek için bu sayfaya bakabilirsiniz.

Şimdi gelelim bizim yapacağımız bellekleme işemine:

-Öncellikle sitemizin içeriğini sadece ziyaretçilerin mi yoksa kullanıcılarında aktif mi olacağına karar vermeliyiz.
Kullanıcısız siteler için bellekleme:

İlk olarak sadece ziyaretçilerin takip ettiği bir sitemiz varsa Boost eklentisini kurmamız yeterlidir. Bu eklenti sitemizin sayfalarını bir html sayfa imiş gibi bellekleyerek her seferinde veri tabanı,css ve scriptlerimize bağlanmayı engellemektedir. Şu anda Medyatik blog da kullanılan bellekleme türüde budur.
Kullanıcılı siteler için bellekleme:

Kullanıcıların aktif olduğu sitelerde Boost eklentisini kullanmadaki gibi kolaylıklar ne yazıkki yok bizi biraz daha uğraştıran bir yapısı mevcut. Boost ziyaretçiler için en iyi bellekleme eklentisi olduğundan bu eklentiyi kullanıcıların aktif olduğu sitemizede kurabiliriz. En azından ziyaretçiler için boş yere veri tabanına bağlantı kurulmaz.

Şimdi gelelim bizim yapacağımız asıl belleklemeye, bunun için Authenticated User Page Caching (Authcache) ve Cache Router eklentilerini indirelim ve ftp ile sitemizin bulunduğu dizinlere aktaralım. Modülleri aktif etmeden önce yapacağımız bir kaç işlem var.

Şimdi sitemizin setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/authcache/authcache.inc';

satırını ekleyelim. Bu işlemden sonra authcache modülünü sistem çağırabilir olacaktır.

Cache Router modülünün çalışabilmesi için doğru yapılandırılması gerekmektedir. Kullandığımız web alanına göre bu işlem farklılıklar göstermektedir.

-Paylaşımlı web alanı kullananlar için(Normal Hosting):

Setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/contrib/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
  'default' => array(
    'engine' => 'db',
    'server' => array(),
    'shared' => TRUE,
    'prefix' => '',
    'path' => 'sites/default/files/filecache',
    'static' => FALSE,
    'fast_cache' => TRUE,
  ),
);

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'file',
),
);

Satırlarını ekleyelim.

-Dedicated Server veya VPS Hosting:

Setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'apc',
),
);

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'xcache',
),
);

Satırlarını ekleyin.

-Multi-Server Dedicated Hosting:

Setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'memcache',
'server' => array('localhost:11211', 'localhost:11212'),
'shared' => TRUE,
'prefix' => 'prod',
),
'cache_page' => array(
'engine' => 'file',
),
);

satırlarını ekleyelim. Bu satırlarda localhost yazan yere kendi sunucumuzun IP adresini yazmamız gereklidir.

Son işlemler:

Artık eklentilerimizi aktif edebiliriz. Eklentileri aktif ettikten sonra cache router ile ilgili bir ayar bulamayacaksınız bu eklenti arka planda çalışmaktadır.

Authcache eklentisinin ayarları için ise drupal sisteminin klasit performans sayfasına yeni eklenen Authcache sekmesine tıklamanız yeterlidir. Burada hangi kullanıcı tolleri için bellekleme yapılacak gibi seçenekler mevcuttur. Eğer sitenizde bu ayarları yaparken kullanıcı girişleri mevcut ise en alttaki seçeneği seçtikten sonra kaydet demenizi tavsiye ederim. Seçenekte giriş yapmış kullanıcılara zorunlu çıkış yaptırılarak bellekleme işlemi gerçekleşmiş sayfaların sunulacağını belirtmektedir.

Kaynak: http://www.aratmedya.com/webtasarim/drupal-bellekleme-hizlandirma-cache....

Yorumlar

Üstadım elinize sağlık . Ben drupal 7.26 kullanıyorum ama cache router modülünün 7x sürümü yok . Sanırım ben bu işlemleri sistemime uygulayamam , başka bir alternatif varmıdır .saygılarla..

lookmer kullanıcısının resmi

7.26 kullanıyorsan kuracağınız 3 eklenti işinizi görecektir. Bunlar Authcache, Boost ve File Cache bunları kurarsanız sisteminiz çok çok rahatlayacaktır... Authcache için 7.x-1.2 kullanımı rahat olduğu için tavsiye edilir.

üstadım teşekkür ederim. Şimdi bir başka sorum olacak size. Konuyla alakalı degil ama ilgilenirseniz sevinirim. Mesela 3 çeşit içeriğim olacak A ,B,C gibi.Mesala şöyle;

Anasayfa A B C İletişim

Menüm yukarıdaki gibi olacak. Burada yapmak istediğim rollere göre üyeler içerikleri görebilecek. Normal üyeler yalnızca A'nın içeriğini görebilecek . Ama altın üye diye tabir edeceğim kesim ise B ve C 'nin içeriğinide görecek. Mesela bu altın üyelik aylık olacak ve otomatik olarak süre bitiminde üye tekrar standart üye olacak. Bu tarz bir işlemi gerçekleştirmek için bilginiz varmı ? Yada hangi module yada yolları izlemeliyim ? Saygılarla.

lookmer kullanıcısının resmi

İçeriklerin gösteriminin sınırlı olması için öncelikle Kişiler>İzinler>Roller menüsünden farklı roller belirtmelisin. Daha sonra view X içeriğini kimler görebiliyor onu sınırlandırmasını Kişiler>İzinler>İzinler menüsünden ayarlaman gerekiyor. Süreli üyelik olayını da zannedersem https://drupal.org/project/inactive_user modülü ile yapabiliyorsun. Daha önce kullanmadığım için birşey diyemeyeceğim... İyi çalışmalar...

Rolleri oluşturmuştum zaten üstad ama izinler sayfasında bildiğin üzere sadece ''Yayınlanmış içeriği görüntüle'' diye bir kısım var ve olay burada bitiyor. mesela 1 aylık abone rolu olusturdum. kayıtlı kullanıcıya Yayınlanmış içeriği görüntüle kısmını pasif yaptıgımda, 1 aylık aboneye aktif yaptıgımda olay çözülüyor ama sıkıntı şu ki. üye olan kişi bu sefer hiçbir şeyi göremiyor. buda tam istediğim şeyi sağlamıyor. benim istediğim bazı içerik türlerini bazı kişiler görebilsin bazıları göremesin.
diğer modulu de indirdim şimdi inceleyeceğiim.Saygılar

Yeni yorum ekle