Setelah meningkatkan ke Laravel 5.2, tidak ada file .env
nilai file yang dibaca. Saya mengikuti instruksi peningkatan ; tidak ada file konfigurasi saya yang diubah kecuali auth.php. Semuanya berfungsi dengan baik di versi sebelumnya, 5.1.19
.env
berisi nilai-nilai seperti
DB_DATABASE=mydb
DB_USERNAME=myuser
config/database.php
mengandung
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Saya mendapatkan kesalahan ini:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Jelas tidak menarik konfigurasi env saya. Ini memengaruhi setiap file konfigurasi saya, termasuk pihak ketiga seperti bugsnag.
Saya juga mencoba
php artisan config:clear
php artisan cache:clear
Memperbarui
Mencoba php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Saya telah mencoba menginstal salinan baru Laravel 5.2. Saya pada dasarnya hanya menyalin di app
folder saya ; tidak ada paket komposer tambahan yang disertakan. Masih mengalami masalah yang sama. Saya memiliki proyek Laravel 5.2 lainnya di server yang sama yang berfungsi dengan baik.
sumber
.env
Jawaban:
Dari Catatan Peningkatan Laravel 5.2 resmi:
Referensi: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
sumber
php artisan config:cache
memecahkannya untuk saya - tidak ada lagi yang membantu. Bahkan tidakphp artisan config:clear
- terima kasih!php artisan config:clear
adalah satu-satunya hal yang berhasil untuk sayaphp artisan config:clear
bekerja untuk saya. Saya tidak melakukan config: cache sebelumnya, jadi sepertinya agak aneh karena saya harus menghapus cache..env
alih-alih.env.example
fileJika salah satu
.env
variabel Anda berisi spasi, pastikan Anda membungkusnya dengan tanda kutip ganda. Sebagai contoh:SITE_NAME="My website"
Jangan lupa untuk membersihkan cache Anda sebelum menguji:
sumber
.env
file, jalankanphp artisan config:cache & php artisan config:clear
perintah. Ini akan berhasil.Wow. Menyedihkan. Itu karena saya memiliki nilai env dengan spasi di dalamnya, tidak dikelilingi tanda kutip
Ini
Berubah menjadi ini
Diperbaiki. Saya pikir ini ada hubungannya dengan Laravel 5.2 yang sekarang memutakhirkan vlucas / phpdotenv dari 1.1.1 ke 2.1.0
sumber
.env
bawah 5.2 sedangkan di 5.1 tidak.phpdotenv
, tetapi Laravel masih tahu ada.env
file yang perlu disertakan, dan itu tidak berhasil, tetapi tidak repot-repot memberi tahu siapa pun.Bagi saya ini telah berhasil dalam urutan ini:
Dan saya sudah mencoba semua yang lain tanpa hasil.
sumber
Saya memiliki masalah serupa di saya
config/services.php
dan saya pecahkan menggunakan perintahconfig clear
danoptimize
:sumber
Bagi saya yang berikut ini berhasil
sumber
jalankan ini:
kemudian
php artisan config:cache
sumber
Saya memiliki masalah yang sama di lingkungan lokal, saya menyelesaikannya dengan
sumber
Anda dapat menyelesaikan masalah dengan rekomendasi berikut
Rekomendasi 1:
Anda harus menggunakan file .env melalui file konfigurasi, artinya Anda diminta untuk membaca file .env dari file konfigurasi (seperti /config/app.php atau /config/database.php), kemudian Anda dapat menggunakan konfigurasi tersebut. file dari lokasi mana pun dalam proyek Anda.
Rekomendasi 2: Tetapkan nilai env Anda dalam tanda petik ganda
Rekomendasi 3: Pertahankan urutan perintah berikut setelah mengubah konfigurasi atau nilai env.
Rekomendasi 4: Jika sintaks1 tidak berfungsi, Anda dapat mencoba sintaksx2 lain
Rekomendasi 5: Ketika jumlah pengguna Anda tinggi / lebih, maka Anda harus meningkatkan ukuran memori terkait di konfigurasi server .
Rekomendasi 6: Tetapkan nilai kemungkinan default saat Anda membaca variabel .env.
sumber
Ketika Anda menjalankan perintah
php artisan config:cache
maka itu akan menghapus semuaenv
variabel danenv()
akan memberikan nilai null, coba jalankan perintah berikut dan boom di sana Andaenv()
lagi mulai menangkap semuaenv
variabelsumber
Saya melewatkan ini di petunjuk peningkatan:
Menambahkan baris ini membuat
.env
file lokal dibaca dengan benar.sumber
Kesederhanaan adalah kekuatannya:
Anda akan menerima:
Cache konfigurasi dihapus!
Konfigurasi berhasil di-cache!
sumber
Hal yang sama terjadi jika: port ada di .env lokal Anda
sekali lagi tanda kutip ganda berhasil
lalu
sumber
hapus cache menggunakan:
sumber
Juga tambahan untuk apa yang disarankan @andrewtweber memastikan bahwa Anda tidak memiliki spasi antara KEY = dan nilai kecuali jika di antara tanda kutip
file .env misalnya:
untuk:
sumber
Saya mengalami masalah yang sama ini di lokal saya, dan saya telah mencoba semua jawaban di sini tetapi tidak berhasil. Hanya ini yang berhasil untuk saya,
php artisan config:clear
danrestart server
. Bekerja seperti pesona!sumber
php artisan config:cache
,php artisan config:clear
laluphp artisan cache:clear
Saya memecahkan masalah ini menghasilkan kunci baru menggunakan perintah:
php artisan key:generate
sumber
jika Anda memang memanggil config: cache selama pengembangan lokal, Anda dapat membatalkannya dengan menghapus file bootstrap / cache / config.php. dan ini bekerja untukku.
sumber
jika Anda memang memanggil config: cache selama pengembangan lokal, Anda dapat membatalkannya dengan menghapus file bootstrap / cache / config.php. dan ini bekerja untukku.
@Payal Pandav sudah memberikan komentar di atas.
Saya ingin memberi tahu solusi sederhana. Cukup edit file config.php di folder bootstrap / cache /. Dan ubah kredensial. Ini berhasil untuk saya. Harap jangan hapus file ini karena ini mungkin berisi data penting lainnya di lingkungan produksi.
sumber
Dalam kasus saya, laravel 5.7
env('APP_URL')
tidak berfungsi tetapiconfig('app.url')
berfungsi. Jika saya menambahkan variabel baru keenv
dan ke konfigurasi - ini tidak berfungsi - tetapi setelahphp artisan config:cache
itu mulai berfungsi.sumber
php artisan optimize:clear
php artisan config:clear
untuk menghapus cache konfigurasi dan tidak akan menghasilkan lagi dan ketika Anda melanjutkan produksi, Anda dapat menjalankanphp artisan config:cache
cache konfigurasi AndaJika Anda menjalankan
php artisan config:cache
perintah ini di konsol maka itu akan menyimpan semua konten file .env di cache, setelah perintah ini jika Anda menambahkan konten apa pun ke file .env, itu tidak akan tersedia sampai Anda menjalankanphp artisan config:clear
perintahsumber
Saya sering menghadapi masalah yang sama selama perkembangan larva. beberapa kali env berhenti bekerja dan tidak mengembalikan nilai apa pun. alasan itu mungkin berbeda, tergantung pada situasi Anda. tetapi dalam kasus saya beberapa hari yang lalu saya hanya lari
jadi berhati-hatilah menggunakan perintah ini. karena itu akan menghapus semua data konfigurasi dari cache-nya. jadi setelah itu, tidak akan mengembalikan nilai apa pun. Jadi dalam situasi ini, Anda perlu menggunakan ini terlebih dahulu jika Anda telah menjalankan perintah PHP artisan config :: clear .
sumber
Saya mengalami ini. Alasannya adalah apache (pengguna www-data) tidak dapat membaca .env karena izin file. Jadi saya mengubah izin file untuk memastikan bahwa server (apache) telah membaca izin ke file tersebut. Hanya itu dan boom, semuanya berfungsi sekarang!
Pembaruan:
Cara melakukan ini bervariasi, tergantung pada siapa yang memiliki file .env, tetapi dengan asumsi itu milik
www-data
grup Apache , Anda dapat melakukan ini:Modifikasi itu tergantung pada struktur izin Anda.
sumber
So i changed the file permissions to ensure that the server (apache) had read permissions to the file.
ini sebenarnya pendekatan yang salah. Anda harus memperbaiki konfigurasi apaxhe sehingga melayani situs tertentu ini sebagai pemilik yang memiliki file-file iniSaya membuat kesalahan dengan melakukan dd / die / dump di file
index.php
file. Ini menyebabkan sistem tidak membuat ulang konfigurasi.Hanya melakukan dump dalam file tampilan akan dilakukan. Perubahan pada
.env
pembaruan file secara instan.sumber
Saya punya masalah dengan ini. Tampaknya ini adalah masalah izin file di suatu tempat di aplikasi - bukan file .env.
Saya harus - menghentikan buruh pelabuhan saya - menggunakan chown untuk mengatur hak kepemilikan kepada pengguna saya sendiri untuk keseluruhan proyek - mulai buruh pelabuhan lagi
Kali ini berhasil.
sumber
Mencoba hampir semua hal di atas. Akhirnya melakukan
chmod 666 .env
yang berhasil. Masalah ini tampaknya terus muncul di aplikasi yang saya warisi, namun, kali terakhir ini adalah setelah menambahkan .env.testing. Menjalankan Laravel 5.8
sumber