CodeIgniter projeleri için hosting ayarları.

CodeIgniter, hafif yapısı ve yüksek performansıyla PHP geliştiricileri arasında popüler bir MVC framework’üdür. Geliştirdiğiniz projeyi tamamladıktan sonra, sıra onu internet üzerinde erişilebilir kılmaya, yani “canlıya almaya” geldiğinde, doğru hosting ayarlarını yapmak kritik bir adımdır. Bu süreç, uygulamanızın sadece çalışmasını değil, aynı zamanda stabil, hızlı ve güvenli olmasını da doğrudan etkiler. Bu blog yazısında, CodeIgniter projelerinizi sorunsuz bir şekilde barındırmak için bilmeniz gereken tüm detayları, sunucu seçiminden dosya yüklemeye, veritabanı yapılandırmasından sık karşılaşılan sorunların çözümüne kadar adım adım ele alacağız. Amacımız, CodeIgniter uygulamanızın internette sağlam bir temel üzerine oturmasını sağlamaktır.

CodeIgniter Hosting İçin Temel Gereksinimler

Her web uygulamasında olduğu gibi, CodeIgniter projeleri için de belirli sunucu gereksinimleri bulunur. Doğru bir başlangıç yapmak için bu gereksinimleri anlamak ve hosting sağlayıcınızın bu koşulları karşıladığından emin olmak önemlidir.

  • PHP Sürümü: CodeIgniter’ın farklı sürümleri farklı PHP versiyonlarını destekler. Örneğin, CodeIgniter 3 genellikle PHP 5.6 ve üzeri ile uyumluyken, CodeIgniter 4 için PHP 7.3 veya üzeri gereklidir. Sunucunuzun, kullandığınız CodeIgniter sürümüyle uyumlu ve mümkünse en güncel stabil PHP versiyonunu çalıştırdığından emin olun. Çoğu hosting paneli (cPanel, Plesk vb.) üzerinden PHP sürümünü kolayca değiştirebilirsiniz.
  • Veritabanı Desteği: CodeIgniter, MySQL (en çok tercih edilen), PostgreSQL, SQLite3 ve MS SQL Server gibi birçok farklı veritabanını destekler. Projenizin kullandığı veritabanı türüne uygun bir veritabanı sunucusunun hosting paketinizde mevcut olması gerekir. MySQL, web hosting paketlerinin neredeyse tamamında varsayılan olarak sunulur ve CodeIgniter ile sorunsuz çalışır.
  • Web Sunucusu: Apache veya Nginx, CodeIgniter projeleri için en çok tercih edilen web sunucularıdır. Özellikle URL yönlendirmeleri ve temiz URL’ler için hayati öneme sahip olan .htaccess dosyası aracılığıyla, Apache’nin mod_rewrite modülü sayesinde kolayca yönetilir. Nginx kullanıyorsanız, benzer kuralları Nginx yapılandırma dosyanızda tanımlamanız gerekecektir.
  • Disk Alanı ve Bant Genişliği: Projenizin büyüklüğüne, beklediğiniz ziyaretçi trafiğine ve depolamanız gereken verilere göre yeterli disk alanı ve aylık bant genişliği sunan bir hosting paketi seçmelisiniz. Küçük bir kişisel blog veya portföy sitesi için daha az kaynak yeterli olurken, büyüyen bir e-ticaret uygulaması veya yüksek trafikli bir web sitesi daha fazla kaynak gerektirecektir.

Doğru Hosting Sağlayıcısını ve Türünü Seçmek

CodeIgniter projeniz için doğru hosting sağlayıcısını ve hosting türünü seçmek, uygulamanızın performansı, stabilitesi ve gelecekteki ölçeklenebilirliği açısından hayati öneme sahiptir. Piyasada birçok farklı hosting türü bulunmaktadır ve her birinin kendine göre avantajları vardır.

  • Paylaşımlı Hosting: Yeni başlayanlar, küçük ve orta ölçekli projeler için maliyet-etkin bir çözümdür. Sunucu kaynakları (CPU, RAM, disk alanı) birçok web sitesi arasında paylaşılır. Kolay kurulum ve yönetim sağlar.
  • VPS (Sanal Özel Sunucu): Paylaşımlı hosting’e göre daha fazla kontrol, kaynak ve izolasyon isteyen projeler için idealdir. Fiziksel bir sunucunun sanal olarak ayrılmış bir bölümünü kullanırsınız, bu da daha iyi performans, güvenlik ve esneklik sunar. Kendi sunucu ayarlarınızı yapabilirsiniz.
  • Dedicated Sunucu: Büyük ölçekli, yüksek trafikli uygulamalar ve kurumsal çözümler için tüm sunucuyu size özel kılar. Maksimum performans, güvenlik ve kontrol sağlar, ancak maliyeti en yüksektir ve sunucu yönetimi bilgisi gerektirir.
  • Cloud Hosting: Esnek, ölçeklenebilir ve genellikle kullandığınız kadar ödeme yapmanıza olanak tanıyan bir seçenektir. Trafik dalgalanmalarına karşı dirençlidir ve yüksek erişilebilirlik sunar.

Seçim yaparken sadece fiyatı değil, aynı zamanda sunucunun fiziksel konumu (ziyaretçilerinize yakınlık), güvenlik önlemleri (güvenlik duvarı, DDoS koruması), düzenli yedekleme hizmetleri, teknik destek kalitesi ve hızı ile sunucunun performans özellikleri (SSD diskler, LiteSpeed web sunucusu, Redis/Memcached gibi önbellekleme çözümleri) gibi faktörleri de göz önünde bulundurmalısınız. İyi bir hosting sağlayıcısı, CodeIgniter projenizin sorunsuz çalışmasına büyük katkı sağlar.

CodeIgniter Projesini Sunucuya Yükleme Adımları

Projenizi geliştirmeyi tamamladınız ve artık canlıya alma zamanı. Bu aşamada, CodeIgniter dosyalarınızı sunucuya doğru bir şekilde aktarmanız ve bazı temel yapılandırmaları yapmanız gerekmektedir.

  • FTP/SFTP Kullanımı: Dosyalarınızı sunucuya yüklemek için genellikle bir FTP (File Transfer Protocol) veya SFTP (Secure File Transfer Protocol) istemcisi kullanırsınız. FileZilla, Cyberduck veya WinSCP gibi popüler FTP yazılımları, yerel bilgisayarınızdaki CodeIgniter proje dosyalarını sunucunuzdaki belirlenen dizine kolayca aktarmanızı sağlar. SFTP, FTP’ye göre daha güvenli bir yöntemdir ve SSH üzerinden şifreli bağlantı kurar.
  • Dosya Yapısının Korunması: CodeIgniter projenizi genellikle public_html, www veya htdocs gibi ana web dizinine yüklersiniz. Ancak, güvenlik nedeniyle application (CodeIgniter 3 için), system ve vendor klasörlerinin doğrudan web’den erişilebilir olmaması önerilir. CodeIgniter 4’te bu durum zaten varsayılan olarak public klasörü ile ele alınmıştır; yani tüm web erişimi public klasörü üzerinden sağlanır ve diğer klasörler web kök dizininin bir seviye üzerinde yer alır. CodeIgniter 3 kullanıyorsanız, index.php dosyasını ana dizine alıp application ve system klasörlerini web dizininin bir üstüne taşıyabilir veya .htaccess kuralları ile bu klasörlere doğrudan erişimi kısıtlayabilirsiniz.
  • Önemli Dosyaların Güncellenmesi: Yükledikten sonra application/config/config.php (CI3 için) veya app/Config/App.php (CI4 için) ile application/config/database.php (CI3 için) veya app/Config/Database.php (CI4 için) dosyalarını canlı sunucu ortamına uygun şekilde güncellemeyi unutmayın. Özellikle base_url ve veritabanı bağlantı ayarları doğru olmalıdır. Ayrıca, URL’lerden index.php‘yi kaldırmak için bir .htaccess dosyasına ihtiyacınız olacaktır.

Veritabanı Kurulumu ve Bağlantısı

Web uygulamanızın dinamik verilerini depolamak ve yönetmek için bir veritabanına ihtiyacı vardır. CodeIgniter projenizi yayına alırken veritabanı ayarlarını doğru yapmak kritik öneme sahiptir.

  • Veritabanı Oluşturma: Hosting kontrol paneliniz (cPanel, Plesk vb.) üzerinden genellikle “MySQL Veritabanları”, “Veritabanları” veya benzeri bir bölümden yeni bir veritabanı oluşturun. Bu işlem sırasında bir veritabanı adı, kullanıcı adı ve güçlü bir şifre belirlemeniz gerekecektir. Not: Hosting sağlayıcıları genellikle veritabanı adlarına ve kullanıcı adlarına bir önek ekler (örneğin: kullaniciadi_veritabani).
  • Kullanıcı Oluşturma ve Yetkilendirme: Veritabanınıza erişecek bir veritabanı kullanıcısı oluşturun ve bu kullanıcıya oluşturduğunuz veritabanı üzerinde gerekli tüm yetkileri (CREATE, ALTER, DELETE, INSERT, SELECT, UPDATE gibi, genellikle “Tüm Yetkileri Ver” seçeneği bulunur) verin. Bu adım, CodeIgniter’ın veritabanınızla etkileşim kurabilmesi için elzemdir.
  • Veritabanı Yükleme (İçe Aktarma): Yerel geliştirme ortamınızdan (phpMyAdmin veya Workbench gibi araçlar aracılığıyla) veritabanınızın bir yedeğini (.sql uzantılı bir dosya) alın. Daha sonra bu .sql dosyasını hosting panelinizdeki phpMyAdmin veya başka bir veritabanı yönetim aracı üzerinden yeni oluşturduğunuz boş veritabanına içe aktarın.
  • CodeIgniter Veritabanı Ayarları: Projenizin application/config/database.php (CI3) veya app/Config/Database.php (CI4) dosyasını açarak veritabanı bağlantı bilgilerini canlı sunucuya uygun şekilde güncelleyin.
    • hostname: Genellikle localhost‘tur, ancak bazı hosting sağlayıcıları farklı bir IP adresi veya sunucu adı kullanabilir. Hosting sağlayıcınıza danışın.
    • username: Oluşturduğunuz veritabanı kullanıcı adı.
    • password: Oluşturduğunuz veritabanı kullanıcı şifresi.
    • database: Oluşturduğunuz veritabanı adı.
    • dbdriver: Kullandığınız veritabanı sürücüsü (örneğin mysqli veya pdo).

CodeIgniter Ortam Ayarları ve URL Yapılandırması

CodeIgniter uygulamanızın canlı ortamda doğru çalışması ve arama motoru dostu (SEO dostu) URL’lere sahip olması için bazı önemli yapılandırma adımları gereklidir.

  • base_url Ayarı: application/config/config.php (CI3) veya app/Config/App.php (CI4) dosyasındaki $config['base_url'] (CI3) veya public $baseURL (CI4) değerini uygulamanızın tam URL’siyle güncelleyin. Örneğin: http://www.siteadi.com/ veya daha güvenli olan https://www.siteadi.com/. Bu ayar, uygulamanızın tüm dahili bağlantıları ve kaynak yollarını (CSS, JS, resimler) doğru bir şekilde oluşturmasını sağlar.
  • Ortam Ayarı (ENVIRONMENT): Geliştirme ve üretim ortamları arasında geçiş yapmak için CodeIgniter’ın ortam ayarlarını kullanmak önemlidir. Genellikle index.php dosyasında veya sunucu yapılandırmasında (Apache/Nginx) tanımlanır. Canlı ortamda hata raporlamayı kısıtlamak ve performansı artırmak için define('ENVIRONMENT', 'production'); olarak ayarlayın. Bu, potansiyel güvenlik açıklarını gizler ve son kullanıcının hata mesajlarını görmesini engeller.
  • index.php Dosyasını URL’den Kaldırma (.htaccess): CodeIgniter URL’leri varsayılan olarak http://www.siteadi.com/index.php/kontrolcu/metod şeklinde gelir. Daha temiz, kullanıcı dostu ve SEO dostu URL’ler (örneğin: http://www.siteadi.com/kontrolcu/metod) için index.php dosyasını URL’den kaldırmak istersiniz. Bunu yapmak için ana dizininize (public_html veya CodeIgniter 4’te public klasörünün içine) aşağıdaki içeriğe sahip bir .htaccess dosyası eklemeniz gerekir (Apache web sunucusu için).

Örnek .htaccess içeriği (ana dizinde):

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

Bu kurallar, sunucuya gelen bir isteğin mevcut bir dosya veya dizin değilse, tüm istekleri index.php dosyasına yönlendirir. Nginx kullanıyorsanız, benzer URL yönlendirme kurallarını sunucu yapılandırma dosyanızda (nginx.conf veya siteye özel yapılandırma dosyasında) belirlemeniz gerekecektir.

Sık Karşılaşılan Sorunlar ve Çözümleri

CodeIgniter projenizi yayına alırken bazı sorunlarla karşılaşmanız oldukça olasıdır. İşte en yaygın olanları ve basit çözümleri:

  • 500 Internal Server Error: Bu genellikle sunucu tarafındaki bir hata veya yanlış yapılandırmadan kaynaklanır ve çok genel bir hatadır.
    • Olası Nedenler: Yanlış .htaccess kuralları, hatalı dosya/klasör izinleri, PHP bellek limiti aşımı, eksik PHP modülleri.
    • Çözüm: İlk olarak .htaccess dosyanızı dikkatlice kontrol edin. Dosya ve klasör izinlerini doğru ayarlayın (genellikle dosyalar için 644, klasörler için 755). Hosting panelinizdeki PHP error_log dosyasını veya hata günlüklerini kontrol ederek daha spesifik bilgi edinin.
  • Veritabanı Bağlantı Hataları: “Unable to connect to your database server”, “Access denied” veya “Unknown database” gibi hatalar.
    • Olası Nedenler: database.php dosyasındaki yanlış hostname, username, password veya database adı.
    • Çözüm: database.php dosyasındaki bağlantı bilgilerini (host, kullanıcı adı, şifre, veritabanı adı) dikkatlice kontrol edin. Hosting sağlayıcınızın veritabanı host bilgisi localhost yerine farklı bir şey olabilir. Kullanıcıya doğru yetkilerin verildiğinden emin olun.
  • Sayfa Bulunamadı (404 Error): Özellikle index.php‘yi URL’den kaldırdıktan sonra ortaya çıkabilir.
    • Olası Nedenler: Hatalı .htaccess kuralları, Apache’de mod_rewrite modülünün etkin olmaması, CodeIgniter route ayarlarının yanlış olması.
    • Çözüm: .htaccess dosyanızın yukarıda belirtilen şekilde doğru olduğundan ve sunucunuzda Apache’nin mod_rewrite modülünün etkin olduğundan emin olun. Geliştirme ortamında deneme yapmak için $config['enable_query_strings'] = FALSE; ve $config['uri_protocol'] = 'REQUEST_URI'; (CI3) ayarlarını kontrol edin.
  • PHP Bellek Limitleri: Büyük verileri işlerken, dosya yüklemelerinde veya karmaşık sorgularda “Allowed memory size of X bytes exhausted” hatası.
    • Olası Nedenler: Varsayılan PHP memory_limit ayarı uygulamanız için yetersiz.
    • Çözüm: Hosting panelinizden veya php.ini dosyası aracılığıyla memory_limit değerini (örneğin 256M veya 512M’ye) artırın.
  • Dosya ve Klasör İzinleri: Bazı klasörlere yazma izni verilmemesi (örneğin cache, log klasörleri) veya güvenlik sorunları.
    • Olası Nedenler: Sunucudaki dosya ve klasör izinleri çok kısıtlayıcı veya yanlış ayarlanmış.
    • Çözüm: Gerekli klasörlere (genellikle writable klasörü CI4’te, application/cache, application/logs CI3’te) yazma izni (genellikle 755 veya bazı durumlarda 775) verin. Ancak 777 gibi çok geniş izinlerden kaçının.

Performans İpuçları ve Güvenlik Önlemleri

CodeIgniter uygulamanızın sadece çalışması değil, aynı zamanda hızlı ve güvenli olması da önemlidir. İşte uygulamanızın performansını artırmak ve güvenliğini sağlamak için bazı ipuçları:

  • Önbellekleme (Caching): CodeIgniter’ın yerleşik önbellekleme özelliklerini veya üçüncü taraf kütüphaneleri (Redis, Memcached) kullanarak sık erişilen veritabanı sorgularını, sayfa parçalarını veya tüm sayfaları önbelleğe alın. Bu, sunucu yükünü azaltır, veritabanı sorgu sayısını düşürür ve yanıt sürelerini hızlandırır.
  • Gzip Sıkıştırma: Web sunucunuzda (Apache veya Nginx) Gzip sıkıştırmayı etkinleştirerek HTML, CSS ve JavaScript dosyalarınızın boyutunu küçültün. Bu, tarayıcıya aktarılan veri miktarını azaltır ve sayfa yükleme sürelerini önemli ölçüde iyileştirir.
  • HTTPS Kullanımı: Uygulamanızı SSL/TLS sertifikası ile HTTPS üzerinden yayınlayın. Bu, kullanıcılarınızın ve uygulamanızın güvenliğini artırır, verilerin şifrelenmesini sağlar ve aynı zamanda arama motorları için bir sıralama faktörüdür (SEO’yu olumlu etkiler).
  • Güncel Sürüm Kullanımı: Hem CodeIgniter’ın hem de PHP’nin her zaman en güncel stabil sürümlerini kullanmaya özen gösterin. Güncel sürümler genellikle performans iyileştirmeleri, yeni özellikler ve kritik güvenlik yamaları içerir.
  • Gereksiz Dosyaların Silinmesi/Kısıtlanması: Canlı sunucuda gereksiz geliştirme dosyalarını, test betiklerini, yedekleri veya versiyon kontrol (örn. .git) klasörlerini bulundurmayın. Ayrıca, application ve system klasörlerine doğrudan web erişimini .htaccess kurallarıyla veya sunucu yapılandırmasıyla engelleyin.
  • Giriş Doğrulaması ve CSRF Koruması: CodeIgniter’ın yerleşik form doğrulama kütüphanesini kullanarak tüm kullanıcı girdilerini sıkı bir şekilde doğrulayın. Ayrıca, tüm formlarınızda CSRF (Cross-Site Request Forgery) korumasını etkinleştirin. Bu, uygulamanızı yaygın web saldırılarına karşı korur.

CodeIgniter projelerinizi canlıya almak, doğru adımlar ve biraz dikkat gerektiren bir süreçtir. Bu rehberde ele aldığımız hosting gereksinimleri, dosya yükleme, veritabanı yapılandırması ve URL ayarları, uygulamanızın internette sağlam bir temel üzerine oturmasını sağlayacaktır. Karşılaşabileceğiniz olası sorunlara karşı hazırlıklı olmak ve performans ile güvenlik ipuçlarını uygulamak, kullanıcılarınıza daha iyi bir deneyim sunarken uygulamanızın ömrünü uzatacaktır. Unutmayın, her hosting ortamı ve sağlayıcısı biraz farklılık gösterebilir, bu yüzden hosting sağlayıcınızın belgelerine başvurmaktan veya teknik destek ekibiyle iletişime geçmekten çekinmeyin. Başarılı ve sorunsuz bir yayınlama dileğiyle!

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top