Laravel Ortam Değişkenleri Yönetimi

Laravel projenizde .env dosyasını Skyversal paneli üzerinden güvenle yönetin. APP_KEY, veritabanı ayarları ve diğer hassas bilgileri kolayca yapılandırın.

Okuma Süresi: 3 Dk
Seviye: Başlangıç
Uçtan Uca Şifreli
💡
Kimler İçin?

Bu rehber, GitHub depolarında .env dosyasını barındırmak istemeyen, veritabanı şifreleri ve API anahtarları gibi kritik bilgileri production ortamında güvenli bir şekilde yönetmek isteyen Laravel geliştiricileri içindir.

Laravel projelerinizde yer alan .env dosyalarındaki hassas bilgileri (veritabanı şifreleri, ödeme sistemi API anahtarları vb.) GitHub'a yüklemek büyük bir güvenlik riskidir. Skyversal ile bu değişkenleri kodunuzdan izole edebilir ve şifrelenmiş olarak Skyversal paneli üzerinden güvenle yönetebilirsiniz.

1. Ortam Değişkenleri Nasıl Çalışır?

Skyversal, "Zero-Config" felsefesiyle ortam değişkenlerini projenize otomatik olarak bağlar.

1. Panele Ekle
Değişkeni Skyversal panelinden girersiniz.
2. Şifrelenir
Veriler endüstri standardı güçlü şifreleme algoritmalarıyla şifrelenip saklanır.
3. Otomatik Aktarım
Deploy anında Linux ortam değişkeni (environment variable) olarak uygulamaya aktarılır.

Kodda değişiklik gerekir mi?

Hayır. Laravel yapılandırma dosyaları (config/*.php) üzerinden ortam değişkenlerini okur. Skyversal, deploy sırasında bu değişkenleri uygulamaya otomatik olarak aktarır, böylece proje kökünde fiziksel bir .env dosyası bulunmasa bile uygulamanız sorunsuz çalışır.

2. Kurulum Süreci (Adım Adım)

1
Ayarlara Gidin
Skyversal paneli üzerinde projenizi seçin ve sağ üstten Settings > Environment Variables sekmesine tıklayın.
2
Değişkenleri Ekleyin
Key ve Value alanlarını doldurarak tek tek ekleyebileceğiniz gibi, sağ üstteki Bulk Import (Toplu Ekleme) butonuyla yerel .env dosyanızın içeriğini doğrudan yapıştırabilirsiniz.
3
Kaydedin ve Deploy Alın
Yeni değişkenlerin aktif olması için projenizi yeniden deploy etmeniz gerekir. Paneldeki "Deploy" butonuna basarak süreci başlatın.

3. Mutlaka Eklenmesi Gereken Değişkenler

Her Laravel projesi canlıya alındığında en azından aşağıdaki temel ortam değişkenlerine ihtiyaç duyar:

Key Açıklama Örnek Value
APP_KEY Laravel şifreleme anahtarı. Zorunludur. Localde php artisan key:generate ile üretebilirsiniz. base64:...
APP_ENV Canlı ortamı belirtir. Hata detaylarını gizlemek için production olmalıdır. production
APP_DEBUG Hata detaylarının görünürlüğü. Canlı ortamda güvenlik için mutlaka false olmalıdır. false
APP_URL Uygulamanızın canlı URL'si. Asset ve link oluşturmaları için önemlidir. Yanlış ayarlanırsa URL oluşturma, e-posta linkleri ve asset URL'leri beklenmeyen şekilde davranabilir. https://domain.com
DB_* Veritabanı bağlantı bilgileriniz (DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD). ...
⚠️
Kritik: env() Kullanımı ve config:cache

Laravel'de php artisan config:cache komutu çalıştırıldığında, uygulamanız hızlanır ancak sistem .env dosyasını (ve ortam değişkenlerini) artık okumaz, sadece birleştirilmiş config dosyasını kullanır. Bu sebeple kodunuzun içinde (örneğin Controller veya route'larda) kesinlikle env() fonksiyonunu doğrudan kullanmamalısınız. Bunun yerine config() yardımcı fonksiyonunu kullanın. Eğer kullanırsanız, config:cache sonrası tüm env() çağrıları null dönecektir.

🏗️ Build Time vs Runtime Değişkenleri

Ortam değişkenlerinin "ne zaman" okunacağı, özellikle Vite ile frontend asset'leri derlerken en sık karıştırılan konulardan biridir.

⚙️

Build Time (Derleme Zamanı)

Uygulama sunucuya yüklenirken çalıştırılan npm run build aşamasıdır. Vite veya Next.js gibi araçlar değişkenleri statik olarak kodun içine gömer.

Vite: VITE_ önekiyle başlayan değişkenler.
Sonuç: Frontend koduna (JS/CSS) işlenir. Tarayıcıda görülür.
🚀

Runtime (Çalışma Zamanı)

Uygulamanız yayına girdikten sonra kullanıcı siteye girdiğinde çalışan kısımdır. Sadece sunucu tarafında okunur.

Laravel: APP_KEY, DB_PASSWORD vb.
Sonuç: Sadece backend sunucusu tarafından bilinir. Güvenlidir.

❓ Sık Karşılaşılan Sorunlar

Asset'ler yüklenmiyor veya linkler "localhost"a gidiyor

Belirti: Sayfadaki resimler kırık veya oluşturulan e-posta linkleri https://localhost gösteriyor.

Sebep: APP_URL ortam değişkeni yanlış ayarlanmış veya unutulmuş.

Çözüm: Panele giderek APP_URL değerini production domaininizle (ör. https://domain.com) güncelleyin ve yeniden deploy alın.

"No application encryption key has been specified"

APP_KEY değişkeni Skyversal panelinde tanımlanmamış. Yerel makinenizdeki .env dosyanızdan anahtarı kopyalayıp Skyversal paneline ekleyin ve projeyi yeniden deploy edin.

Değişkeni panele girdim ama sitemde güncellenmedi

Ortam değişkenleri sadece projeyi derlerken (build) veya başlatırken okunur. Panele değişkeni ekledikten sonra değişikliğin yansıması için projenizi paneldeki Deploy butonuyla manuel olarak yeniden başlatmanız gerekir. Ayrıca eğer localde php artisan config:cache çalıştırıp dosyaları (bootstrap/cache) git'e attıysanız, projeniz yeni değişkenleri okumaz. Bunu düzeltmek için php artisan optimize:clear kullanın.

🎉 Değişkenleriniz Artık Güvende

Hassas verileriniz GitHub deposundan tamamen izole edildi ve Skyversal altyapısında şifrelenerek güvence altına alındı.

Ortam değişkenlerini hallettiğimize göre artık projenizi ileri seviyeye taşıyacak Queue Worker, Storage Link ve Scheduler ayarlarına geçebiliriz.

➜ Laravel Gelişmiş Özellikler Rehberi
Son güncelleme: 27 Temmuz 2026
Bu sayfayı GitHub'da düzenle