Boşluk içeren bir .env değeri tırnaksız yazıldığında Dotenv ayrıştırması başarısız olabilir. Üretimde PHP hata gösterimi kapalıysa kullanıcı yalnızca beyaz sayfa veya HTTP 500 görür.
APP_NAME=Axu Tours
PHP Fatal error: Uncaught Dotenv\Exception\InvalidFileException
HTTP/1.1 500 Internal Server Error
Laravel resmi dokümantasyonu, boşluk içeren çevre değişkenlerinin çift tırnakla yazılmasını ister. Dotenv yükleme sırasında istisna oluşur; PHP display_errors kapalıysa istisna ekrana basılmaz ve sorun beyaz sayfa gibi görünür.
Boşluklu değer tırnaksız bırakılmıştır.
APP_NAME=Axu ToursAPP_NAME="Axu Tours"Satır sonu açıklaması değerle karışabilir; yorumları ayrı satırda tutmak daha güvenlidir.
APP_URL=https://ornek.com # canlıAPP_URL="https://ornek.com"Üretimde hatayı göstermeyin fakat mutlaka kaydedin.
display_errors=Off
log_errors=Offdisplay_errors=Off
log_errors=On
error_log=/var/log/php/error.logUygulama açılabiliyorsa son istisnaları gösterir.
tail -n 150 storage/logs/laravel.log
tail -f storage/logs/laravel.log
Dotenv daha Laravel log sistemi başlamadan çökerse hata burada görünür.
journalctl -u php8.3-fpm -n 100 --no-pager
tail -n 100 /var/log/nginx/error.log
tail -n 100 /usr/local/apache/logs/error_log
Dosya biçimi bozuksa CLI doğrudan istisna üretir.
php -r 'require "vendor/autoload.php"; Dotenv\Dotenv::createImmutable(getcwd())->load(); echo "ENV OK\n";'
Eski önbelleğin düzeltilmiş değeri engellemesini önler.
php artisan optimize:clear
php artisan config:clear
php artisan about --only=environment
FTP veya SSH üzerinden .env dosyasının yedeğini alın.
Boşluk, #, tırnak, eşittir işareti veya satır sonu içeren değerleri belirleyin.
APP_NAME gibi boşluklu değerleri çift tırnak içine alın.
Artisan çalışıyorsa optimize:clear komutunu uygulayın.
HTTP 500 devam ederse PHP-FPM, Apache veya Nginx error logunu okuyun.
Sorun çözüldükten sonra APP_DEBUG=false ve log_errors=On kullanın.
Tırnaksız boşluk, kapanmamış tırnak veya bozuk satır.
Başlangıç istisnası ekranda gizleniyor.
.env daha framework açılmadan çökmektedir.
Yapılandırma önbelleği eski değeri kullanıyor.
Aramanızla eşleşen hata bulunamadı.
Değer boşluk içeriyorsa Laravel belgeleri çift tırnak kullanılmasını belirtir. Tek kelimelik değerlerde tırnak zorunlu değildir.
Yalnız güvenli geliştirme ortamında geçici olarak kullanılmalıdır. Üretimde loglar okunmalı ve APP_DEBUG=false kalmalıdır.
.env dosyasını doğrudan düzeltin ve PHP CLI ile Dotenv ayrıştırma testini çalıştırın.
Laravel, PHP-FPM, Nginx, Apache, MySQL, cPanel ve Plesk katmanlarını loglarla birlikte inceleyerek kalıcı çözüm uyguluyoruz.