Merhaba arkadaşlar, yazımızda IIS 7 ile birlikte gelen PHP desteğinin nasıl kullanıldığından bahsedeceğiz. Bildiğiniz gibi IIS 6’da da PHP cgi olarak sorunsuz çalışabiliyordu. IIS 7’de ise FastCgiModule kullanıldığından dolayı bir takım performans sorunlarının önüne geçmiş oluyoruz. Gerçi Microsoft IIS 6’da da bir FastCgiModule eklentisi sundu. Fakat biz hem .net uygulamaları hem de PHP uygulamaları açısından daha iyi olduğu için IIS 7’de ki kurulumunu göreceğiz.
İlk olarak eğer IIS 7’ye cgi eklentisini kuralım.
Server manager’ı açtıktan sonra add role services’e tıklayarak cgı’yı seçelim.
next ve install diyerek kurulumu başlatalım.
Daha sonra PHP’yi indirelim. www.php.net/downloads.php
Burada dikkat edilmesi gereken nokta PHP’nin Non-thread-safe paketini indirmek.
Kuruluma geçelim.
İstediğiniz her hangi bir dizine kurabilirsiniz. Ben C:PHP dizisine kuracağım.
IIS FastCGI’ı seçerek geçiyoruz.
Eğer daha sonra Phpmyadmin’i kullanmayacaksanız her hangi bir Extensions yüklemenize gerek yok.
Eğer Phpmyadmin’i kullanacaksanız
GD2
Multı-Byte String
Mcrypt
MySQL
Extensions larını seçmemiz gerekiyor.
Kurulumu tamamlıyoruz.
Daha sonra PHP’nin IIS 7 ile birlikte çalışabilmesi için kurulum dizinindeki php.ini dosyasını açıp içerisinde bazı düzenlemeler yapmamız gerekiyor.
İlk olarak fastcgi.impersonate satırının başındaki ; işaretini kaldırıp değerini 1 olarak atayacağız.
fastcgi.impersonate =1
Biraz yukarıdaki cgi.fix_pathinfo satırının da başındaki ; işaretini silerek değerini 1 yapıyoruz.
Php dosyalarının çalışacağı yeri göstermemiz gerekiyor. open_basedir satırını bularak yine başındaki; işaretini silerek değerini C:inetpub olarak değiştiriyoruz.
Son olarak cgi.force_redirect satırını bulmamız gerekiyor. Fakat dosya içerisinde bu kelime birkaç tane olduğundan resme bakarak kontrol edin. Yine başındaki ; işaretini sildikten sonra değerini 0 yapıyoruz. Böylelikle cgi IIS’in üzerindeki güvenlik yönergelerini kullanarak çalışacaktır.
Dosyayı aynı dizine php.ini adıyla kaydedin.
Şimdi IIS Manager’ı açıp Handler Mappings’e tıkladıktan sonra
Add Module Mapping diyelim.
Request path: *.php
Module: FastCgiModule
Executable(optional): C:PHPphp-cgi.exe
Name: FastCGI PHP Module
Yes diyerek module ekleyelim.
Şimdi php uzantılı bir dosya oluşturarak çalışıp çalışmadığını kontrol edelim.
Notepad açarak <?php phpinfo(); ?> yazdıktan sonra C:inetpubwwwroot dizinine info.php adıyla kaydedelim.
Son olarak http://localhost/info.php
Eğer tüm adımlar eksiksiz yaptıysanız hatasız çalışacaktır.
Böylelikle hosting firmamızda yüksek performanslı olarak tek server üzerinde php ve asp uygulamaları yayınlayabiliriz.
Eğer php uygulamalarında hatayla karşılaşıyorsanız, büyük ihtimalle sorun kodlardadır.