Windows Server 2008 uzerine IIS7 ile PHP yi GUVENLİ Kullanma
Merhabalar,
Kullandiginiz serverde Plesk gibi bir araci program kullanmiyorsaniz guvenlik ayarlariniza cok dikkat etmelisiniz. Normalde bunu sizin yerinize Plesk gibi programlar yapar ama o yoksa isinizi şansa kalmasın.
Server 2008 Uzerine PHP + MySQL Kurup IIS7 ile calistirinca gayet guzel calisiyor. Ama sitelerin birinden include metoduyla herhangi bir yere girip dosya cekmeniz mumkun. Burdan dogacak kıyameti siz düşünün…
Normalde Apache + PHP kullandiginizda eğer PHP FastCGI olarak çalışmıyorsa
php_admin_value open_basedir “d:\webspace\volkanaltan.com”
Yazarsaniz kullanici bu dizinden yukari cikamaz. Ama maalesef IIS7 de veya Apache uzerinde php yi fastcgi olarak calistirirsaniz bu komutlar calismaz http://www.zend.com/en/support/knowledgebase.php?kbid=252&view_only=1
Peki bunun önüne geçmek için ne yapmak gerekiyor ?
Benim anlatacagim Server Web 2008 IIS + PHP
Bilgisayar üzerine sağ tıkla -> Manage ->Configuration -> Local Users And Group
Groups üzerine sağ tıkla -> Yeni grup ekle
Adına : IIS_WPG
İçine -> LOCAL SERVICE , NETWORK SERVICE ekliyoruz
Users Tabına Sağ tıkla -> New User
Burda her site için bir user oluşturuyoruz. Ama bu userlar IIS kullanıcısı olacagi için isimlendirmeyi şöyle yapiyorum. IUSR_volkanaltancom
Şimdi bu usere sağ tıklayıp Properties den “Member Of” tabına geçiyorum
Profile Tabına geçip ordada sitenin yolunu veriyorum.
Şimdi IIS üzerinde işlem yapacağız.
Bilgisayar üzerine sağ tıkla -> Manage -> Roles -> Web Server -> IIS -> Server Name
Sites sağ tıkla -> Add Web Site
Physical path e d:\volkanaltan.com\www yazıp Test Settings’e tıklıyoruz.
The server is configured to use pass-through authentication with a built-in account to access the specified physical path. However, IIS Manager cannot verify whether the built-in account has access. Make sure that the application pool identity has Read access to the physical path. If this server is joined to a domain, and the application pool identity is NetworkService or LocalSystem, verify that <domain>\<computer_name>$ has Read access to the physical path. Then test these settings again.
Gördüğünüz gibi yetkisizlik durumu söz konusu.
Bu kez “Connect as” a tıklıyoruz. Ve daha once oluşturduğumuz useri seçiyoruz.
Eğer site kırmızı olursa
Sağdaki “Basic Settings”e tıklayıp Ok’a basın.
Şimdi klasör ayarlarına bakıyoruz;
Site -> Sağ tıkla Edit Permissions
Security tabına geçtiğinizde sizing users a tam yetki verildiğini göreceksiniz. Ama bu işin başında sizin web sitelerini tuttuğunuz klasöre yetki olarak “Network Service”, “Users” Okuma yetkisini vermeniz gerekmektedir.
Olayımız bitmiştir. Sorularınız olursa sorabilirsiniz.
Daha iyi görmek için : http://docs.google.com/View?id=dgndh2qr_99f7vrr47x