Cuma, 15 Mayıs 2009

Windows IIS7 Üzerine CodeIgniter Kurulumu

 

Linux/Apache kullanıcıları ile Windows IIS kullanıcıları arasında CodeIgniter kurulumu açısından en büyük fark url yönlendirme konusundur. Linux/ApacheApache kullanıcıları .htaccess dosyası ile kendi uygulamalarını yönlendirirlerken, Windows IIS kullanıcıları için bu konu biraz farklı halledilir.

Windows IIS 7 üzerinde CodeIGniter kullanmak isteyenler öncelikle işe IIS yönetim paneli yardımı ile FastCGI modülü yükleyerek başlanmalıdır. Daha sonra ise URL Rewrite Module - Go Live `ı indirip yüklemeleri gereklidir. Böylece yazacakları web.config dosyası ile .htaccess e benzer gönlendirme yapabilirler.

Buraya kadar yükleme işlemleri ile geldikten sonra, sıra web.config dosyasının hazırlanmasına geldi. web.config dosyası uygulamamızın bulunduğu ana kök dizini içinde yer alır. Aşağıda benim kullandığım CodeIgniter için yazdığım bir web.config görmektesiniz.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
    <rule name="MyRule">
       <match url="^(.*)$" />
        <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
    </rule>
            </rules>
        </rewrite>
 </system.webServer>
</configuration>

Bu dosya ile index.php değerine gelen controller ve method değişkenlerini düzgün adreslere gönderebildiğiniz gibi adres satırında yer alan değişkenleri de controller içinden çağırabilirsiniz.

Yorumlar

Tesekkurler, gayet saglikli calisiyor. Windows Sunucu'dan hiz haz etmiyorum lakin hosting firmasinin cahilligi yuzunden kullaniyorum.


Tesekkurler,
Yigit.

Hocam makeliniz için teşekkür ediyorum.
Fakat benim merak ettiğim windows altında apache kullannanlar nasıl kuracak?
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
 
 */
          
class Blog extends Controller {

  function index()
  {
    echo 'Makale sitemize hoş geldiniz.';
  }

}

?>
böyle bir kod yazdım,
Fatal error: Class 'Controller' not found in ....\ci\application\controllers\blog.php on line 6
böyle bir hata verdi. anlaşılan kütüphaneleri bulamıyor.
bunun sebebi windows altında apache kullanmam olabilr mi?

@Ali Koca: CodeIgniter 2.0 sürümlerinden sonra Controller ismini CI_Controller olarak değiştirdi. Eğer yeni sürümlerden kullanıyorsan şöyle yazmalısın:


class Blog extends CI_Controller {  

gibi...

Yorum Ekle