TürkTelekom Çerezlerini Engellemek

TürkTelekom, uzun zamandır insanların makinalarına izinsiz çerez (cookie) bırakıyor. Hatta işi daha da ileri götürüp; İnternet bağlantınızın arasına girerek sizi kendi sitelerinde reklam sayfalarında yönlendiriyorlar.

TürkTelekom’a ait çerezleri engellemenin en güzel yolu, tarayıcınızda TürkTelekom’a ait alanadlarını engellemek olacakktır. Böylece en azından TürkTelekom’un sizi takip etmesini ve hakkınızda bilgi sahibi olmasını engelleyebilirsiniz.

Google Chrome için takip etmeniz gereken adımlar şu şekilde (diğer tarayıcılar için de benzer adımlar takip edilebilir);

Settings / Show advanced settings… tıklayarak gelişmiş ayarları açın.

Google Chrome Ayarlar

Privacy / Content settings… tıklayarak içerik ayarlarının olduğu pencereyi açın.

Google Chrome Ayarlar - İçerik Ayarları

Burada ilk sıradaki Cookies bölümünde Manage exceptions düğmesine tıklayarak çerez yönetim bölümüne geçebilirsiniz.

Google Chrome Ayarlar - İçerik Ayarları

Bu bölümde yer alan Add a hostname kutusuna [*.]ttnet.com.tr yazıp sağ taraftan “behavior” olarak Block seçin.

Google Chrome Ayarlar - Çerez Engelleme

OK diyerek pencereleri kapatın.

[*.]ttnet.com.tr şeklinde yazdığınız için, TTNet’e ait tüm siteler, altalanadları vs. çerezleri engellenmiş olacak. Mesela; sürekli araya giren reklamlar için http://bilgi.ttnet.com.tr/ altalanadında çerez engellemsi aktif hale gelecek. Bundan sonra Google Chrome kullanıcısı olarak ttnet.com.tr adresinden hiçbir çerezi kabul etmeyeceksiniz.

Tarayıcı (Browser) Savaşlarında Son Durum

Tarayıcı savaşları, biz geliştiriciler lehine ilerlemeye devam ediyor. Ağustos – Ekim 2012 tarih aralığında, Internet Explorer ve diğer tarayıcılar arasındaki durum aşağıdaki grafikte yer alıyor. Google Chrome, Internet Explorer’ı çoktan geçmiş durumda. Firefox ise ikincilik için kıyasıya bir rekabete girişmiş.

StatCounter Ağustos - Ekim 2012 arası 3 aylık tarayıcı istatistiği

Microsoft’un Internet Explorer 10 sürümünü sadece Windows 8 yüklü makinelerde kullanıma açmasının sonuçlarının da biz geliştiriciler için olumlu yönde olacağını düşünüyorum. İşletim sistemi güncellemesi yapmak istemeyen ya da yapamayan bir çok kullanıcı, eski Windows’lar üzerinde daha yeni tarayıcılara yönelecektir. Google Chrome zaten bir kaç aydır Internet Explorer’ın önünde seyrediyordu. Artık hem aradaki farkı biraz daha açacak, hem de Firefox’a Internet Explorer’ı yakalayacak bir fırsat doğdu.

Mac OS X Üzerinde Xdebug Kurulumu

Xdebug eklentisi; PHP geliştiricileri için en gerekli eklentilerden birisidir, ancak ne yazık ki sistem kurulumunda varsayılan olarak kurulu şekilde gelmez. Mac OS X üzerinde kurulumunu gerçekleştirmek için neler yapılması gerektiğine bakalım.

Resmi Xdebug kurulum dokümanında, PECL üzerinden rahatlıkla kurulumu gerçekleştirebileceğiniz yazıyor;

Ancak Mac OS X üzerinde XCode 4.3 (ve üzeri) kurulu makinelerde, bu komut aşağıdaki hatayı verecek ve Xdebug kurulumu yarıda kalacatır;

Bunun sebebi; XCode 4.3′ten itibaren, gerekli tüm geliştirici araçları kurulmuyor. XCode 4.2′de bu sorun yoktu ancak 4.3 ve sonraki sürümlerde (nedense) autoconf ve diğer bazı gerekli UNIX araçları varsayılan olarak kurulmuyor. Autoconf olmadığı için de Xdebug kurulumunda hata veriyor.

Bu durumda öncelikle autoconf kurulumunu gerçekleştirmek gerekiyor.

Autoconf Kurulumu

  1. http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz adresinden en son versiyonu indirip bir klasöre açıyoruz.
  2. Açtığımız klasörün içerisine girip kaynak kodları derleyip kurabilmek için aşağıdaki üç komutu sırasıyla çalıştırmak gerekiyor;

Not: Bu üç komutu da sıkıştırılmış dosyayı açtığınız klasörün içerisinde çalıştırmanız gerekiyor.

Xdebug Kurulumu

Autoconf kurulumundan sonra Xdebug kurulumunu gerçekleştirebiliriz. Aşağıdaki komut yardımıyla Xdebug kurulumunu gerçekleştiriyoruz;

Bir önceki aşamada aldığımız hataları almadan kurulumun başarıyla gerçekleşmiş olması gerekiyor.

PHP Ayarları

Xdebug kurulumunu gerçekleştirdik ancak PHP’nin Xdebug’dan henüz haberi yok. PHP’ye Xdebug kurulumunu tanıtmamız ve 1-2 ayar gerçekleştirmemiz gerekiyor.

php.ini dosyasını açıp en alta aşağıdaki satırları ekleyin. Eğer daha önceden Xdebug ile ilgili bir ayar varsa; önce ilgili ayarı ; ile yorum altına alıp bu satırları dokümanın en sonuna ekleyebilirsiniz;

Burada zend_extension değişkeni içerisinde verilen yolun sizin makinenizdeki tam yol olmasına dikkat edin. Genellikle Mac OS X için yukarıdaki şekilde olacaktır, ancak farklı bir PHP sürümü ya da kurulumu gerçekleştirdiyseniz, kendi makinenize özel yolu yazmanız gerekiyor.

Bir de hata mesajlarının doğru görüntülenebilmesi için php.ini içerisinde html_errors = On şeklinde olması gerekiyor.

Tüm işlemler bittikten sonra Apache sunucusunu yeniden başlatıyoruz;

Xdebug Test

Böylece Xdebug kurulumumuz tamamlanmış oldu. Kurulumu hızlıca test edebileceğimiz bir dosya hazırlayalım. Aşağıdaki satırları boş bir PHP dosyasına ekleyip çalıştırırsanız Xdebug hata ekranıyla karşılaşmanız gerekiyor;

Özet

  1. Autoconf http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz adresinden indir ve kur (./configure; make; sudo make install;)
  2. Xdebug kur (sudo pecl install xdebug)
  3. php.ini dosyasında PHP ayarlarını yap.
  4. Apache sunucusunu yeniden başlat (sudo apachectl restart).
  5. Kurulumu test et.

Mac OS X Mountain Lion Güncellemesinden Sonra Apache/PHP/MySQL Ayarları

Mac OS X her yeni sürüm yüklemesinden sonra Apache/PHP/MySQL ayarlarım sıfırlanıyor. Bunun benden kaynaklanan bir sorun mu, yoksa Apple’ın işgüzarlığı mı olduğunu bilemiyorum. Dün Mac OS X Mountain Lion güncellemesini yaptıktan sonra, bir önceki güncellemede olduğu gibi yine tüm ayarlarımı kaybettim. Bu durumu ilk yaşadığımda (Snow Leopard’dan Lion güncellemesi sonrası), nedenini çözmek için saatlerimi harcamıştım. Şimdi ise sadece bir kaç dakikada eski ayarlara dönmem mümkün.

1. Apache

Apache ayar dosyasında PHP desteğini aktifleştirmek, ayrıca sanal site dosyasını da yine ayar dosyasının içerisine dahil etmek gerekiyor.

2. PHP/MySQL

php.ini dosyası da orjinal fabrika ayarlarına geri döndüğü için, daha önceden yapılmış ayarların hepsi kayboluyor.

Öncelikle fabrika ayarlarında yer almayan php.ini dosyasını oluşturmak gerekiyor. Bunun en iyi yolu; PHP kurulumuyla birlikte gelen örnek php.ini dosyasının ismini değiştirmek.

Bu şekilde php.ini dosyasını oluşturduktan sonra gerekli ayarları düzenleyebiliriz. Benim yaptığım ayarlar aşağıdaki şekilde, sizin ayarlarınız bundan farklıysa kendi ayarlarınızı ekleyebilirsiniz.

Eğer PEAR kullanıyorsanız, bu durumda PEAR yolunu da güncellemeniz gerekecektir.

Bu ayarların ardından MySQL hatasının giderilmesi gerekiyor. Orjinal PHP kurulumunda MySQL socket yolu /var/mysql/mysql.sock şeklinde belirtilmiş durumda. Ancak bu yolda ilgili dosyayı bulmanız mümkün değil çünkü varsayılan olarak bu klasöre yazma hakkı yok. O yüzden de dosyanın oluşturulabileceği yolu yeniden tanımlamak gerekiyor.

Son olarak Apache sunucuyu yeniden başlatarak tüm bu ayarların aktifleşmesini sağlıyoruz.

Yıllardır bir çözüm bulunamayan Mac OS X güncellemelerine böylece hızlı bir çözüm bulmuş oluyoruz. İsterseniz, düzeneleme yaptığınız dosyaların birer yedeklerini alarak, güncelleme sonrasında o yedeklere geri dönmeniz de mümkün.

FTP’den Vazgeç, Dosyaları Git ile Yükle

90′larda hepimiz dosyalarımızı FTP üzerinden yükler, canlı sunucudaki dosya güncellemesini FTP üzerinden hallederdik. Hatta o kadar ileri giderdik ki, çok küçük değişiklikleri direk FTP üzerinden canlı sunucuda gerçekleştirirdik.

Bu işlem elbette hataya çok açıktır. FTP üzerinden dosya yüklerken; hangi dosyaların güncellendiğini ve sunucuya hangi dosyaların yükleneceğini tam olarak bilemeyebiliriz. Ya da yükleme esnasında gözümüzden kaçan dosyalar olabilir. Bu da canlı site üzerinde çok ciddi sorunlara yol açabilir.

Dosya yükleme işlemini otomatik olarak halletmek en mantıklısı olacaktır. Git kullanarak güncellenen dosyalarınızı otomatik olarak sunucunuza yükleyebilirsiniz. Üstelik Git’in tüm nimetlerinden faydalanarak “canlı” veya “test” gibi değişik ortamlarınıza dosya yükleme işlemlerinde de otomasyondan faydalanabilirsiniz.

Siteyi kodlamaya sıfırdan başlayacağınızı varsayarak neler yapılması gerektiğine tek tek bakalım.

Yerel makinenizde yapılması gerekenler

Sitenizin geliştirmesini yaptığınız makinede öncelikli olarak Git deposunun oluşturulması gerekecektir. Geliştirmeyi yapacağını klasöre gelip Git deposunu oluşturun. Ben kendi makinemde ~/Sites/gitapp altında gerekli işlemleri yapacağım, siz kendi klasör yapınıza göre yolu değiştirebilirsiniz.

mkdir ~/Sites/gitapp && cd ~/Sites/gitapp && git init

Geliştirme yapacağım klasörü oluşturup Git depo olarak tanımladık. Sonrasında örnek olması için ufak bir README dosyası ekleyip kısa bir içerik girelim.

touch README

Eklediğimiz bu dosyayı Git indekse ekliyoruz;

git add README

Sonrasında da yaptığımız tüm değişiklikleri Git’e bildiriyoruz (commit).

git commit -m "README dosyasi"

Buraya kadar herşey standart Git işleyişi ile aynı. Git deposunu oluşturduk, dosyaları düzenledik ve değişen dosyalarımızı Git indekse alarak Git’e bildirdik. Bundan sonrasında sunucu üzerinde bazı ayarlar yapmamız gerekiyor.

Sunucuda yapılması gerekenler

İlk olarak sunucuya SSH ile bağlanıp yeni bir Git deposu oluşturmak gerekiyor. Yalnız dikkat edilmesi gereken bir nokta; oluşturacağınız bu yeni Git deposunun güvenlik açısından internet üzerinden erişime açık olmaması gerekiyor. Bu klasör; yerel makinemizde yaptığımız tüm güncellemelerin bir kopyasını tutacak olan Git deposu olacak. O yüzden de internete kapalı bir klasör olması güvenlik açısından önemli.

ÖNEMLİ: Sunucu üzerindeki Git deponuzu dışarıya kapalı bir klasörde oluşturun.

Öncelikle Git depolarımızı tutacağımız ve dışarıya kapalı klasörleri oluşturalım.

mkdir /home/KULLANICI/git/ && mkdir /home/KULLANICI/git/gitapp && cd /home/KULLANICI/git/gitapp && git init --bare

Sonrasında sunucu üzerinde kodunuzu sunumu yapılacak klasöre kopyalayacak hook eklemesini yapmamız gerekiyor.

vi /home/KULLANICI/git/gittest.git/hooks/post-update

Bu ekleme sayesinde; Git güncelleme işlemini bitirdikten sonra ne yapması gerektiğini bilecek. Biz; güncellemeden sonra dosyaların ilgili klasöre otomatik olarak kopyalanmasını istiyoruz.

GIT_WORK_TREE=/home/KULLANICI/htdocs/gitapp git checkout -f

Burada yer alan /home/KULLANICI/htdocs/gitapp klasör yolu; yüklü web sunucusunun sitenizi sunacağı klasörün tam yoludur. Yani eğer siteniz /var/www/gitapp klasöründe barındırılacaksa, bu durumda yolu bu şekilde değiştirmeniz gerekecektir.

ÖNEMLİ: Bu klasör mutlaka sunucu üzerinde olmalıdır, Git sizin için bu klasörü oluşturmaz.

post-update sayesinde, güncelleme sonrasında çalıştırılacak komutu verebiliyoruz. Burada söylediğimiz şey; “Git güncellemesinden sonra, /home/KULLANICI/htdocs/gitapp klasörünü de son güncellenen hale getir”.

Bu dosyanın çalışabilmesi için gerekli izinleri verelim;

chmod +x /home/KULLANICI/git/gitapp/hooks/post-update

Sunucu üzerinde yapılacaklar bu kadar. Sadece genel bir Git deposu oluşturduk ve güncelleme sonrasında ne yapılacağını Git’e anlattık. Tekrar yerel makinemize dönebiliriz.

Yeniden yerel makinedeyiz

Bu aşamada artık Git’e uzak bağlantı kurulacak sunucuyu tanıtmamız gerekiyor;

git remote add live ssh://*protected email*/home/KULLANICI/git/gitapp

Yukarıdaki örnekte “live” olarak verdiğimiz sadece bir tanımlama, siz aklınızda kalacak şekilde istediğinizi verebilirsiniz. Genellikle canlıya atılacak dosyalar için “live”, test ortamı için “test” gibi belirleyici metinler verilebilir. Ayrıca sunucu üzerindeki Git deposunun adresini de tam yolu şeklinde belirtmeniz gerekiyor.

git push live +master:refs/heads/master

Son olarak yaptığımız tüm değişikliklerin canlıdaki Git deposuna, /hooks/post-update yardımıyla da sitenin sunucu klasörüne gitmesini sağlıyoruz.

git push live

Böylece yerel makinede yer alan ve Git üzerinde takip edilen tüm güncellemeleri canlı sunucuda yayına almış olduk.

CodeIgniter ile WordPress Benzeri Adresler Oluşturmak

WordPress tabanlı günlüklerde, makale adreslerine baktığınız zaman “-” karakteriyle ayrılmış şekilde makale başlığını görebilirsiniz. Mesela bu makalenin başlığı “CodeIgniter ile WordPress Benzeri Adresler Oluşturmak”, adres satırında “codeigniter-ile-wordpress-benzeri-adresler-olusturmak” şeklinde görüntülenecektir. Bu adresler; standartlarda içerisinde yer almasına izin verilen karakterlere uygun olarak üretilir.

WordPress terminolojisinde buna Slug deniyor. WordPress sözlüğüne göre slug;

Makale ya da sayfayı tanımlayan bir ya da birkaç kelime. Genellikle makale ya da sayfa başlığının adres dostu olarak ifade edilmesi.

şeklinde tanımlanıyor.

CodeIgniter URL yardımcısı içindeki url_title() fonksiyonu tam olarak bu işi yapıyor. Bu fonksiyona geçeceğiniz bir metin, sonunda WordPress slug benzeri bir şekilde yeniden işleniyor. Böylece adreslerinizde gönül rahatlığıyla kullanabiliyorsunuz. Ancak bu fonksiyon, sadece İngilizce karakterler içeren bir metni uygun formatta işleyebiliyor.

Yukarıdaki gibi sadece İngilizce karakterlerden oluşan bir metni verdiğiniz zaman çıkan sonuç, beklendiği gibi aşağıdaki şekilde oluyor;

Ancak bu fonksiyona Türkçe bir metin verdiğini zaman oluşan sonuç pek de iç açıcı olmuyor.

Yukarıda da görüldüğü gibi Türkçe karakterler işlemin dışında kalıyor. Örneğin “Ş” harfi, url_title() tarafından hiç işlenmeden yokmuş gibi davranıyor. Aslında fonksiyon kendisine verilen işlevi yerine getiriyor. Sadece bir başka fonksiyonu daha devreye sokmak gerekiyor.

Böylece içerisinde Türkçe karakter olan metinler düzgün şekilde çevrilebiliyor. convert_accented_characters() fonksiyonu, çevrilecek karakterleri /application/config/foreign_chars.php dosyasından alıyor. İlgili dosyayı açtığınızda Türkçe’deki “Ş” harfinin “S” ile değiştirileceğini görebilirsiniz.

Bu arada eğer tam olarak WordPress etkisi vermek istersek; tüm karakterleri küçük harfle yazmamız gerekecektir.

Bu şekilde kullandığınızda oluşan sonuç, tam da WordPress’in kullandığı şekilde küçük harflerle yazılmış bir metin olacaktır.

LESS – Arkaplan Görsel Adresinde Değişken Kullanabilmek

LESS üzerinde değişken kullanımı çok kolay. Aşağıdaki şekilde yapabiliyorsunuz;

Bunun CSS olarak çıktısı da aşağıdaki şekilde olacaktır;

LESS örneğinde de görülebildiği gibi; @mavi ve @acik-mavi şeklinde iki değişken tanımlayıp, #baslik elemanının renk değerini bu değişkenlere göre atıyoruz. Buraya kadar hiçbir sorun yok, ancak LESS üzerinde arkaplan görsel yolunda değişken kullanmak istediğinizde bazı sorunlar ortaya çıkıyor. Nasıl mı? Aşağıdaki örneğe bir bakalım;

Yukarıdaki kodu derlediğinizde muhtemelen şöyle bir hata alacaksınız;

Yani LESS derleyicisi, değişken şeklinde yerleştirdiğiniz @gorsel-yolu‘nu anlayamıyor ve size hata veriyor. LESS derleyicisinin bu hatayı üretmesini engellemek için kodu şu şekle çevirebiliriz;

Gördüğünüz gibi değişkeni @{gorsel-yolu} şeklinde ve tüm metni tırnak içerisine alarak yazmak hatayı gideriyor.

WordPress Makale Versiyonlama Özelliğinin Kapatılması

WordPress’in yazdığınız makaleleri versiyonlama özelliği bulunuyor. Yani; yazdığınız her makale, siz kaydet tuşuna bastığınızda ayrı bir versiyon olarak kaydediliyor. Böylece bir yerde hata yaparsanız, ya da eski sürümlere dönmek isterseniz rahatlıkla bunu yapabiliyorsunuz.

Özellikle çok yazarlı siteler için hayat kurtaran bir özellik olabilirken, tek yazarlı bloglar için gereksiz bir özellik olarak görülebilir. En azından her defasında yeni bir sürüm oluşturmak yerine, sadece belli sayıda sürüme izin verilebilir.

Bu özelliğin kapatılması için wp-config.php dosyasında aşağıdaki değişikliği yapmak yeterli.

Bu kod sayesinde hiçbir şekilde makalelerinizin yeni sürümleri veritabanına kayıt edilmeyecektir, ancak daha önceden kayıt edilmiş sürümler yine veritabanında durmaya devam edecektir. Eğer veritabanında kayıtlı aktif sürümler hariç tüm sürümleri silmek isterseniz aşağıdaki kodu kullanabilirsiniz.

Ancak bu özellik, versiyonlama özelliğini tamamen kapatıyor. Yani hiçbir şekilde geçmişe gidip eski sürümlere ulaşma şansınız kalmıyor. Onun yerine belli sayıda sürüm saklamak daha mantıklı olabilir.

Yukarıdaki kod sayesinde, her bir makale için sürüm sayısını 3 ile sınırlamış oluyorsunuz. Yani geçmişe gitmek istediğinizde, 3 sürüm öncesine rahatlıkla gidebilirsiniz.

Daha Anlaşılır Git Kayıtları

Bugün Filipe Kiss’in blogunda Git kayıtlarının daha güzel gösterimi ile ilgili bir makale okudum. Buradan da sizlerle paylaşmak istedim.

Git kayıtlarını alırken çoğunlukla git log şeklinde bir komut kullanılır. Bu komut sayesinde tüm Git geçmişine ulaşmak mümkün. Ancak bu komut Git geçmişini biraz detaylı döküyor.

Yukarıdaki görselde de görülebileceği gibi, bu komutun ekran kullanımı pek de iyi değil. Oysa aşağıdaki gibi bir görüntü, eminim birçoğumuzu daha mutlu edecektir;

Bu görüntüğü elde edebileceğiniz Git komutu aşağıdaki şekilde;

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit

Bu komutla yapılan; Git geçmişini, her bir kalem tek satıra sığacak şekilde, renklendirerek ve en solda grafiksel olarak sembolize ederek göstermek.

Elbette bu komutu akılda tutmak kolay değil, ve her defasında bu komutu yazıp Git geçmişine ulaşmak çok zor. Bu yüzden de Git ayarlarına bir kısayol (alias) ekleyebilirsiniz;

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit"

Böylece, geçmişe her bakmak istediğinizde sadece aşağıdaki komutu çalıştırmanız yeterli olacaktır.

git lg

Böylece Git’i daha verimli kullanmanın mümkün olacak.

CodeIgniter ile Blog Kodlamak – I. CodeIgniter ve Kurulumu

CodeIgniter ile blog hazırlamak, aslında hiç de zor değil. Sadece gerekli araçları, ayarları, CodeIgniter özelliklerini bilmek, biraz sabır, bolca alıştırma yeterli. Blogunuz belki bir WordPress olmayacak ama canlı yayında tüm ihtiyaçlarınızı karşılayacak bir blog sahibi olabileceksiniz. Üstelik CodeIgniter öğrenmiş olmak da artısı olacak…

Birçoğumuzun bildiği gibi CodeIgniter; bir PHP çatısıdır. Geliştirmesi uzun yıllar EllisLab tarafından yönetildikten sonra; 2011 yılı ikinci yarısına doğru radikal (ve doğru) bir kararla Github üzerinden tüm geliştiricilere açık hale getirildi.

Aslında CodeIgniter başından beri açık kaynak kodlu bir PHP çatısıydı ancak kodun yönetimi tamamen EllisLab tarafından sağlanıyordu. Bu da yeni sürümlerin çıkmasını, kodda yer alan hataların hızlıca düzeltilmesini, yeni özellikler eklenmesini çok geciktiriyordu. En sonunda geliştiricilerden gelen ısrarlara dayanamayıp, tüm kodun yönetimini Github üzerinden geliştiricilere açtılar. Çok da iyi yaptılar çünkü o günden sonra “öldü, ölecek” denen CodeIgniter hızlı bir geliştirme sürecine girdi. Hatalar topluluk tarafından hızla kapatıldı, yeni özellikler eklenmeye başlandı. Sonrasında da PHP çatıları arasında haklı bir yer edindi kendisine.

Bu yazı dizisinde; CodeIgniter kullanarak basit bir blog hazırlamayı detaylı bir şekilde anlatmaya çalışacağım. CodeIgniter kurulumu, veritabanı yapısı, makaleler, yorumlar, kullanıcılar gibi bir blog için gerekli olabilecek tüm konulara elimden geldiğince girmeye çalışacağım. Ancak hazırlayacağımız bu blog basit ve temel işlevleri yerine getirecek; WordPress gibi tema, eklenti yönetimi vb. gelişmiş konular elbette yer almayacak.

Bu yazı dizisinde anlatmaya çalışacağım kodların tümüne https://github.com/burakerdem/codeigniter-blog adresinden erişebilirsiniz.

CodeIgniter İndirme ve Kurma

Bu kısa girişten sonra CodeIgniter kurulumuna geçebiliriz. Yukarıda da belirttiğim gibi; CodeIgniter kaynak kodu Github üzerinde barındırılıyor. https://github.com/EllisLab/CodeIgniter adresinde yer alan CodeIgniter kaynak kodunu öncelikli olarak çalışacağınız makineye indirmeniz gerekiyor.

Github üzerindeki CodeIgniter giriş sayfasında yer alan ZIP düğmesi yardımıyla (ya da https://github.com/EllisLab/CodeIgniter/zipball/develop linkine tıklayarak) en son sürümü indirebilirsiniz.

İndirdiğiniz ZIP dosyasını açtığınız zaman yukarıdaki klasörler ve dosyalarla karşılacaksınız. Bu yazı dizisinin konusu dahilinde ihtiyacımız olan klasörler ve dosyalar aşağıdakiler olacaktır;

  • /application: Blog uygulamamıza özel kodların yer alacağı klasör
  • /system: CodeIgniter’a ait sistem dosyalarının yer aldığı klasör
  • index.php: CodeIgniter’ın çalışması için gerekli kaynakları yöneten kontrol dosyası

Bu aşamadan sonra CodeIgniter’ı çalışır hale getirmemiz gerekiyor. Aslında indirdiğimiz haliyle bile çalışır halde ancak bazı ayarları yapmak; hem daha güvenli bir kurulum, hem de CodeIgniter’ın daha doğru çalışmasını sağlayacaktır.

Temel olarak CodeIgniter’ı iki tür klasör yapısıyla kullanabilirsiniz;

Standart Klasör Yapısı

Bu klasör yapısı; aynen indirdiğiniz şekilde kullanabileceğiniz klasör yapısıdır. Hiçbir ayar yapmadan hızlıca geliştirme yapmanıza olanak sağlar ancak /application ve /system klasörleri dışarıdan erişilebilir olduklarından güvenlik açıklarına neden olabilir.

Güvenli Klasör Yapısı

Bu klasör yapısında /application ve /system klasörleri dışarıdan erişime kapatılacağı için daha güvenli bir sistem oluşturulur. Ancak özellikle paylaşımlı sunucularda web sitesi barındıranlar için her zaman mümkün olmayabilir. Eğer kendi sunucunuz varsa ya da sunucu kaynakları üzerinde belli bir yönetime sahipseniz mutlaka bu klasör yapısını seçmenizi öneririm.

Bu klasör yapısında web sitesi kök dizini /public klasörü olacağı için /application ve /system klasörlerine dışarıdan erişim sağlanamayacaktır. Bu klasör yapısını seçtiğiniz durumlarda bazı ayarları da yapmanız gerekmektedir. Örneğin Apache sunucunun sitenizi çalıştırabilmesi için vhosts dosyasında gerekli değişiklikleri yapmanız gerekmekte.

Apache Sanal Site Kurulumu

Güvenli klasör yapısını seçtiğiniz durumda; Apache üzerinde yeni bir sanal site açmanız gerekecektir. Detaylarına belki başka bir yazıda girerim ancak en temel haliyle kullanabileceğiniz ayarları aşağıda şekilde olmalı.

Mac OS X üzerinde /etc/apache2/extra/httpd-vhosts.conf dosyasında aşağıdaki eklemeyi yapabilirsiniz. Ben yeni kuracağımız siteyi http://ci.localhost/ şeklinde erişmek istediğim için bu şekilde adlandırdım; siz daha farklı da adlandırabilirsiniz. Ayrıca sizin sisteminiz Mac OS X değilse, kendi sisteminizde (Windows, Linux vb.) nasıl yapılacağı ile ilgili gerekli ayarları İnternet üzerinden bulabilirsiniz.

Bu ayarın ardından, internet tarayıcımızda http://ci.localhost/ şeklinde erişebilmek için makine üzerindeki hosts dosyasında da gerekli eklemeyi yapmak gerekiyor; çünkü http://ci.localhost/ şeklinde bir adres aslında bulunmamakta. Tarayıcıya böyle bir adres yazdığımızda, sistemi yerel ağa yönlendirip bir anlamda kandırıyoruz.

Mac OS X için /etc/hosts şeklinde erişebileceğiniz bu dosyayı açtıktan sonra aşağıdaki satırı eklemeniz yeterli olacaktır;

Bu iki ayardan sonra Apache’yi yeniden başlatmak gerekiyor.

CodeIgniter Ayarları

Sunucu üzerinde gerekli ayarları yaptıktan sonra şimdi de CodeIgniter üzerinde bazı ayarlar yapmak gerekiyor.

Öncelikle sistem ve uygulama klasörlerini tanıtmalıyız. Standart kurulumda index.php ve /application, /system klasörleri aynı seviyede olduğu için bu ayara gerek yoktu. Ancak güvenli klasör yapısında sitemiz /public klasörü altında yer alacağı için /application ve /system klasörlerinin CodeIgniter’a tanıtılması gerekiyor. Bunun için public/index.php dosyasında aşağıdaki değişiklikleri yapmak yeterli olacaktır.

Böylece CodeIgniter sistem ve uygulama klasörlerimizin nerede olduğunu bulabilecektir.

Daha sonra application/config/config.php dosyasında gerekli ayarları yapmalıyız.

$config['base_url'] değişkenine sitenin tam erişim adresini verdik. Böylece CodeIgniter sitenin tam olarak hangi adresten erişilebileceğini bilecektir.

Güvenlik adına bunca zahmeti çektikten sonra artık herşeyin düzgün çalışıp çalışmadığını görme vakti gelmiştir. İnternet gezgininizin adres satırına http://ci.localhost/ yazdığınızda aşağıdaki ekran görüntüsüyle karşılaşıyorsanız kendinizi tebrik edebilirsiniz; ilk CodeIgniter siteniz yayında :)

Bundan sonra artık blog kodlamasına giriş yapabiliriz. Bir sonraki makalede CodeIgniter çalışma mantığını anlatmaya çalışacağım.

Hepinize kolay ve zevkli kodlamalar…