Laravel Shared Hosting'de Çalışır mı? Production Deploy Rehberi (Laravel 12+)
Laravel 12, Ağustos 2026 itibarıyla güncel ana sürümdür. Skyversal PaaS altyapısı PHP 8.2 ve PHP 8.3 desteğiyle Laravel 12, Laravel 11 ve Laravel 10 projelerini sıfır sunucu konfigürasyonu ile otomatik olarak algılar ve deploy eder.
Laravel hosting, modern PHP uygulamalarını yalnızca dosya barındırmanın ötesinde çalıştırabilecek bir altyapı gerektirir. Composer bağımlılıkları, Artisan komutları, queue worker, scheduler ve doğru PHP runtime yapılandırması bu ekosistemin temel yapı taşlarıdır. Laravel'de ilk "Hello World" ekranını almak saniyeler sürer; ancak projeyi canlı ortama taşırken geleneksel paylaşımlı barındırma çözümleri çoğu zaman beklenmedik kısıtlamalar sunabilir.
📌 Bu Rehberde Ne Öğreneceksiniz?
- • Laravel shared hosting üzerinde çalışabilir mi?
- • Laravel 12 & 11 sistem gereksinimleri tablosu
- • Paylaşımlı ortamda karşılaşılabilecek mimari kısıtlamalar
- • Shared Hosting vs VPS/VDS vs PaaS Karşılaştırması
- • Skyversal Git-push otomatik deployment hattı
- • APP_KEY, Migration, Queue ve Octane SSS yanıtları
Laravel Shared Hosting Üzerinde Çalışır mı?
Birçok geliştirici ilk Laravel projesini bitirdikten sonra "şimdi bunu nereye koyacağım?" sorusuyla karşılaşır ve çözüm olarak aylık ucuz bir shared hosting paketi satın alır. Sonuç genellikle beyaz ekran, HTTP 500 hataları, "artisan command not found" veya bir türlü çalışmayan cron görevleridir.
Laravel'in shared hosting üzerinde çalışması teknik olarak mümkündür. Asıl mesele; kullanılan hosting paketinin Composer, SSH, cron, queue worker, doğru document root (/public) ve PHP sürümü gibi ihtiyaçları ne ölçüde desteklediğidir. Laravel'in temel web uygulaması PHP-FPM gibi klasik bir runtime üzerinde gayet normal çalışabilir. Ancak queue worker, Horizon ve bazı zamanlanmış görevler gibi production bileşenleri sürekli çalışan process'lere (daemon) veya güvenilir zamanlayıcılara ihtiyaç duyar.
Laravel'in Çalışması İçin Gerçekten Ne Gerekir? (Sürüm Uyumluluğu)
Güncel Laravel 12 ve önceki sürümlerin sorunsuz çalışması için ortam gereksinimleri ve altyapı karşılaştırması:
| Gereksinim | Neden Gerekli? | Paylaşımlı Hosting | Skyversal PaaS |
|---|---|---|---|
| PHP 8.2+ | Laravel 12 ve Laravel 11 minimum PHP 8.2+ ister | Sürüm desteği sağlayıcıya göre değişir | Platform tarafından seçilebilir ve yönetilir |
| Composer 2.x | Paket bağımlılık yönetimi (vendor/) |
SSH yetkisi yoksa çalıştırmak zordur | Build aşamasında otomatik çalışır |
| Artisan CLI | Migration, cache clear, config üretimi | Kısıtlı veya SSH erişimi kapalı olabilir | Deployment adımında yerleşik aktif |
| Queue Worker | queue:work arka plan işlerinin otomatik izlenmesi |
Kalıcı background process sunulmayabilir | Kalıcı process (Daemon) olarak tanımlanır |
| Task Scheduler | schedule:run her dakika düzenli çalıştırılması |
cPanel cron — zamanlama limitleri olabilir | Zamanlanmış process desteği |
| Writable Storage | Log, session ve uygulama önbellekleri | Klasör izin (CHMOD) ayarları gerekebilir | İzinler otomatik yapılandırılır |
| SSL / HTTPS | Güvenli HTTP, cookie güvenliği ve SEO | Manuel veya sağlayıcıya bağımlı | Otomatik Let's Encrypt SSL |
| Environment Vars | .env şifrelerinin güvenli tutulması |
FTP dizin erişimine bağlıdır | Git deposundan ayrı, panelden yönetilir |
- • Laravel 12 (Güncel): PHP 8.2+
- • Laravel 11: PHP 8.2+
- • Laravel 10: PHP 8.1+
Geleneksel Paylaşımlı Hostinglerde Karşılaşılan Temel Kısıtlamalar
Birçok geleneksel paylaşımlı hosting paketinde Laravel projeleri çalıştırılırken şu durumlarla karşılaşılabilir:
- "Class not found" hataları: SSH erişimi olmaması nedeniyle
composer installçalıştırılamaması. - 500 Internal Server Error:
.envdosyasının doğru yerde olmaması veyaAPP_KEYdeğerinin tanımlanmaması. - Public klasör yönlendirme sorunu: Document root
/publicolarak ayarlanamadığı için karmaşık.htaccessyönlendirmelerine ihtiyaç duyulması. - Permission denied:
storage/vebootstrap/cache/klasörlerinde yazma izinlerinin olmaması. - Queue kısıtları:
php artisan queue:workkomutunun sürekli çalışan bir daemon process gerektirmesi — birçok paylaşımlı ortam buna izin vermez. - Scheduler hassasiyeti: cPanel cron ile
schedule:runçalıştırılabilir; ancak hosting sağlayıcısının cron sıklığı, process süreleri ve kaynak limitleri kullanılan uygulamanın ihtiyaçlarıyla uyumlu olmayabilir.
Altyapı Karşılaştırması: Shared Hosting vs VPS/VDS vs PaaS
Laravel projelerinizi canlı ortama taşırken tercih edebileceğiniz 3 farklı mimarinin kapsamlı teknik karşılaştırması:
| Özellik / Mimari | Shared Hosting | VPS / VDS Sunucu | Skyversal PaaS |
|---|---|---|---|
| PHP Sürümü | Sağlayıcıya bağımlı | Sizin kontrolünüzde (Manuel) | Platform tarafından yönetilir & seçilir |
| SSH Erişimi | Pakete bağlı / Genelde kısıtlı | ✅ Tam Root Erişimi | CLI & Process desteğine bağlı yerleşik |
| Composer Derlemesi | Değişken / SSH gerekebilir | ✅ Manuel kurulur | Build aşamasında otomatik |
| Queue Worker | Genellikle kısıtlı / Desteklenmez | ✅ Manuel Supervisor ile | Process olarak tanımlanır ve izlenir |
| Supervisor Kurulumu | ❌ Yok | Manuel kurulum & konfigürasyon | Platform tarafından otomatik yönetilir |
| SSL Sertifikası | Manuel / Sağlayıcıya bağlı | Manuel kurulum (Certbot) | Otomatik Let's Encrypt SSL |
| Sunucu Bakım & Güncelleme | Sağlayıcı tarafından | Tamamen sizin sorumluluğunuzda | Sıfır sunucu sorumluluğu, platform yönetir |
| Deployment Akışı | Manuel FTP / cPanel File Manager | CI/CD veya custom script kurulumu | Git push ile %100 otomatik |
| Kaynak Ölçekleme | Sınırlı | Manuel (Re-provisioning) | Tek tıkla esnek kaynak artırımı |
| Kontrol vs Sorumluluk | Düşük kontrol | Yüksek kontrol, Yüksek sorumluluk | Yüksek uygulama kontrolü, Sıfır sunucu yükü |
PaaS Yolu: Kod Yaz, Push Et, Otomatik Çalışsın
Platform as a Service (PaaS) altyapımız, Laravel'in gereksinim duyduğu PHP runtime, Composer derlemesi, asset build ve SSL süreçlerini otomatik yönetir.
git push origin main │ ▼ Otomatik Framework Tespiti (composer.json + artisan) │ ▼ composer install --no-dev --optimize-autoloader │ ▼ npm install & npm run build (Asset derlemesi) │ ▼ İzole Konteyner İmajı Oluşturma │ ▼ Panel Çevre Değişkenleri enjekte edilir (.env) │ ▼ php artisan migrate --force (Opsiyonel / UI Toggle: Açık / Kapalı) │ ▼ Health Check & Canlıya Alma 🚀
Platform üzerinde APP_KEY tanımlı değilse ilk kurulumda güvenli rastgele bir anahtar üretilir. Böylece sonraki deployment'larda APP_KEY değişmediği için mevcut session ve şifrelenmiş verileriniz tam olarak korunur.
Skyversal panelinizde Otomatik Migration (Açık / Kapalı) ayarı bulunur. Seçenek aktifken deploy anında php artisan migrate --force çalıştırılır. Production ortamlarında migration'larınızın additive (expand-safe) yazılması önerilir. Dilerseniz bu seçeneği tek tıkla kapatabilir ve migration'ları manuel tetikleyebilirsiniz.
Sıkça Sorulan Sorular (VDS & PaaS Laravel Rehberi)
Forge bir sunucu yapılandırma (provisioning) aracıdır ve arka planda kendi VPS sunucunuzu yönetmenizi gerektirir. Vapor ise AWS Lambda üzerinde serverless çalışır ve cold-start davranışı getirebilir. Skyversal PaaS ise sunucu bakımı gerektirmeyen izole konteyner mimarisiyle sürekli çalışan bir process ortamı sunar.
Kuyruk yöneticinizi panel üzerinden kalıcı bir process olarak (php artisan queue:work --tries=3 --timeout=90) tanımlarsınız. Herhangi bir nedenden dolayı process kapandığında platform otomasyonu bunu otomatik olarak tekrar başlatır.
Evet, projenizde Horizon kuruluysa php artisan horizon komutunu process olarak tanımlayıp kendi Redis bağlantınızı sağlayarak sorunsuz çalıştırabilirsiniz.
Şu anda platformumuz yüksek kararlılığa sahip standart PHP-FPM + Nginx mimarisi üzerine kuruludur. Swoole veya RoadRunner tabanlı Octane şu an desteklenmemektedir.
Hayır. Rollback işlemi yalnızca uygulama kodunu önceki sürüme döndürür. Veri kaybını önlemek adına veritabanı şemaları otomatik olarak geri alınmaz.
Uygulama ve veritabanının aynı bölgeye yakın konumlandırılması, özellikle veritabanı sorgularının yoğun olduğu uygulamalarda ağ gecikmesini ciddi şekilde azaltır. Türkiye'deki kullanıcıları hedefleyen projelerde Türkiye lokasyonlu altyapı bu nedenle avantaj sağlar.