Ana Sayfa   Weblog   Realtime   Galeri   Arşiv   İletişim-Referanslar

Sayfa Yükleniyor...
blank
  Merhaba , kişisel weblog alanıma hoşgeldiniz...  
    Apache 'de Error ve Access Kayıtları07 Haziran, Perşembe 2007  

 
 

Local sistemlerde (kendi bilgisayarlarımız), sunucunun ve diğer bileşenlerin kurulumunu kendimiz yaptığımız için problemler oluşabilmektedir. Bu, kiralık sunucularımızda genellikle daha nadir rastlanan birşeydir. Çünkü eğer hosting firmanızı doğru seçmişseniz , onlar zaten bu sorunların çıkmamasını hedeflerler.

Meşhur "localhost" domain inizde çalışırken, internet tarayıcınızın ekranında yüklenmemiş resimler, Apache Server hataları, dahil edilememiş dosyalar, sayfalar görüyorsanız ve bunların neden kaynaklandığı o an için anlaşılamaz bir durum almış ise, Apache Sunucusu 'nun tuttuğu hata kayıtlarına bakmanın zamanı gelmiş demektir.

Peki bu dosyalarımız neler ve neredeler?

    I. Dosyalarımız yerleri :

       2 dosya da Apache klasörünüzün altındaki logs klasöründe bulunmaktadır.

    II. Dosyalarımızın isimleri ve görevleri :

         a) access.log : Erişim yapılan sayfaları, metotlarını, tarihlerini, cevap kodlarını vs. tutan dosyadır.

          - Dosyayı Notepad ile açabilirsiniz. Kayıtlar satır satır tutulur. Sırasıyla satırlarda, erişim yapan IP adresi, tarih, istek metodu + dosyası + protokolü, HTTP cevap kodu, dosya boyutu(byte olarak), istek yapan adres, tarayıcı türü kaydı tutulur.

         b) error.log: Adı üstünde, hata kayıtlarını, tarihlerini tutan dosyadır. Ancak aynı zamanda sunucu çalışma bilgilerini de not etmektedir.

          - Bu dosya da Notepad ile açılabilir. Aynı şekilde kayıtlar satır satır tutulur. Sırasıyla satırlarda, tarih, hata türü, hata kodu, hata açıklaması yer almaktadır.

          - Eğer tutulan kayıt sunucu çalışma notu içeriyorsa, sıra şu şekildedir, tarih, not belirteci [notice], çalışma bilgisi

Dosyalara örnek içerik satırları da gösterirsek, anlaşılması daha kolay olacaktır:

access.log satır örneği :

127.0.0.1 - - [07/Jun/2007:12:50:07 +0300] "GET /azizce.com/images/home.png HTTP/1.1" 200 1806 "https://localhost/azizce.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.8.0.12) Gecko/20070508 Firefox/1.5.0.12"

error.log satır örneği : 

[Thu Jun 07 00:05:53 2007] [error] [client 127.0.0.1] File does not exist: <rootdir>:/<dir>/htdocs/xxxxx.com/templates/siteground30/images/bullet.png, referer: http://localhost/xxxxx.com/templates/siteground30/css/blue.css

[Wed Jun 06 23:42:46 2007] [notice] Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4 OpenSSL/0.9.8e mod_autoindex_color PHP/5.2.2 configured -- resuming normal operations

 
     
  EkleBunu Sosyal Paylaşım Butonu
 
 



* Opsiyonel : Web Adresiniz
Güvenlik Sorusu:    3 ile 2 sayısının farkı kaçtır?
 
 
    setcookie() ile IE 'da zaman aşımı sorunu26 Nisan, Perşembe 2007  

 
 

setcookie() ile Internet Explorer 'da zaman aşımı sorunu

Geçenlerde 1 saat zaman aşımlı bir çerez yaratmam gerekti. Basitçe :

setcookie("deneme", "test", time()+3600, ".azizce.com");

şeklinde çerezi oluşturdum. Lokalde yaptığım farklı tarayıcı testlerinde sorun olmamıştı.Bende doğal olarak uzak sunucumda da bir problem olmayacağını düşündüm (Uzak sunucum ile kendi bilgisayarımda aynı PHP ve MySQL, phpmyadmin sürümlerini kullanırım) .Tarayıcı olarak Firefox kullandığım için uzak sunucumdaki sayfayı IE ‘da açana kadar problemin farkında değildim. Çerez bir türlü oluşmuyordu. Defalarca ve farklı zaman aşımı süreleriyle yaptığım testlerden sonra time()+3840 süresinin IE ‘da 1 dakikalık çerez oluşturduğunu gördüm. time()+3780 ise 0 "time()" değeriydi (  Yani sucular arası fark 1 saat 3 dakika). Kabaca çıkan sonuç şöyleydi:

time()+3840 => 1 dk.
time()+3900 => 2 dk.
time()+3960 => 3 dk.
time()+4020 => 4 dk.
time()+4080 => 5 dk.
........
time()+6600 => 47 dk. ( 6600-3780) / 60 = 47 dk.

Bir sevinçle php manual’e bunun çözümü için farklı tarayıcılarda farklı zamanlı çerezler oluşturan bir "çözüm" script ‘i koydum.

Ancak yanılmıştım. Çözüm benim için doğruydu, fakat herkes için değil.

PHP Developer(Geliştirici) olan bir arkadaş ile 3-4 kez e-posta laştıktan sonra. Sorunun lokal sunucumdaki zaman ve uzak sunucumdaki zaman farkı olduğunu gördüm. Siz de şu şekilde bunu öğrenebilirsiniz (bilmeyenler için):
// ver. > PHP 5.1

echo date("D M j G:i:s T Y", $_SERVER['REQUEST_TIME']);

// ver. < PHP 5.1

echo date("D M j G:i:s T Y", time() );

Bu küçük scripti hem kendi bilgisayarınızda hem uzak sunucunuzda (muhtemel bir hosting firması) çalıştırarak zaman farkınızı (eğer varsa) görebilirsiniz.

Daha sonra bu linkte (php bug sitesi) : http://bugs.php.net/bug.php?id=13116 değerli PHP güvenlik uzmanı ve geliştiricisi Chris Shiflet ‘ın benzer bir probleme cevap olarak 2002 Şubat ayında yazmış olduğu :

3) Time (in GMT) on the browser
4) Time (in GMT) on the server

maddelerinden yola çıkarak ben de 13116 numaralı bug ‘da aynı problemi yaşayanlar için bu çözümü gösterecek bir yorum yazdım. Aynı PHP Developer arkadaş ile yazışmamızda bu yorumun benzer sorunu yaşayan kişilere, kafalarını karıştırmadan net bir yanıt olacağını söyledi.

Sonuç:

Çerezleri uzun zaman aşımı gerektiren durumlarda kullanmak mantıklı olacaktır. Kısa zaman aşımı gerektiren durumlarda veritabanını kullanmak daha mantıklı olabilir.Eğer kısa zaman aşımları durumlarında mutlaka çerez kullanmamız gerekiyorsa, sık kullanılan tarayıclardan Internet Explorer ‘ı  göz önüne alıp (diğer tarayıcılarda böyle bir sorun oluşmamaktadır) lokal ve uzak sunucu zamanlarını kıyaslayıp buna uygun bir script yazmamız gerekmektedir. Örneğin, lokal ve uzak sunucu zaman aşımı 1 saat 3 dakika olan bir durumda:

if ( !isset($_COOKIE['cerezadi']) ) {
   
    // Eğer tarayıcı Internet Explorer ise
    if(stristr($_SERVER['HTTP_USER_AGENT'],"MSIE")) {
       
             // Zaman aşımını 47 dk. olarak ayarlıyoruz
             setcookie("cerezadi", "alihan cetin", time()+6600, "/", ".azizce.com");
   
        // Diğer tarayıcılarda örn: Firefox
        } else {
              // Zaman aşımını 47 dk. olarak ayarlıyoruz
             setcookie("cerezadi", "alihan cetin", time()+2820, "/", ".azizce.com");
        }
     
}

gibi bir script kullanabilirsiniz.

Yok illa setcookie() kullanmak istemiyorum derseniz, header() fonksiyonu yada ufak bir Javascript kodu da işinizi görecektir. Eğer header() fonksiyonu ile çerez yaratmayı tercih ediyorsanız php manual deki setcookie() fonksiyonuna eklenen yorumlardan yaralanabilirsiniz.

Alihan Çetin
(Webmaster)

 
     
  EkleBunu Sosyal Paylaşım Butonu
 
 



* Opsiyonel : Web Adresiniz
Güvenlik Sorusu:    3 ile 1 sayısının farkı kaçtır?
 
 
    Seo Makalesi Ne Oldu?07 Mart, Çarşamba 2007  

 
 

Neler oldu neler :) Sizden ricam http//azizce.com/arsiv/ linkinden herhangi bir başlığı google da ve türk google da aratmanız. Eğer 1 ve 2. sayfada göremiyorsanız sadece Türkçe sayfalarda arat demelisiniz. Ancak çoğu başlık genelde 1. , 2. sayfada çıkmakta hatta 1. 2. sırada Smile.

Özellikle samsung ypu1 , kedileri sevmiyorum , deprem tahminim , mysql_real_escape_string  (türkçe sayfalar), mysql_real_escape_string (uluslararası) , kucaklama kampanyası  aramaları ilk sıralarda çıkmakta. Aslında diğerlerinde de hemen hemen bütün başlıklar olmak üzere (1 ve 2. sayfalar) sonuçlarda çıkmakta. Deneyin görün...  mysql_real_escape_string başlığını da eklememin sebebi, Türkçe sayfalarda da olsa 2. sayfada çıkması. Önemi ise, bu PHP nin en mühim güvenlik fonksiyonlarından biridir, hemen heryerde geçer. Ancak işte o kadar site arasında da başta olabilmek mühim.

Arama motoru optimizasyonu konusu 2-3 paragrafla geçilemeyeceği için, buna ciddi bir zaman ayırmam lazım ki, çevirmediğim ingilizce makaleler var hala. Biraz daha müsait olduğum bir vakit, bunları sizlerle paylaşmayı planlıyorum. 

Ancak ilk önce şunu bilmenizde fayda var, sabır, arama motoru optimizasyonunda belkide en önemli madde :)

 Sağlıcakla Kalın

 
     
  EkleBunu Sosyal Paylaşım Butonu
 
 



* Opsiyonel : Web Adresiniz
Güvenlik Sorusu:    4 ile 0 sayısının farkı kaçtır?
 
 
 
   << Önceki Sayfa          Sonraki Sayfa >>   
 
blank
#Sayfa Başı
Arama İpucu
blank
  Temel Kaynaklar
  •  Giriş
  •  Üyelik
  •  
  • Arşiv Arşiv
  • RSS 2.0 RSS
  • Smart RSS Smart RSS
blank
  Kategoriler
blank
  Tavsiye Linkler