Üzerinde çalıştığım bir projem var. Projemde hem ASP.Net hem de Php kullanmak istediğim için kaçınılmaz olarak Windows sunucu kullanmam gerekti. İlk defa Windows sunucu kullandığım için çok sayıda problem yaşayacağımı biliyordum ve nitekim beklediğim oldu.
Projemde web servis kısmını ASP.Net ile yapıp veritabanını MySql olarak seçtim. Daha önce hiç ASP.Net ile web servis yazmadığım için öncelikle bir arama yaptım ve ne yazık ki dişe dokunur bir kaynak bulamadım. İşin bu kısmını yani ASP.Net ile web servisi nasıl yazılır? Web servis sunucuya nasıl aktarılır? gibi soruların cevabını başka bir yazıda detaylıca anlatacağım.
Projem masaüstü uygulama, web servis ve Php ile yapılmış bir yönetim panelini içeriyor. Aklımda Php ile Windows'un çok güzel geçinemeyeceğine takılmıştı nitekim daha ilk dakikadan basit bir uygulamada Internal 500 hatası alınca canım sıkıldı. Her zaman yaptığım basit bir işlem olduğu için problem mutlaka söz diziminde (syntax) olmalı dedim ve nitekim yanlış bir noktadan kaynaklandığını fark ettim. Noktayı doğru yere koyduktan sonra sistem çalışır hale geldi. Her ne kadar çözümü bulmuş olsam da canım sıkıldı çünkü gerek Windows localhost'ta gerek Linux sunucuda hata olduğu zaman detaylı bir mesaj alıyordum. Hemen problemin nereden olduğunu anlayıp düzeltebiliyordum ancak Windows'un Internal Server Error 500 deyip işin içinden sıyrılması canımı sıkmaya yetti.
Sonrasında kodları yazmaya devam ettim ve Php için "Twigy Template Engine" dosyalarını atıp dökümantasyonunu incelemeye başladım. Ne yaptıysam bir türlü Twigy'i aktif edemedim. Internal 500 hatası peşimi bırakmıyordu ve artık bıkkınlık gelmeye başladı. Malum zaman değerli ve bir programcı için Debug edemedikten sonra programlama sayısal loto oynamak gibi oluyor. Hatanın nerede olduğunu tahmin etmekten/denemekten ileri gidemiyorsunuz.
Sunucu olarak Güzel Hosting'ten (guzel.net.tr) deneme amaçlı 500 MB lık bir alan almıştım. Birkaç gündür Internal 500 hatasını yaşıyordum ama ağırlıklı olarak ASP.Net web servis olduğu için çok rahatsız etmiyordu çünkü web servisi lokalde yazıp test edebiliyordum. Yazdığım kodlarda hata olduğu zaman herşeyi açıkça görmeye alıştığımdan Windows sunucuda da hatalar bastırılınca jeton düştü tabi :)
Google'da gerekli araştırmayı yapıp bir ipucu yakalamaya çalıştım. Sunucuda kontrol panel olarak Plesk kurulu ve ayarlarında Display Errors kısmı varsayılan olarak atanmış bir şey değiştirilemiyor. Bende hemen ini_set ayarlarından belki halledebilirim diye düşündüm ancak değişen hiç bir şey olmadı.
Artık elimden gelen her şeyi denediğime vicdanen ikna olduğum için sunucu hizmetini aldığım Güzel Hosting'e destek bildiriminde bulundum. Problem ile ilgili bilgiyi verdikten kısa süre sonra cevap geldi. İlk başta işin kolayına kaçıp Php kullanıyorsam Windows sunucu yerine Linux sunucuya taşımayı teklif ettiler ancak projede ASP.Net ile birlikte kullanmam gerektiği için böyle devam etmem gerektiğini söyledim. Hata gösterme işleminin benim hesabım için aktif edilip edilemeyeceği vs. sordum. Benden hatanın olduğu sayfanın bir linkini istediler ve yine kısa bir süre sonra hata gösterim özelliğini aktif ettiler.
Artık her ne kadar Linux'ta ki hata gösterim stili ile aynı olmasa da detaylı bir bilgi alabiliyordum. Twigy'de sorun tema klasörünü gösterdiğim adresi bulamıyormuş. Windows'ta alışamadığım şeylerden birisi yol gösterimi olduğundan hata yapmışım bir iki denemeden sonra hata değişti. Yeni aldığım hata mesajında Twigy'nin cache klasörüne yazma yetkisi istediğini anladım. Hemen gözümün nuru Filezilla'ya gidip klasör izinlerinden yetki vereyim dedim. Yine Linux'a göre farklı bir yapı vardı karşımda. Filezilla aracılığıyla klasöre yazma yetkisi veremiyordum. Plesk'ten sorunu çözebileceğimi düşünerek hemen Plesk Panel'e girdim. Plesk'in eski versiyonlarını daha önce arkadaşların sunucularında görmüş ve nefret etmiştim ancak benim sunucuda Plesk'in 12 sürümü yüklü ve oldukça mükemmel bir hale getirmişler. Kısacası artık Plesk benim için rahatsız edici olmaktan çıktı.
Plesk'te "Dosya Yöneticisi" ne tıkladıktan sonra yazma izni vereceğim klasörün olduğu klasöre geçiş yaptım. Twig için cache işlemlerini yapacak klasöre isim olarak twigcache ismini vermiştim. Fare ile twigcache klasörünün olduğu satırın üzerinde durunca sağ tarafta aşağı yönü gösteren simgeye tıklayınca menü açılıyor (bkz. Resim 1). "İzinleri değiştir" yazan yere tıklayınca yetki vereceğiniz sayfaya yönlendiriliyorsunuz.
Açılan sayfada sol tarafta kullanıcı ve gruplar listesi var. Benim hesabımda 4 kullanıcı/grup vardı ancak sadece bir tanesinin yetkileri düzenlenebilir yapıdaydı. Uygulama Havuzu Grubu isimli grup üzerine tıklayınca sağ tarafta yetkileri geliyor. Burada yine bazıları önceden seçili ve değiştirilemez sekildeydi. Yazma ve okuma yetkisi (bkz. Resim 2) verdikten sonra artık Twigy sorunsuz sekilde Html dosyayı render edip ekranda bilgileri göstermeye başladı.
Windows sunucu maceramız bakalım nasıl sonuçlanacak. Linux sonrası alışmak zor olsa da ilerisi adına verim alacağımı düşünüyorum.