Yapılandırma önbelleğe alındığında Laravel istek sırasında .env dosyasını yeniden yüklemez. Ayrıca queue worker, Octane veya PHP-FPM gibi uzun yaşayan süreçler eski yapılandırmayı bellekte tutabilir.
php artisan config:cache
.env changed
Application still uses old DB_HOST
php artisan optimize:clear
Laravel config:cache çalıştırıldığında tüm yapılandırmayı tek dosyada birleştirir ve sonraki isteklerde .env yüklenmez. Bu nedenle uygulama içinde env() çağrıları config dosyaları dışında kullanılmamalı, değerler config() üzerinden okunmalıdır. Uzun yaşayan worker süreçleri de yeniden başlatılmalıdır.
env() yalnız config dosyasına taşınmalıdır.
$adres = env('API_URL');$adres = config('services.api.url');Kod güncellemesiyle cache yenilemesi birlikte yapılmalıdır.
git pull
composer installgit pull
composer install --no-dev --optimize-autoloader
php artisan optimize:clear
php artisan optimizeYeni işler yeni yapılandırmayla başlamalıdır.
.env değişti fakat worker çalışmaya devam ediyorphp artisan queue:restartAktif çevre ve oluşturulmuş cache dosyalarını kontrol eder.
php artisan about --only=environment
php artisan config:show database
ls -lah bootstrap/cache
Config, route, event ve view cache dosyalarını temizler.
php artisan optimize:clear
Kodun route closure içermediğini doğruladıktan sonra çalıştırın.
php artisan config:cache
php artisan route:cache
php artisan view:cache
Kullandığınız servisleri seçerek uygulayın.
php artisan queue:restart
php artisan octane:reload 2>/dev/null || true
systemctl reload php8.3-fpm
Hangi değerin eski kaldığını config:show ile belirleyin.
Uygulama kodunda config dosyaları dışındaki env() çağrılarını bulun.
Değerleri config/services.php veya uygun config dosyasına taşıyın.
optimize:clear çalıştırıp yeni .env değerini doğrulayın.
Üretim cache dosyalarını yeniden oluşturun.
Queue, Octane ve PHP-FPM süreçlerini kontrollü yenileyin.
Config cache açıkken env() config dışından çağrılıyor.
bootstrap/cache/config.php eski değeri içeriyor.
Worker bellekte eski config ile çalışıyor.
Cache edilemeyen route closure veya seri hale getirilemeyen yapı var.
Aramanızla eşleşen hata bulunamadı.
Config cache etkinse evet, cache yeniden oluşturulmalıdır. Geliştirme ortamında config cache kullanılmıyorsa çoğu değer sonraki istekte okunabilir.
Yalnız config için config:clear yeterlidir. Dağıtım sonrası tüm Laravel optimizasyon cache katmanlarını sıfırlamak için optimize:clear daha kapsamlıdır.
Her .env değişikliğinde zorunlu değildir; OPcache, preload veya uzun yaşayan özel süreçler nedeniyle eski kod/değer kalıyorsa kontrollü reload gerekebilir.
Laravel, PHP-FPM, Nginx, Apache, MySQL, cPanel ve Plesk katmanlarını loglarla birlikte inceleyerek kalıcı çözüm uyguluyoruz.