laravel

laravel okumuyor .değişiklikten sonra env dosyası

laravel okumuyor .değişiklikten sonra env dosyası

Sorun

Bu, yeni Laravel geliştiricileri arasında ortaya çıkan oldukça yaygın bir sorunsa.

Birçok kişi bilgilerini güncellemeye çalışıyor .env dosyasını yalnızca uygulamalarını yenilediklerini görmek için .env yapılandırma değerleri görünmüyor.

Ve daha da ilginç olanı, bu, Laravel sürümünüzü yükselttikten sonra oldukça sık ortaya çıkacaktır.

Yani örneğin, bu .env dosyası:

DB_DATABASE=laraveldb
DB_USERNAME=laraveluser

Sonra doğal olarak, yapılandırma/veritabanı içinde.php dosyasında buna sahip olacaksınız:

'mysql' => [
'veritabanı' => env('DB_DATABASE', 'lar'),
'kullanıcı adı' => env('DB_USERNAME', 'lar'),
]

burada forge varsayılan değerler anlamına gelir. Bu, bilgilerinizi sağlamamış olmanız durumunda bu değerlerin kullanılacağı anlamına gelir DB_DATABASE ve DB_USERNAME içindeki değerler .env dosyası. Bu bilgiler birazdan işinize yarayacaktır.

Şimdi, bu özel soruna sahip olduğunuzu nasıl anlarsınız, aşağıdaki istisna ile karşılaşırsanız:

PDOException: SQLSTATE[HY000] [1045] 'lar'@'localhost' kullanıcısı için erişim reddedildi
(şifre kullanarak: HAYIR)

Bu açıkça, Laravel uygulamanızın varsayılan değeri sizden çektiğini gösterir yapılandırma/veritabanı.php dosya ve senden değil .ortam .

Başka bir şey yapmadan önce, bu sorunu php artisan tinker kullanarak da doğrulamayı deneyebilirsiniz:

>>> env('DB_DATABASE')
=> boş
>>> getenv('DB_DATABASE')
=> yanlış
>>> config('veritabanı.bağlantılar.mysql.veri tabanı')
=> “lar”
>>> dd($_ENV)
[]

Aşağıdakileri yapmanın da bir fark yaratmayacağını sık sık göreceksiniz. Ancak geliştiriciler, tamamen yeni bir Laravel kurulumu çalıştırarak ve sadece eski uygulama klasörünü kopyalayarak yapılandırmalarını test etmeye çalışırlar. Herhangi bir besteci paketi kurulumu çalıştırmazlar veya başka bir şey yapmazlar.

Linux'ta değilseniz (nedenini biraz sonra anlatacağım), herhangi bir değişiklik görmeyeceksiniz.

Çözüm

Her zaman olduğu gibi, bu sorunu çözmek için yapabileceğiniz birçok şey var ancak bunlardan birkaçının başarılı olma olasılığı daha yüksek.

Yapılandırma önbelleğinizi temizleyin

Öncelikle, yapmadıysanız, başka bir şey yapmadan önce yapılandırma önbelleğinizi temizlemelisiniz.

Kodumuz günümüzde çok sayıda kitaplık kullandığından, çalışma zamanında bunlara hızlı erişim sağlamak için şeyleri önbelleğe almak zorunda kalıyoruz.

Kişisel olarak Windows ve Mac'te bununla ilgili sorunlar yaşadım, ancak bir nedenden dolayı, Linux'ta (Ubuntu) bu yapılandırma dosyalarının ya bir çeşit kanca ile temizlendiğini ya da hiç önbelleğe alınmadıklarını fark ettim, çünkü yapabildim. uygulamayı yenisiyle yeniden yükleyin .aşağıdakileri yapmadan env değerleri.

Aşağıdaki komutları çalıştırarak yapılandırma önbelleğinizi temizlediğinizden emin olun:

php esnaf yapılandırması:önbellek
php esnaf yapılandırması:temizle

İçinizde boş alanlar olup olmadığını kontrol edin .env dosyası

Bir sonraki çözüm, içinizde beyaz boşlukların olması açısındandır .env dosyası. Ve bu, çoğu insanın başarısız olduğu ve saçlarını yolmaya başladığı zaman.

Bunu kaçırmak çok kolay ama örnek olarak elinizde ne olabilir? .env dosyası şuna benzer:

SITE_NAME=Laravel Uygulamam

Bu tek başına işe yaramaz çünkü beyaz boşluklar .env dosyası.

Yapmanız gereken, değerlerinizi aşağıdaki gibi tırnak içine almaktır:

SITE_NAME=”Benim Laravel Uygulamam”

Bu sefer her şey yolunda gitmeli.

Her değişiklik yaptığınızda yapılandırma önbelleğinizi temizlediğinizden emin olun. Bunu daha önce olduğu gibi yapabiliriz:

php esnaf yapılandırması:önbellek
php esnaf yapılandırması:temizle
Daha Önce Bir Linux Sürümü Olmayan Linux için HD Remastered Oyunlar
Birçok oyun geliştiricisi ve yayıncısı, franchise'ın ömrünü uzatmak için eski oyunların HD remaster'ı ile geliyor, lütfen modern donanımla uyumluluk i...
Linux Oyunlarını Otomatikleştirmek için AutoKey Nasıl Kullanılır?
AutoKey, Linux ve X11 için Python 3, GTK ve Qt'de programlanmış bir masaüstü otomasyon aracıdır. Komut dosyası oluşturma ve MAKRO işlevselliğini kulla...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...