21 Ağustos 2015 Cuma

CodeIgniter & Nginx konfigürasyonu


Bu yazıda Nginx Server ve CodeIgniter framework'ü hakkında görüşlerimi ve konfigürasyon ayarlarlarını paylaşacağım.

Nginx?

Nginx yüksek eş zamanlılığa(concurrency) ve düşük hafıza tüketimine odaklanan bir web server'idir. Özellikle işlem hızı ve çok sayıda bağlantıyla başa çıkma yeteneği gerektiği zamanlarda Nginx ideal bir seçenek olarak önümüze çıkar.


CodeIgniter?

CodeIgniter'a gelecek olursak, yüksek performanslı, düşük ayakizine(hafıza kullanımı) sahip  tatmin edici bir dökümantasyona sahip olan PHP web framework'üdür.


İçinde bulunduğum son projede bu iki teknolojiyi tercih ettim. Kullanma sebeplerimi sayacak olursam:
  • Üzerinde çalıştığımız mobil uygulamanın yüksek performansa sahip bir web servise ihtiyaç duyması
  • Bağımlılığı minimum olan bir framework'e ihtiyaç duymam (PEAR ve benzeri büyük ölçekli kütüphaneler olmaksızın PHP5.4+ yüklü her sunucuda çalışacak şekilde olması)
  • Web servisin yanında mobil uygulama verilerinin yönetimi ve monitör edilmesini sağlayacak bir yönetim panelini hızlıca yapmamı sağlaması

Özellikle 3. seçenek slim gibi bir micro framework kullanmama sebebim sayılabilir.

Kurulum

Nginx ve PHP

Nginx ve PHP kurulumunu henüz yapmadıysanız bu makaleyi okumanızı öneririm.

CodeIgniter

CodeIgniter kurulumu çok kolay! Son versiyonunu(3.0.1) resmi websitesinden indirip server'inize kopyalamanız yeterli.

Konfigürasyon

Nginx

Nginx, Apache'deki Virtual Host mantığında çalışan server blokları kullanır. Server bloklarını websitenizin tarifini yapan dosyalar olarak görebilirsiniz.

Varsayılan olarak nginx websitenin tanımının yapıldığı server blokları
etc/nginx/sites-available/ yolunda bulunur. Bu klasör default dosyasına sahiptir.  Bu dosya bir website ile ilgili tüm gerekli bilgileri bulundurur.

Şimdi default adlı dosyaya girip CodeIgniter kullanan websitemiz için gerekli konfigürasyonu yapalım. 

server {
        #server'in dinleyeceği port
        listen       80;

        #server'in hizmet vereceği adres bu örnekte http://localhost
        server_name  localhost;

        #CodeIgniter projenizin adresi
        root   /var/www/html/ci;
        autoindex on;
        index index.php;
 
        location / {
 
           try_files $uri $uri/ /index.php;
 
           location = /index.php {
 
              fastcgi_pass   127.0.0.1:6969;
              fastcgi_param  SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name;
              include        fastcgi_params;
           }
        }
 
        location ~ \.php$ {
            return 444;
        }
}

Dosyayı kaydettikten sonra ayarları devreye sokmak için aşağıdaki komutu terminalden çalıştırıyoruz:

$ sudo service nginx restart

CodeIgniter

Son olarak application/config/config.php 'yi aşağıdaki gibi düzenliyoruz:

...

$config['base_url'] = "";
$config['index_page']  = "";
$config['uri_protocol'] = "AUTO";

...


Evet kurulum bu kadar. :)  İlerleyen yazılarda bu projede kullandığım kütüphanelerden bahsetmeyi planlıyorum.

Sağlıcakla kalın.

Hiç yorum yok:

Yorum Gönder