Dün siteye Php Kaynak başlıklı yazımızı eklediğimde yazının eklenme tarihinin 31 Ocak 2008 olarak belirlendiğini farkettim. Oysa olması gereken tarih 30 Ocak 2008 idi. Hemen wordpress Tercihler menüsüne baktım. Zaman dilimi (2) doğru görünüyordu fakat tarih ve saat yanlıştı. Hemen sistem tarihine baktım.
date Wed Jan 30 15:05:48 PST 2008
Sistemde tarih ve saat doğru görünüyordu. Worpressten kaynaklanan bir sorun olduğunu düşünmeye başladım. Kodları biraz inceleyince wordpressin tarihi gösterirken date() fonksiyonu yerine gmdate() fonksiyonunu kullandığını gördüm. gmdate fonksiyonu tarihi Greenwich Mean Time (GMT)‘a göre geri döndürüyor ve sistemin GMT zaman dilimi PST (Pacific Standard Time) olarak ayarlanmış. (Aslında ayarlanmamış
sunucu yurtdışında bulunduğu için zaman dilimi ayarı bu şekilde kalmış.) Sistemin zaman dilimi PST olduğu için gmdate fonksiyonu da yanlış bir tarih döndürüyordu. Doğru tarih ve saat için sistemin zaman diliminin aslında EET (Eastern European Time) olması gerekiyordu.
Linux sistemlerde bu ayar /etc/localtime dosyası tarafından sağlanıyor. /usr/share/zoneinfo/Asia/Istanbul dosyasını /etc dizininin altındaki locatime dosyasına sembolik link ile bağlayarak zaman dilimi EET olarak düzeltilebiliyor.
ln -sf /usr/share/zoneinfo/Asia/Istanbul /etc/localtime
komutu ile sistemin zaman dilimini EET yapıp, tarihi de daha önce anlattığımız şekilde düzeltince sorun düzeldi. Bu işlemi yaptıktan sonra sisteminizdeki servisleri(Apache, Cron, Mysql v.s) yeniden başlatmak gerekiyor. Saat dilimleri hakkında daha fazla bilgi almak için buraya.

Son Yorumlar