IIS 7.5 Temel Yönetim İşlemleri

Bu makaleyi kaleme alıyor olmamızın sebebi son zamanlarda IIS 7 ile ilgili gelen temel sorulara toplu bir yanıt vermektir. 5 Bölümden oluşacak olan makalemizin ilk bölümünde IIS kurulumu, IIS Elementlerinin tanımlanmasını, ikinci bölümümüzde ise uygulamalı web sitesi barındırmayı ve IIS üzerinde PHP çalıştırmayı, üçüncü bölümümüzde IIS FTP ve Basit Mail Hizmetinin kullanımını ele alacağız. Makalemizin dördüncü bölümünde ise IIS in kaynak tüketimi yönetimine ve performans ayarlarına değiniyor olacağız.  Application Pool yapılandırmalarına da yine bu bölümde değiniyor olacağız. Makalemizin son bölümünde ise Cevaplandırılmış sorulara değineceğiz. Cevaplanmış sorular için hazırladığımız dokümanda kişilerin en sık karşılaştıkları sorunlara toplu bir yanıt veriyor olacağız. Ve yine bu alandaki cevapları arttırmak içinde üyelerimizden ve ziyaretçilerimizden karşılaştıkları IIS sorunlarını formumuz aracılığı ile toplayacağız. Yani Makalemiz tamamlandığında ise IIS 7 ile ilgili şu konuları ele almış olacağız.

·         IIS i Hizmet Verecek Şekilde Kurma

·         IIS Elementlerini Tanıma

·         .NET Sürümlerini IIS e Register Etme İşlemleri

·         IIS Üzerinde PHP Çalıştırma

·         IIS Üzerinde Web Sitelerinin Host Edilmesi

·         Temel IIS Konfigürasyonları

·         IIS FTP ve Basit Mail Hizmetinin Kullanımı

·         IIS Kullanımı ile İlgili Temel Öneriler

·         IIS Sunucu Kaynak Yönetimi

·         Application Pool Ayarları

·         Cevaplanmış Sorular

·         .NET Sürümlerini IIS e Register Etme İşlemleri

·         IIS Üzerinde PHP Çalıştırma

·         IIS Üzerinde Web Sitelerinin Host Edilmesi

·         Temel IIS Konfigürasyonları

IIS i Hizmet Verecek Şekilde Kurma

Şimdi isterseniz makaleye de başlayabilmek adına IIS i bir Rol olarak sunucumuza kuralım. İlk adım olarak Server Manager ı açalım ve Add Role e tıklayarak IIS i seçelim.

Ben IIS in tüm özelliklerini yüklüyorum zira hem anlatım için hem de kendi kullanımım için bana bu özellikleri gerekli. FTP özelliğini ise sadece anlatım için yüklüyorum. Pek kullandığım ve verimli bulduğum bir FTP server özelliği yok aslında IIS FTP nin. Ya da sadece kullanım alışkanlığım gelişmemiş olduğu için böyle düşünüyor olabilirim. IIS 6 ile ilgili bileşenleri ise yüklemenizi öneririm. Kimlik doğrulama ile ilgili bileşenleri de yine yükleyiniz zira Exchange kuracaksanız Exchange de buradaki bazı kimlik doğrulama yöntemlerine ihtiyaç duymaktadır.

İhtiyacınız olan IIS bileşenlerinin kurulumunu tamamladık isek Administrative Tools altına gelmiş olan Internet Information Services (IIS) Manager ı tıklayarak IIS yönetim konsolunu açalım.

Evet yönetim konsolumuzda sunucu adımıza tıkladığımızda IIS imizin üzerinde bulunan rollere göre bu tür bir ekranla karşılaşacağız. Makaleye devam etmeden önce burada anlatacaklarımızı ezbere değil de bilinçli bir şekilde yapab

A)     IIS Elementlerini Tanıma

ASP.NET

Connection String : Yayınlamak istediğiniz web siteniz bazı dataları bir veritabanın dan çekecek ise bu bölümü kullanarak Web Config dosyanıza eklenmek üzere bir tane Connection String oluşturur. Aslında bunu çoğu kez web sitenizi hazırlarken girersiniz zaten. Fakat lokalde hazırlayıp IIS e attığınız web sitenizde bu bağlantı ayarları sıkıntı çıkartabilir çoğu zaman. O yüzden bu kısmı kullanmanız gerekebilir. Özetle belirtmek gerekirse bu kısım Web Config dosyanıza eklenmek üzere bir bağlantı dizisi ekler.

FTP

Uygulamalı olarak değineceğimiz bir bölüm olduğu için bu kısımla ilgili pek bir açıklama yapmıyorum şuan.

IIS

ASP: ASP için gerekli ayarların yapıldığı kısımdır. Bu alanda ASP için Limit ayarları, Debug ayarları, Caching ayarları, Sesion Limit ayarları ve Com Plus ayarlarını yapılandırabilirsiniz. Bu alanda gerekli ayarları yapılandırmak sistem bilgisinin yanında yazılım bilgisi de gerektirir. Bu alandaki ayarları değiştirmek veya Default değerde bırakmak uygulamanızın özellikleri ile ilgilidir.

Authentication: Kişilerin web sitenizi görüntüleyebilmesi için gerekli kimlik doğrulamalarını talep edebilmenizi sağlayan ayarlar bu kısımda yer alır.  Dışarıdan herkesin web sitenizi görüntüleyebilmesi için Anonymous Authentication ı Enable yapmanız gerekmektedir. Web sitenizin veya belirli sub domainlerinizin herkes tarafından görüntülenmesini istemiyor veya sadece yetkilendirdiğiniz kişilerin bu sayfalara erişmelerini istiyor iseniz de Anonymous Authentication ı Disable konumuna getirip diğer kimlik doğrulama metotlarından birisini seçmeniz gerekmektedir.

Authorization Rules: Kullanıcıların web sitelerine ve uygulamalara erişim yetkilerini bu kısımdan yapılandırabilirsiniz.

CGI: Client’ın gönderdiği input u alıp ilgili programa gönderip sonucunu yine client’a döndüren bir ara yüz protokolüdür. Javascript’in yaygınlaşması ile popülerliğini yitirmiştir.

Compression: Bu özellik istemci tarafına web sayfalarının sıkıştırılarak gönderilmesini sağlar. Bu sitenizin daha hızlı görüntülenmesini sağlayan güzel bir özellik olmakla beraber sıkıştırma sebebiyle istemci bilgisayarlara daha fazla efor sarf ettirebilir. Çünkü sıkıştırılan bu öğelerin istemci tarafından çözülmesi bu işlem için daha fazla CPU ve Ram kullanımını gerektirmektedir. Bizlerin önerileri js, php, htm, html, css, asp gibi dosya uzantıları için bu özelliğin aktif tutulması jpeg, mp3, rar, zip gibi zaten sıkıştırılmış formatlar için ise böyle bir işlemin yapılmamasıdır.

Default Documents: Web dizinimizdeki klasörler içerisinde yer alan dosyaların hangisini varsayılanda göstereceğini ve istemciye sunacağını IIS bu alandaki tanımlanmış dosyalara bakarak belirler. Bir klasör dizinine index.html isimli bir dosya attığınızda IIS o klasör içerisindeki dosyalardan ilk önce bu dosyayı görüntüler ve istemci tarafına bu sayfayı gönderir. Buradaki varsayılan dosya tanımlarının sırası da önemlidir. Örneğin bir dizinde default.aspx ve bir tanede index.html dosyası olsun diyelim, bunlardan hangisinin öncelikli olarak görüntülenmesini istiyor iseniz onu bir diğerinin üstüne taşımanız gerekir. Bu alanda login.aspx gibi bir dosyanın varsayılan ilk dosya olması gibi ihtiyaçlarınız olabilir, bu durumda yapmanız gereken login.aspx sayfasını tanımlayıp en üste taşımaktır. Ayrıca PHP kurulumundan sonra (ki bu kuruluma da değineceğiz) bu alana index.php dosyasının da eklendiğinden emin olmalıyız.

Directory Browsing: Bir dizinde varsayılan bir dosya türü olmadığında o sayfaya erişim izninizde olmayabilir. Veya bir web sitesinin içeriğinde hangi klasörler yer almakta hangi klasörlerde neler bulunmakta bunlardan haberdar olmayabilirsiniz. Eğer ki ziyaretçilerinizin web dizininizde yer alan klasörlerin tüm içeriklerini görme gibi bir gereksiniminiz var ise bu özelliği aktif etmemiz gerekecektir.

Normal web siteleri için bir güvenlik açığı olan bu özelliği bazı web siteleri kullanabiliyor. Aktif ettiğimizde dizinlerimiz şu şekilde görüntülenebilmektedir.

Error Pages: Adında anlaşılacağı üzere hata sayfalarımız ile ilgili gerekli düzenlemeleri bu kısımdan yapabiliyoruz. Kendinizin hazırlamış olduğu hata sayfalarını bu alandan gerekli ayarları yaparak kullanabilirsiniz.

Failed Request Tracing Rules: Başırız istekleri loglamak için bu yapılandırma ayarlarını kullanabilirsiniz.

FastCGI Settings: IIS te FastCGI uygulamalarını buradan ekleyip yapılandırmalarını da yine bu bölümden yapıyoruz.

Handler Mappings: Belirli istek türleri için yanıtları işleyen DLL ler ve yönetilen kod gibi kaynakları belirtmek için kullanılır. PHP konfigürasyonunda bu bölüme tekrardan değineceğiz.

HTTP Redirecet: Sayfa yönlendirmelerinizi IIS üzerinden bu kısmı kullanarak yapabilirsiniz. Ben bu kısımda çok ihtiyaç duyulması ve sorulması sebebiyle de örnek olarak Exchange OWA yönlendirmesini örnek olarak uygulayacağım.

HTTP Response Headers: IIS yanıtlara eklenecek HTTP üst bilgilerini yapılandırmak için kullanılır.

IP Address and Domain Restrictions: Web sitenize veya web kaynaklarınıza belirli IP adreslerinden veya domainlerden erişimi engelleme veya erişme izin vermek için kullanılır.

ISAPI and CGI Restrictions: IIS sunucuda çalışabilecek ISAPI ve CGI uzantılarını belirlemek için kullanılır.

ISAPI Filters: IIS sunucuya yapılan ISAPI filtrelerini yapılandırmak için kullanır.

Logging: IIS in loğlarının nasıl tutacağını ve hangi dizinde tutacağını bu kısımdan ayarlayabilirsiniz. Örnek olarak ekleyeceğimiz bir web sitesi için bununla ilgili bir ayarlama yapacağız. Eğer ki bir web hosting hizmeti sunacak iseniz bunu belirttiğim şekilde ayarlamanız sizler için son derece önemli olacaktır. Zira artık web hosting hizmeti sunan firmalar bu loğları saklamak zorundadırlar.

MIME Types: Dosya türüne göre bu dosyayı açabilmek veya dosyayı görüntüleyebilmek amacıyla bu dosyayla ilişkili tanımların belirtilmesidir. Web sitenizde yayınlayacağınız bir dosya türünün client tarafından görüntülenebilmesi için gerekli MIME typeları tanımlamanız gerekir. IIS 7 de bilindik tüm MIME typelar tanımlı gelmektedir.

Modules : IIS e yapılan istekleri işleyen yerel ve yönetilen modülleri yapılandırmak için kullanılır.

Output Caching: İstemcilere sunulacak içeriği önbelleğe alma kurallarını buradan aktif edebilirsiniz. Aslında bu konuya dikkat çekmek istiyorum. IIS in istemcilere daha hızlı veri sunabilmesi için bu özellik tercih edilebilir bir kullanıma sahiptir. Çalışma mantığı istemcilere sunulacak olan verileri önbellekte tutmayı ve aynı isteği ikinci bir sefer istenildiğinde daha hızlı sunmayı hedefler. .pdf veya .doc gibi içeriği daha az değişebilecek dosyalar bu özelliği tercih etmeniz daha sağlıklı bir seçim olacaktır.

Request Filtering: Filtreleme kurallarını yapılandırmak için kullanılır. Örneğin web sitenizin gerekli bağlantı bilgilerini ve ayarlarını içeren web.config veya master page sayfanıza sanırım adını yazarak kişilerin ulaşabiliyor olmaları ciddi bir sıkıntı doğursa gerek. Aslında bu konuyu IIS in güvenlikle ilgili özelliklerini ele aldığımız bir başka makalede daha kapsamlı ele alabiliriz.

Server Certifation: Sunucunuz için SSL sertifikası oluşturmanıza veya satın oldığınız SSL sertifikasının sunucunuza yüklenmesine ile ilgili işlemleri buradan yapılandırabilirsiniz. Bunun ile ilgili uygulamaı bir örneğe makalemizde yer vereceğiz.

WebDav Authoring Rules: Kullanıcılar için içerik erişimi yetkilendirmelerini bu kısımdan yapabilirsiniz. Frontpage veya Web Expression kullanıyor iseniz bu programlar üzerinden web sitenizin içeriğine online müdahale edilmesi için buradan yetkilendirdiğiniz bir kullanıcı hesabı ile web sitenizi bu araçlar üzerinden düzenleyebilirsiniz.

Worker Processes: IIS üzerinde çalışan işlemler ve kaynak tüketimlerini bu kısımdan görüntüleyebilirsiniz.

Bir web sitesi yayınlamadan önce IIS sunucumuzu o sitenin özelliklerine uygun olacak şekilde yapılandırmamız gerekir. Örneğin .NET 4.0 ile yazılmış bir web uygulamamız var ise öncelikle IIS’in .NET 4.0 uygulamalarını çalıştırabilir bir hale getirmemiz gerekiyor. Ya da web sitemiz PHP ile kodlanmış ise yine IIS sunucumuzu PHP yi çalıştırabilecek bir yapıya kavuşturmamız gerekiyor.

Bunlar dışında altını önemle çizmek istediğim bir diğer konuda IIS e sadece bir web sunucusu gözü ile bakılmaması konusudur. Zira IIS 7 ile IIS sıradan bir web sunucusu dışında bir ürün haline gelmiştir. IIS sadece script diliyle yazılmış sitelerin web yayını yapmasını sağlamakla kalmayıp web tabanlı bir uygulamayı veya bir web servisini de farklı protokoller üzerinden yayınlayabilme gibi becerilere sahip bir üründür. Konuları ve uygulama örneklerini başka IIS makalelerimizde ele alıyor olacağız. IIS ile ilgili bu noktaya kısaca değindikten sonra isterseniz yukarıda belirttiğimiz işlemleri yavaş yavaş uygulamaya geçirelim.

.NET Sürümlerini IIS e Register Etme İşlemi

.NET paketleri birçok Microsoft uygulamalarının ve bu platform altında geliştirilmiş diğer uygulamaların çalışması için gerekli bir uygulama altyapı programıdır. Bizde IIS te bu paketlere aynı sebepten dolayı ihtiyaç duyarız. Zira bir web sitemiz ve üzerindeki web uygulamaları bu platform altında geliştirilmiş olabilir. IIS bir sunucu rolü olarak kurduğumuzda. NET 2.0 zaten IIS’e register edilmiş bir halde kullanıma hazır haldedir. Fakat .NET Framework 4.0 için bu işlemi bazen bizim elle yapmamız gerekebilir. Şimdi dilerseniz bu basit işlemi yapalım ve sunucumuzu yavaş yavaş elimizde olan web sitesini yayınlayabilecek bir yapıya kavuşturalım.

.NET 4.0 ı IIS e register etmeke için komut satırından CD C:WindowsMicrosoft.NetFramework64v4.0.30319 diyerek bu dizine gelelim. Bu dizine geldikten sonra komut satırından şu komutu konsola vereceğiz.

aspnet_regiis.exe –i

image004

Bu işlem ile .NET 4.0 ile yazılmış uygulamaları artık IIS üzerinde de çalışabilir hale getirmiş olduk.

Şimdi IIS sunucumuzu PHP çalıştırabilecek bir yapıya kavuşturma işlemine geçelim.

IIS Üzerinde PHP Çalıştırma

IIS sunucumuz ile sadece ASP veya ASP.NET ile yazılmış uygulamaları ve web sitelerini çalıştırmakla kalmayıp PHP, Perl ve Phyton ile yazılmış uygulamarı da rahatlıkla çalıştırabiliyoruz. Tabi ki bu işlemler için IIS i hazırlamamız gerekiyor. Şimdi biz konumuz gereği IIS üzerinde PHP çalıştırmayı ele alıyor olacağız, çünkü PHP web sitelerinin kodlanmasında kullanılan bir başka ve popüler olan script dilidir.

Eskiden de yani IIS 5 ve 6 üzerinde de PHP çalıştırabiliyorduk bu yeni bir şey değil dolaysıyla fakat önceki IIS sürümlerinde bu işi gerçekleştirebilmek için daha çok efor sarf ediyor, daha fazla işlem yapıyor idik.

Şuan ise PHP kurulumumuzu doğru bir şekilde yaptığımızda kurulum dosyamız IIS üzerindeki birçok ayarı da otomatik olarak tamamlayacaktır. Kurulum sonrasında herhangi bir sorun çıkmaz ise kurulum biter bitmez PHP ninde çalışabiliyor olması gerekecek.

Şimdi isterseniz ilgili işleme başlayalım.

Öncelikle PHP nin son sürümünü http://windows.php.net/downloads/ sitesinden indirelim.

Kurulum işlemimiz gayet basit bir şekilde tamamlanacak. Sadece kurulumda dikkat etmemiz gereken Web Server Setup kısmında IISFastCGI yi seçmek olacaktır.

Kurulumu tamamladı isek şimdi bir test edelim. PHP sistemimize sorunsuzca kurulmuş ve çalışmaya hazır hale gelmiş mi? test.php isimli bir dosya oluşturalım ve aşağıdaki kodu içerisine yazalım.

<?php phpinfo();?>

Şimdi tarayıcıdan bu adresi çağıralım. http://localhost/test.php diyelim.

Görüldüğü üzere PHP IIS sunucumuza entegre olmuş bir durumda ve sorunsuzca çalışmakta.

Peki her şey buradaki gibi yolunda gitmedi ve PHP kurulumumuzu da burada belirtildiği şekilde tamamlamamıza rağmen PHP ile ilgili gerekli ayarlar IIS e otomatik olarak Register olmadı. İşte o zaman buradaki ayarları elle yapılandıracağız.

Şimdi isterseniz buna değinelim.

IIS ana ekranından Handler Mappings’e tıklayalım. Sağ tarafta yer alan Action bölümünden en alttaki Add Module Mapping e tıklayalım.

Açılan pencereye aşağıda görülen değerleri girelim ve sonrasında da Request Restrictions tıklayalım ve Mapping sekmesini de resimde görülen şekilde düzenleyelim. Diğer ayarlar olduğu gibi kalabilir.

Bu işlemler ile IIS e PHP dosyalarını çalıştırırken neler yapması gerektiğini belirttik. Şuan bu ayarlar ile IIS  sorunsuz bir şekilde PHP çalıştıracaktır. Fakat küçük bir ekleme yapmamız gerekiyor Default Document kısmına. Zira bu şekilde PHP çalıştırıyor olmamıza rağmen siz bir web sitesi koyduğunuzda web dizinine IIS bu kısımda index.php tanımlı olmadığı ilgili siteyi otomatik olarak görüntüleyemeyecektir.

Şimdi dilerseniz bu kısımdaki son işlemimizi yapalım. Yapacağımız işlem gayet basit. IIS ana ekranından Default Document a tıklayalım. Açılan bölümden Add diyelim ve açılan pencereye index.php yazalım.

Bu işlemi de tamamladı isek artık PHP’nin sunucumuz üzerinde sorunsuzca çalışıyor olması gerekir. Ve ister iseniz PHP yönetimini IIS üzerinden yapmak için  http://phpmanager.codeplex.com/releases/view/59970 bu adresteki uygulamayı indirip yükleyebilirsiniz. Kurulum tamamlandıktan sonra uygulama IIS ana ekranında görünecektir.

Yönetim paneli şu şekilde

 

Görüldüğü gibi PHP ile ilgili birçok ayarı bu yönetim konsolu üzerinden yapabiliriz. Kullanmanızı tavsiye ettiğim bir IIS eklentisidir.

IIS Üzerinden Web Sitesi Host Etme İşlemleri.

Yeni bir web sitesi yayınlamak için öncelikle bu web sitesinin yayın yapacağı bir dizini önceden oluşturmamız gerekiyor. Eğer ki IIS üzerinde birden çok web sitesini host edecek isek yada sitemize ait birden çok sub domain var ise bu dizinleri bir hiyaraşik düzende hazırlamamız ilerde oluşacak karmaşaların önüne geçecektir.

Eğer sunucunuzdaki diskler iki partitiondan oluşuyor ise web sitelerinizin dizinini işletim sisteminin olmadığı dizinde ayarlamanızı öneririm. Örneğin işletim sistemimiz C partında kurulu ise web sitelerimizin yayın dizinini D de tutmak daha sağlıklı olacaktır.

Şimdi gelelim öncelikle bu dizini oluşturmaya. Ben bu dizini varsayılan dizin dışında oluşturacağım ve olası karışıklıkların önüne geçmek için burada bir site oluşturma kuralı belirleyeceğim. Bu cidden son derece önemlidir. Çünkü bir sunucuyu manage etmek o sunucuyu kurmaktan ve yapılandırmak çok daha önemlidir. Zira kurulum ve ilk konfigürasyon gibi işlemler hemen hemen herkes tarafından rahatlıkla yapılabilecek işlemlerdir. Örneğin biz bu makalede IIS kurulumunu yaptık başka makalelerimizde ise başka ürünlerin kurulumlarını yaptık ve birçok kişi ilk kez dahi bu işi yapıyor olsalar bile bu kurulumları sorunsuzca tamamlamışlardır. O yüzden işin önemli kısımları bunlar değildir.

Bazı temel kurallarımıza değinelim.

·         IIS i diğer tüm sistemlerimizi inşa ederken yaptığımız gibi ölçeklenebilir bir yapıda inşa edelim.

·         IIS üzerinden yayılacağımız web sitelerinin veya uygulamaların zaman içerisinde artabileceğini göz önünde tutalım

·         IIS üzerinde yayın yapacak sitelerin yayın yapacağı dizinler belirli bir düzene sahip olmalıdırlar. Bu gerek IIS loglarının takibi gerekse de ilgili sitenin yönetimini kolaylaştırmayı sağlayacaktır.

Bu bağlamda ben yayın dizinimi şu şekilde oluşturacağım.

Ana dizini D bölümünde tutacağım ve adına Website adını vereceğim. Ve yayınlayacağım her web sitesi bu dizin içerisinde yer alacak ve şu şekilde olacak. Ayrıca dosya üsten miras alacak şekilde IIS user kullanıcısını da

D:Website

D:Websitedomain.com

Website klasörünün altına domain ismini taşıyan bir klasör açacağım ve bu klasörün içerisine de  www, log ve db isimli 3 klasör daha açacağım. Şimdi bu klasörlerin içeriğinde neler olduğuna değinelim.

www : Bu klasör içerisinde yayın yapacak web sitemizin dosyaları yer alacaktır.

log : Web sitesine ait IIS loğları bu dizinde tutulacaktır. Böylece bir sitenin log doslarına erişmek istediğimizde bu o log dosyalarının hangileri olduğunu kolayca bulmuş olacağız.

db : Bu klasör içerinde ise Database bağlantı bilgilerini tutabilir veya Access gibi bir database türü kullanıyorsanız Access dosyasını burada barındırabilirsiniz.

Şimdi isterseniz görsel öğeleride kullanarak bir web sitesi oluşturma işlemini yapalım. Önce belirtiğimiz gibi web dizinimizi oluşturalım.

Oluşturduğumuz dizin bu şekilde olmalı.

Şimdi web sitemizi yayınlamak için IIS üzerinden gerekli işlemleri detaylı olarak inceleyelim. Ve dikkat etmemiz gereken unsurları vurgulayalım.

IIS yönetim konsolundan sol panelde sunucu adıma sağ tıklıyor ve Add Website diyerek gerekli işleme başlıyorum.

Şimdi bu alanda dikkat etmemiz gereken işlemlere değinelim, çünkü bu alanda yapılan ilk işlerden sonra kişilerden genelde şu tür sorular geliyor. Site adıma www koyduğumda sitem açılmıyor veya tam tersi http://domain.com dediğimde sitem açılmıyor gibi. Yada yanlış seçilen Application Pool uygulamaları sebebiyle .NET 4.0 la yazılmış bir web sitesi veya uygulaması için hata alınması gibi. Bunlara değineceğiz şimdi.

Öncelikle isterseniz bu siteyi oluştururken hangi değerleri hangi kriterlere göre girdik ona değinelim. Bu bölümleri uzun soluklu ele alıyor olabiliriz ama kesinlikle tavsiyem her satırını dikkatlice okumanız yönündedir.

Site Name

Site name e istediğiniz bir simi verebilirsiniz. Benim sitem, Ahmet’in sitesi gibi. Fakat biz bu tür isimlendirmelere karşıyız. Bunların bir standardı olmalı. Aynen yazılımcıların Kodlama Standartlarının olması gibi. Çünkü biz sürdürülebilir bir süreç yapısında sistemler ve networkler inşa etmek zorundayız zira çalıştığımız şirketler bizlerin üzerlerine tapulu değildir ve bu şirketten bizler ayrıldığımızda yerimize getirilecek olan Sistem ve Network uzmanları işlerin aksamadan devamlılığını sağlayabilsin. O yüzden buraya vereceğiniz ismi mutlaka domanin ne olduğunu ve kime ait olduğunu belirtecek şekilde seçiniz. Tutup ta site1, site2, site3 gibi isimler vermeyiniz zira bu isimlerin hangi siteleri ifade ettiğini siz biliyor olsanız bile sizden sonra gelecek bir Sistem uzmanı bunu bilmeyecektir. Bu şekilde çalışan bir kişi iseniz büyük ihtimalle dokümantasyonda yapmıyorsunuzdur ki bu sizden sonra gelecek kişilerin işlerini bir hayli zorlaştırır. Dolaysıyla işlerinizi ya dokümantasyona dayalı yapın ya da size dokümantasyon gerekliliğini en aza indirgeyecek şekilde sisteminizi tasarlayınız. İşveren firmalarında çalıştırdığı kişilerden bunu istemeleri son derece önemlidir. Yoksa zamanla işçilerinize bağlı bir firma haline dönersiniz ki buda son derece risklidir!

Application Pool

Web sitenizin çalışması için bir uygulama havuzunu siz seçebilir veya IIS’in bu siteye ait bir uygulama havuzu yaratmasına izin verebilirsiniz. Bizim burada çoklu web sitesi yayınlayan kişiler için en önemli uyarımız her web sitesi için IIS’in uygulama havuzu yaratmasına izin vermeleridir. Bunu önermemizin temel sebebi şudur. Eğer bir web sitesi yapısındaki veya ayarlarındaki bir aksaklık sebebiyle bu uygulama havuzunu down durumuna getirir ise yani çalışmaz durma getirir ise bu Application Pool’a bağlanmış tüm web sitelerinin de yayını durur. Aslında ben makalemizin bu kısmında Application Pool ayarlarına çok kapsamlı değinecektim fakat bunu son kısma bırakıyorum. Çünkü bunu da ele alır ise makalemizin bu kısmı bir hayli uzayacak. Ve Application Pool ayarlarını performans ve güvenlik konularıyla ele almak daha mantıklı ve verimli olacaktır. O yüzden bu bölümden bu Application Pool ayarlarını çıkartıyorum. Burada yine dikkatinizi çekmek istediğim bir diğer konu ise oluşturulan Application Pool için uygun .NET versionunu seçmenizdir. .NET 4.0 ile geliştirilmiş, derlenmiş bir uygulama için Application Pool daki .NET Framework yapısınında .NET 4.0 ile ilişkilendirilmiş olması gerekiyor. Bu işlemle ilgili seçimi Application Pool lardan ilgili Pool a sağ tıklayıp Advanced Settings diyerek ayarlayabilirsiniz.

Physcial Path

Fiziksel path te web sitemizin yayın yapacağı ana dizini seçiyoruz.

Host Name

Yayın yapacak olan web sitemizin host adını yani erişilecek olan adını yazıyoruz. Burada iki önemli konuyu belirteceğim, zira ilk kez IIS ile web sitesi yayınlayacak kişilerin sordukları temel sorulardan biriside “IIS ile web siteni oluşturdum fakat domain adını yazınca siteye erişemiyorum ama IP adresini yazınca site geliyor” sorusudur. Bu sorunun çözümü için burada belirttiğiniz hostname içinde mutlaka DNS kısmında ilgili kayıtları açınız! Bu kayıtlar www host A kaydı ile boş Host A kaydıdır. İkinci olarak ise sitenize hem www.domain.com hemde http://domain.com yazıldığında erişilebilmesi için Site Bindingsten bu Hostnameleri belirtmektir. Eğer birini belirtirde diğerin belirtmez iseniz sitenize örneğin http://domain.com dan erişilebilecek iken www.domain.com dan erişilemeyecektir.

Bu düzenlemeyi Websitenize sağ tıklayıp Edit Bindings e tıklayarak yapabilirsiniz.

Bu işlemi de tamamladıktan sonra artık web sitemiz yayına hazır hale gelmiştir.

Temel IIS Ayarları

Aslında temel IIS ayarlarının bir kısmını IIS üzerinden web sitesi yayınlama işlemi yaparken işledik. Bir kısmını da PHP çalıştırma işlemleri yaparken gördük. Şimdi temel olarak merak edilen birkaç ayar ve işleme değinelim. Tekrar vurgulayayım bunlar temel ayarlarımız zira IIS; üzerinde binlerce değişik ayarların yapılabileceği bir sunucudur. Makalemiz süresincede birçok farklı temel ayarları yine işlemlerimiz sırasında göreceğiz. Burada vereceğimiz temel ayarlar ise bu işlemler sırasında değinmeyeceğimiz genel birkaç ayardır. Şimdi bunlara değinelim.

Bir Dosya Uzantısını Varsayılan Dosya Türü Olarak Ayarlamak

Bir web dizininde default.aspx ve bir tanede login.aspx dosyası olsun diyelim. Site ziyaretçilerinin öncelikle sisteme login olunması istenilsin. Fakat bunun için http://domain.com/login.aspx yazmak zorunda kalmadan yapabilsinler. İşte burada yapılacak işlem login.aspx i varsayılan dosya türlerine eklemek ve en üst sıraya çıkartmaktır. Bu işlemi yapabilmek için Default Document e çfit tıklayalım ve Add diyerek login.aspx dosyasını ekleyelim ve bu dosyayı da diğer varsayılan dosyaların en üstüne getirelim. Artık kullanıcılarımız http://domain.com dediklerinde direk login.aspx sayfasına yönlendirilmiş olacaklardır.

İpucu : Bu işlemi önce Default Web site a uygular iseniz sonrasında oluşturacağınız her web sitesi içinde varsayılan dokümanlar arasına login.aspx ide otomatik olarak eklemiş olursunuz.

Web Sitesi Yönlendirmesi İşlemleri

IIS elementlerine değinirken bu konuyla ilgili bir örnek vereceğimizi belirtmiştik ve Exchange OWA için yönlendirme yapacağımızı söylemiştik. İsterseniz şimdi bu yönlendirme işleminin nasıl yapıldığına değinelim.

Yönlendirme yapılacak olan web sitesine tıklayalım ve IIS ana panelden http Redirect e tıklayalım ve yönlendireceğimiz dizinin adını belirtelim. Yani şu şekilde bir işlem yapmamız gerekiyor OWA yönlendirmesi için. Başka bir dizinide tabiki bu şekilde belirtebilirsiniz.

Belli Bir IP yi veya IP Bloğunu Erişeme Engelleme

Web sitenize belli bir IP’nin veya IP bloğunun erişimini engelleme ihtiyacımız doğmuş olabilir yada bir web sitesi için, bir sub domain için tam tersi bir şekilde sadece belli bir IP adresinin erişimini istiyor olabiliriz. Bunlar güvenlik gereksinimlerimize göre değişir. Bu işlemi yapmak yani web sitemiz için bir erişim veya reddetme kuralı belirtmek için IP Address and Domain Restrictions e çift tıklıyoruz. Sağ panelden Add Allow Entry diyerek bir erişim kuralı Add Deny Entry diyerekten bir engelle kuralı belirtebiliriz. Ben örnek olması açısından sadece bir IP bloğunun engellenmesini ele alacağım. Sizlerde ihtiyaçlarınız doğrultusunda bu ayarı değiştirebilirsiniz. Burada belirtmek istediğim bir not var, bu bölümdeki kuralların sıralaması önemlidir. Bir IP yi erişim için listeye eklemiş daha sonrada bir IP bloğunu reddedilen kurallarda belirtmişseniz erişim izni verdiğin IP sadece engelleme kuralının üzerinde olduğunda belirtilen siteye erişebilir.

Şimdi örnek olması açısından ben bir IP bloğunu engellenenler listesine ekleyeceğim.

İşlem için Add Deny Entry diyorum ve şu verileri giriyorum.

İpucu : Subnet mask ile oynayarak bu IP bloğundaki erişime engellenecek IP sayısını değiştirebilirsiniz.

Makalemizin sonuna gelmiş olduk ve bu kısmına kadar öğrendiklerimizi ele alır isek IIS’i bir sunucu rolü olarak kurmayı, temel IIS elementlerinin işlevlerini, IIS üzerinde PHP çalıştırmayı ve sağlıklı bir şekilde IIS üzerinden web sitesi yayınlamayı öğrenmiş olduk.

Exit mobile version