Laravel Projesi Sunucuya ve cPanel'e Nasıl Kurulur?

Laravel Projesi Sunucuya ve cPanel’e Nasıl Kurulur?

Kısaca

Bir Laravel projesini canlıya almak; bağımlılıkları yüklemek, ortam dosyasını hazırlamak ve en önemlisi web sunucusunun doküman kökünü projenin public/ dizinine ayarlamaktan ibarettir. cPanel paylaşımlı hostingde dosya yapısı biraz farklı ilerlese de mantık aynıdır: uygulama dosyaları public_html dışında, public içeriği içindedir.

  • Doküman kökü her zaman public/ olmalı; aksi halde .env dosyanız internete açılır.
  • Production’da APP_DEBUG=false ve composer install --no-dev şarttır.
  • Güncel Laravel 13, PHP 8.3 ve üzerini ister; PHP 8.4 önerilir.

Laravel, PHP’nin en popüler ve modern web framework’üdür; zarif sözdizimi ve zengin özellikleriyle profesyonel web uygulamaları geliştirmeyi kolaylaştırır. Bir Laravel projesini yerelde geliştirmek kolaydır, ancak canlıya almak birkaç önemli adım gerektirir. Bu rehberde bir Laravel uygulamasını sunucuya ve cPanel’e doğru biçimde kurmayı baştan sona anlatıyoruz; hem SSH erişiminiz olan VPS senaryosunu hem de SSH’siz paylaşımlı hosting senaryosunu ele alıyoruz.

Laravel uygulamalarınızı yayınlamak için uygun bir hosting paketi ya da tam kontrol isteyenler için bir VPS sunucu kullanabilirsiniz. Trafiği yüksek veya kaynak ihtiyacı büyüyen projeler içinse ölçeklenebilir bir bulut sunucu en konforlu seçenektir.

Kurulum Öncesi Hazırlık: Sistem Gereksinimleri

Laravel’in çalışabilmesi için sunucunuzun belirli yazılım sürümlerini ve PHP eklentilerini sağlaması gerekir. 2026 itibarıyla en güncel sürüm olan Laravel 13, Mart 2026’da yayınlandı ve minimum PHP 8.3 gerektiriyor; Symfony 8 bağımlılıkları nedeniyle pratikte PHP 8.4 kullanmanız önerilir. Aşağıdaki tablo güncel sürüm eşleşmelerini özetler:

Laravel Sürümü Gereken PHP Önerilen PHP Durum (2026)
Laravel 13 8.3+ 8.4 Güncel sürüm
Laravel 12 8.2+ 8.3 Destekleniyor
Laravel 11 8.2+ 8.3 Güvenlik güncellemeleri
Laravel 10 8.1+ 8.2 Destek sonu yaklaştı

PHP’nin yanı sıra şu eklentilerin etkin olması gerekir: BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PCRE, PDO, Tokenizer ve XML. Alastyr hosting paketlerinde bu eklentilerin tamamı varsayılan olarak açıktır ve PHP sürüm seçici ile hesap başına dilediğiniz PHP sürümünü birkaç tıklamayla belirleyebilirsiniz.

Mail hosting 1 ay ücretsiz

Neye İhtiyacınız Var?

  • Uyumlu bir PHP sürümü (Laravel 13 için 8.3+, ideali 8.4).
  • Bağımlılık yöneticisi olarak Composer.
  • Bir veritabanı (MySQL/MariaDB veya PostgreSQL).
  • SSL sertifikası (production ortamında zorunlu sayılmalı).
  • Tercihen SSH erişimi; yoksa cPanel Dosya Yöneticisi ile de ilerlenebilir.

Yöntem 1: SSH Erişimi Olan Sunucuya Kurulum (VPS / Bulut)

SSH erişiminiz varsa kurulum hızlı ve temiz ilerler. Projeyi Git ile çekmek en sağlıklı yoldur; böylece her güncellemeyi git pull ile alırsınız. Projeyi sunucuya aldıktan sonra bağımlılıkları yükleyip yapılandırmayı tamamlayın:

# 1. Projeyi cekin
git clone https://github.com/kullanici/projem.git
cd projem

# 2. Bagimliliklari production icin yukleyin
composer install --optimize-autoloader --no-dev

# 3. Ortam dosyasini hazirlayin (ilk kurulumda)
cp .env.example .env
php artisan key:generate

# 4. Veritabani migration'larini calistirin
php artisan migrate --force   # production icin --force gerekir

# 5. Onbellekleri olusturun (config / route / view)
php artisan optimize

# 6. Dizin izinlerini ayarlayin
chown -R www-data:www-data storage bootstrap/cache
chmod -R ug+rwx storage bootstrap/cache

Son adım olarak web sunucunuzun (Apache veya LiteSpeed) doküman kökünü projenin public/ dizinine yönlendirin. Bu adım, tüm kurulumun en kritik noktasıdır ve birazdan ayrı bir başlıkta detaylandıracağız.

En Kritik Nokta: Doküman Kökü public/ Olmalı

Laravel’de güvenliğin en kritik kuralı: web sunucusunun doküman kökü mutlaka projenin public/ dizinine ayarlanmalıdır. Proje kökü doğrudan servis edilirse .env dosyanız, veritabanı şifreleriniz, uygulama anahtarınız ve tüm yapılandırmalarınız internete açılır. index.php dosyasını asla proje köküne taşımayın.

Neden bu kadar önemli? Çünkü Laravel’in dosya yapısı kasıtlı olarak iki katmanlıdır: uygulama mantığınızın (app, config, routes, vendor, .env) bulunduğu gizli katman ve dışarıya yalnızca public/ dizini üzerinden açılan genel katman. Ziyaretçinin tarayıcısından gelen her istek public/index.php üzerinden geçer ve framework bu noktadan sonra devreye girer. Doküman kökünü yanlış ayarlamak bu güvenlik duvarını tamamen kaldırır.

Yöntem 2: cPanel Paylaşımlı Hostinge Kurulum

cPanel’de web kökü genelde public_html‘dir ve doküman kökünü serbestçe değiştiremezsiniz. Bu yüzden paylaşımlı hostingde üç yaygın yöntem kullanılır. Hangisinin sizin için uygun olduğu, sunucuda SSH ve symlink yetkiniz olup olmadığına bağlıdır.

Yöntem Nasıl Çalışır Avantaj / Dezavantaj
Symlink Proje public_html dışına (örn. ~/laravel) atılır, public_html Laravel’in public klasörüne sembolik bağlanır. En temiz yöntem; SSH veya symlink desteği gerektirir.
Alt alan adı / Park cPanel’de bir alt alan adı oluşturulur ve doküman kökü doğrudan .../laravel/public yapılır. Çok kolay; ana alan adını değil alt alan adını kullanır.
Ayrık Klasör Uygulama dosyaları public_html dışında, public içeriği içinde tutulur; index.php yolları güncellenir. SSH’siz çalışır; index.php elle düzenlenir.

Symlink Yöntemi (Önerilen)

SSH erişiminiz veya cPanel Terminal’iniz varsa en sağlıklı yol budur. Önce mevcut public_html‘i silin (veya yedekleyip boşaltın), ardından projenizin public klasörüne bir sembolik bağlantı oluşturun:

# Projeyi public_html disina kurun, orn: /home/kullanici/laravel
# Mevcut public_html'i kaldirip symlink olusturun:
rm -rf ~/public_html
ln -s ~/laravel/public ~/public_html

Bu yöntemde uygulama kodunuz hiçbir zaman web kökünde bulunmaz; yalnızca public dizini servis edilir.

index.php Yollarını Güncelleme Yöntemi (SSH’siz)

Symlink yetkiniz yoksa, Laravel’in public klasörü içindeki tüm dosyaları doğrudan public_html içine kopyalar, uygulamanın geri kalanını ise public_html dışındaki bir klasöre koyarsınız. Ardından public_html/index.php dosyasındaki iki yolu, uygulama dizininize işaret edecek şekilde düzenlersiniz:

# public_html/index.php icinde (ornek):
require __DIR__.'/../laravel/vendor/autoload.php';

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Burada ../laravel, vendor ve bootstrap dizinlerinizin bulunduğu klasörü gösterir. Paylaşımlı hostingde Composer’ı sunucuda çalıştırmak yavaş olabileceği için, composer install --optimize-autoloader --no-dev komutunu yerelde çalıştırıp vendor dizinini de yüklemeniz önerilir.

cPanel’de PHP Sürümü ve Composer Ayarı

cPanel üzerinde “MultiPHP Manager” veya PHP Sürüm Seçici aracıyla ilgili alan adı için Laravel’in istediği PHP sürümünü (8.3 veya 8.4) seçin. Composer çoğu cPanel sunucusunda hazır gelir; gelmiyorsa Softaculous gibi araçlar üzerinden veya composer.phar ile manuel kurabilirsiniz. Veritabanını cPanel’in “MySQL Veritabanları” bölümünden oluşturup .env dosyanızdaki DB_* değişkenlerine girin.

Production İçin Önbellek ve Optimizasyon

Canlı ortamda performans için Laravel’in önbellek komutlarını çalıştırmak önemlidir. Bu komutlar yapılandırma, rota ve görünümleri derleyip diske yazarak her istekte tekrar işlenmesini önler:

php artisan config:cache    # yapilandirmayi onbellege al
php artisan route:cache      # rotalari derle
php artisan view:cache       # blade gorunumlerini derle
php artisan event:cache      # olay dinleyicilerini derle

# Hepsini birden:
php artisan optimize

Önemli uyarı: config:cache çalıştırdıktan sonra Laravel artık .env dosyasını her istekte okumaz. Bu yüzden uygulama kodunuzda env() fonksiyonunu yalnızca config/ dosyalarında kullanın; geri kalan kodda her zaman config('servis.anahtar') şeklinde okuyun. Aksi halde cache sonrası env() çağrıları null döner.

Güvenlik ve Yayın Sonrası Kontrol Listesi

  • Doküman kökü daima public/ olmalı; aksi halde .env sızar.
  • Production’da APP_DEBUG=false ve APP_ENV=production olmalı; true ise hata sayfalarında hassas bilgiler görünür.
  • config:cache / optimize sonrası kodda env() yerine config() kullanın.
  • storage ve bootstrap/cache dizinleri sunucu kullanıcısı tarafından yazılabilir olmalı (genelde 755).
  • Klasörlere asla 777 izni vermeyin; bu, dosyalarınızı herkesin yazabileceği hale getirir.
  • Mutlaka geçerli bir SSL sertifikası kullanın ve trafiği HTTPS’e yönlendirin.
  • Composer bağımlılıklarını --no-dev ile yükleyin; geliştirme paketleri production’a gitmesin.
  • Düzenli yedekleme alın; Alastyr paketlerinde günlük otomatik yedekleme standarttır.

Laravel Projesi İçin Doğru Barındırma Seçimi

Küçük ve orta ölçekli Laravel projeleri, doküman kökü public‘e yönlendirildiğinde paylaşımlı hosting üzerinde sorunsuz çalışır. Ancak SSH erişimi, kuyruk işlemleri (queue:work), zamanlanmış görevler (cron / scheduler), Redis ve yüksek eş zamanlı trafik gibi ihtiyaçlar artıyorsa kontrolün tamamen sizde olduğu bir VPS ya da bulut sunucu daha doğru bir tercihtir.

Alastyr altyapısında Laravel projeleriniz LiteSpeed + LSCache ile hızlanır, CloudLinux + CageFS ile hesaplar birbirinden izole edilir ve Imunify360 çift WAF korumasıyla güvende tutulur. Tüm sunucular İzmir’deki kendi veri merkezimizde, N+1 yedekli ve Tier III standartlarındaki altyapıda barınır. Ücretsiz SSL, ücretsiz taşıma ve 7/24 destek ile yayına alma süreci kolaylaşır.

Sıkça Sorulan Sorular

Laravel hangi PHP sürümünü ister?

Güncel sürüm olan Laravel 13 minimum PHP 8.3 gerektirir; Symfony 8 bağımlılıkları nedeniyle pratikte PHP 8.4 kullanmanız önerilir. Laravel 12 ise PHP 8.2 ve üzeriyle çalışır.

Laravel paylaşımlı cPanel hostingde çalışır mı?

Evet. Doküman kökünü Laravel’in public klasörüne yönlendirdiğinizde (symlink, alt alan adı veya index.php yol güncellemesiyle) cPanel paylaşımlı hostingde sorunsuz çalışır. Yalnızca PHP sürümünün yeterli olduğundan emin olun.

Doküman kökünü neden public klasörüne ayarlamak zorundayım?

Çünkü Laravel uygulama dosyaları (app, config, routes, .env) gizli kalmalı, dışarıya yalnızca public dizini açılmalıdır. Proje kökü doğrudan servis edilirse .env dosyanız ve şifreleriniz internete açık hale gelir.

SSH erişimim yoksa Laravel’i nasıl kurarım?

SSH’siz kurulumda public klasörü içeriğini doğrudan public_html’e kopyalar, uygulamanın geri kalanını dışına koyarsınız; ardından public_html/index.php içindeki vendor ve bootstrap yollarını uygulama dizininize işaret edecek şekilde düzenlersiniz. Composer’ı ise yerelde çalıştırıp vendor klasörünü yüklemeniz önerilir.

migrate komutunda neden –force kullanılıyor?

Laravel, production ortamında yıkıcı olabilecek migration’ları güvenlik amacıyla onay sorarak çalıştırır. Otomatik dağıtım (deploy) sırasında bu onayı atlayıp migration’ların doğrudan çalışması için –force bayrağı gereklidir.

Production’da önbellek komutlarını ne zaman çalıştırmalıyım?

config:cache, route:cache ve view:cache komutlarını (veya hepsini birden çalıştıran optimize’i) her yeni kod dağıtımının ardından çalıştırmalısınız. Ortam değişkenlerini veya rotaları değiştirdiyseniz önbelleği tazelemeyi unutmayın.

config:cache sonrası env() neden null dönüyor?

config:cache çalıştırıldığında Laravel artık .env dosyasını okumaz, derlenmiş yapılandırmayı kullanır. Bu nedenle env() yalnızca config/ dosyaları içinde çalışır; uygulama kodunda env() yerine config() kullanmalısınız.

storage dizinine kaç izni vermeliyim?

storage ve bootstrap/cache dizinleri sunucu kullanıcısı tarafından yazılabilir olmalı; genellikle 755 izni yeterlidir. Asla 777 vermeyin, çünkü bu dosyalarınızı herkese açık biçimde yazılabilir hale getirir.

Laravel projem büyüyünce paylaşımlı hosting yeterli olur mu?

Kuyruk işlemleri, zamanlanmış görevler, Redis veya yüksek eş zamanlı trafik gibi ihtiyaçlar arttığında paylaşımlı hosting yetersiz kalabilir. Bu durumda kontrolün tamamen sizde olduğu bir VPS veya ölçeklenebilir bir bulut sunucuya geçmek daha doğru olur.

Laravel İçin Hızlı ve Güvenli Altyapı

PHP 8.4, Composer, LiteSpeed ve ücretsiz SSL ile Laravel projeleriniz için ideal hosting. Daha fazla kontrol mü lazım? VPS ve bulut sunucuları da hazır.

Hosting Paketleri →

Türkiye'nin En Çok Tavsiye Edilen Domain, Hosting ve Bulut Servis Sağlayıcısı
İnternet sitesi Alastyr İnternet Sitesi
Yazı oluşturuldu 502

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön