Không có khóa mã hóa ứng dụng nào được chỉ định


255

Tôi mới sử dụng Laravel và tôi đang cố gắng sử dụng lệnh Artisan ...

php artisan serve

Nó sẽ hiển thị...

Máy chủ phát triển Laravel đã bắt đầu: http://127.0.0.1:8000

Tuy nhiên, nó sẽ không tự động khởi chạy và khi tôi nhập thủ công http://127.0.0.1:8000, nó sẽ hiển thị lỗi này:

RuntimeException Không có khóa mã hóa ứng dụng nào được chỉ định.

Có ý kiến ​​gì không? Tôi đang sử dụng khung công tác Laravel 5,5-dev.


hoặc nếu nhu cầu tập tin .env của bạn phải được thay đổi ref: stackoverflow.com/questions/36276767/...
Nameishi

2
Các câu trả lời dưới đây là chính xác: tuy nhiên, nếu bạn lần đầu tiên chạy "php artisan phục vụ" và có phiên máy chủ web đang hoạt động, bạn sẽ cần phải khởi động lại máy chủ (điều khiển c trong thiết bị đầu cuối để dừng) để thay đổi có hiệu lực sau khi bạn thêm khóa vào tập tin .env của bạn.
Chris Adams

Câu trả lời:


437

Từ mã hóa - Laravel - Khung PHP dành cho nghệ nhân web :

"Trước khi sử dụng bộ mã hóa của Laravel, bạn phải đặt tùy chọn khóa trong tệp cấu hình config / app.php. Bạn nên sử dụng php artisan key:generatelệnh để tạo khóa này"

Tôi thấy rằng sử dụng truy vấn internet phức tạp này trong google.com:

"laravel thêm khóa mã hóa" (Vâng, nó hoạt động ngay cả với lỗi đánh máy!)


22
Tôi đã googled toàn bộ lỗi và không có gì phải lo lắng, chỉ cần googled thiết lập khóa encriptyon và tìm ra. Cảm thấy như một kẻ ngốc. Cảm ơn. Đối với bất kỳ ai đến đây chỉ cần chạy:php artisan key:generate
Carlos F

Tôi xin lỗi vì vậy bạn đang đặt php artisan key: tạo trong thiết bị đầu cuối? bởi vì tôi nhận được ErrorException
Nameishi

1
Đối với bất kỳ ai khác gặp phải vấn đề của tôi, hãy nhập mã này vào cp .env.example .env php artisan key:
created

5
php artisan key:generatethậm chí không làm việc cho tôi. Cung cấp cho tôi cùng một lỗi Không có khóa mã hóa ứng dụng nào được chỉ định , xin vui lòng giải pháp nào?
Oniya Daniel

7
Điều này làm việc cho tôi, nhưng trước tiên tôi phải đổi tên tệp .env.example thành .env để nó hoạt động, nếu không tôi đã gặp lỗi ".env: không có tệp như vậy".
Webomatik

129

Trong trường hợp của tôi, tôi cũng cần thiết lập lại các tệp cấu hình được lưu trong bộ nhớ cache:

php artisan key:generate
php artisan config:cache

5
Tôi luôn đến để xem câu trả lời này sau khi tôi quên xóa bộ nhớ cache
vijayrana

3
Điều này đã bị thiếu trong tất cả các câu trả lời. Cảm ơn rất nhiều! :)
Aman Alam

1
Để làm gì php artisan config:cache? Tại sao nó hữu ích?
Pathros

2
@Pathros để tạo / tạo lại các tệp cấu hình được lưu trong bộ nhớ cache
Leonid Dashko

1
Ngoài ra, trước tiên, hãy đảm bảo rằng .envtệp " " của bạn ít nhất chứa tùy chọn khóa trống, như:APP_KEY=
Top-Master

54

Mở dấu nhắc lệnh trong thư mục gốc của dự án của bạn và chạy bên dưới lệnh:

php artisan key:generate

Nó sẽ tạo Khóa ứng dụng cho ứng dụng của bạn.

Bạn có thể tìm thấy khóa ứng dụng được tạo (APP_KEY) trong .envtệp.


23

Đơn giản chỉ cần chạy lệnh này:

php artisan key:generate

1
Có nhưng nhiều máy chủ lưu trữ không có quyền truy cập dòng lệnh thì phải làm thế nào?
Dhiraj

2
một kết nối ssh hỗ trợ đa số. từ thiết bị đầu cuối của bạn chạy ssh yourusername @ server_ip
DJ

21
  1. Sao chép .env.examplevào .env:

    cp -a .env.example .env

  2. Tạo khóa:

    php artisan key:generate

  3. Chỉ sau đó chạy:

    php artisan serve


Rất tiếc. Đây là bước quan trọng! Một dự án Laravel mới cần một tệp .env hoặc không có gì sẽ hoạt động. Cảm ơn, Adam.
Eric L.

16

cp .env.example .envnếu không có tập tin .env. php artisan key:generatelệnh làm việc cho tôi. Nó tạo khóa mã hóa


4
xóa bộ đệm bằng php artisan config:cachelệnh sau các bước trên.
Sabyasachi Ghosh

Xóa bộ nhớ cache chủ yếu sẽ được yêu cầu của sản xuất / dàn nhưng không trong quá trình phát triển. (Trừ khi bạn muốn lưu trữ quan điểm của mình trong quá trình phát triển).
killstreet

14

Tôi thực sự đã phải thêm một tệp .env vào dự án của mình và sau đó sao chép nội dung của .env.example để nó key:generatehoạt động. Không chắc chắn tại sao tệp .env không được tạo khi tôi bắt đầu dự án.


1
Nó có thể phụ thuộc vào cách bạn cài đặt Laravel ... " Trong bản cài đặt Laravel mới, thư mục gốc của ứng dụng của bạn sẽ chứa một .env.exampletệp. Nếu bạn cài đặt Laravel qua Trình soạn thảo, tệp này sẽ tự động được đổi tên thành .env. Nếu không, bạn nên đổi tên gửi tệp thủ công. "- #En Cấu hình môi trường
Sᴀᴍ On

Ngoài ra, nếu bạn nhân bản dự án từ một repo nơi tệp .env có khả năng trong .gitignore, thì bạn cũng sẽ cần phải tạo nó. Từ các tài liệu của Laravel: 'Không nên cam kết tệp .env của bạn đối với kiểm soát nguồn của ứng dụng, vì mỗi nhà phát triển / máy chủ sử dụng ứng dụng của bạn có thể yêu cầu một cấu hình môi trường khác nhau'
Sami El Maameri

Tôi cũng thấy rằng nếu bạn tải xuống từ đám mây (tôi đang sử dụng windows), ví dụ như google-drive, sky-drive, v.v., các tệp .env, .env.example được đặt tên là _env, _env.example, v.v. đổi tên các tệp cho phù hợp và sau đó chỉ cần chạy 'php artisan key: created'.
Timothy Kruger

11
php artisan key:generate
php artisan config:cache

làm việc cho tôi, nhưng nó phải được thực hiện trong một dấu nhắc lệnh trên Windows.

Làm điều đó bên trong thiết bị đầu cuối trong PHPStorm đã không hoạt động.


11

Một vấn đề phổ biến bạn có thể gặp phải khi làm việc trên ứng dụng Laravel là ngoại lệ:

RuntimeException Không có khóa mã hóa ứng dụng nào được chỉ định.

Bạn sẽ thường gặp phải vấn đề này khi bạn kéo xuống một ứng dụng Laravel hiện có, nơi bạn sao chép .env.exampletệp vào .envnhưng không đặt giá trị cho APP_KEYbiến.

Tại dòng lệnh, ban hành lệnh Artisan sau để tạo khóa:

php artisan key:generate

Điều này sẽ tạo một khóa ngẫu nhiên cho APP_KEY, Sau khi hoàn thành .envchỉnh sửa, vui lòng nhập lệnh này trong thiết bị đầu cuối của bạn để xóa bộ nhớ cache:php artisan config:cache

Ngoài ra, nếu bạn đang sử dụng máy chủ web mặc định của PHP (ví dụ php artisan serve:), bạn cần khởi động lại máy chủ thay đổi .envgiá trị tệp của mình . bây giờ bạn sẽ không nhận được thông báo lỗi này.


9

Mở dấu nhắc lệnh trong thư mục gốc của dự án của bạn và chạy

php artisan key:generate

Sau đó

php artisan config:cache

và sau đó

Nếu bạn gặp cùng một lỗi sau khi có khóa-giá trị, thì chỉ cần sao chép giá trị APP_KEY từ tệp .env và dán nó vào config / app.php bằng 'key' => 'KEY CỦA BẠN',

và sau đó lại chạy

php artisan config:cache

7

Thực hiện theo các bước sau:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve

ngay cả sau khi tạo khóa trong tệp .env tôi vẫn gặp lỗi. Khi tôi chạy "php artisaan config: cache", nó đã xóa bộ đệm và sau đó chỉ có vấn đề của tôi được giải quyết. Cảm ơn rất nhiều.
Pankaj

6

Được rồi, tôi sẽ viết một hướng dẫn khác, vì không tìm thấy câu trả lời rõ ràng ở đây. Vì vậy, nếu bạn gặp phải vấn đề như vậy, hãy làm theo điều này:

  1. Đổi tên hoặc sao chép / đổi tên tệp .env.example trong thư mục gốc của dự án của bạn thành .env .

Bạn không nên chỉ tạo tệp .env trống mà hãy điền vào đó bằng nội dung của .env.example .

  1. Trong terminal, vào thư mục gốc của dự án (không phải thư mục chung) và chạy

Khóa thủ công php: tạo

  1. Nếu mọi thứ đều ổn, phản hồi trong terminal sẽ như thế này

Khóa ứng dụng [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] được đặt thành công.

  1. Bây giờ chỉ cần sao chép chính khóa và dán nó vào tệp .env của bạn làm giá trị cho APP_KEY. Dòng kết quả sẽ trông như thế này:

APP_KEY = cơ sở64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. Trong thiết bị đầu cuối chạy

Cấu hình nghệ nhân php: bộ đệm

Đó là nó.


Vì vậy, php artisan key:generatekhông tự động thêm khóa vào tệp .env của bạn?
Rwd

Không, trong trường hợp của tôi.
Dmitry Gordienko

4

Bạn có thể tạo Khóa mã hóa ứng dụng bằng lệnh này:

php artisan key:generate

Sau đó, tạo một tệp bộ đệm để tải cấu hình nhanh hơn bằng lệnh này:

php artisan config:cache

Hoặc, phục vụ ứng dụng trên máy chủ phát triển PHP bằng lệnh này:

php artisan serve

Đó là nó!


3

Nếu bạn git clone một số dự án thì loại vấn đề này thường có thể xảy ra.

  1. đảm bảo có .envtập tin
  2. chạy php artisan key:generatevà sau đó nó sẽ tạo ra APP_KEY trong .env
  3. cuối cùng chạy php artisan servevà nó sẽ hoạt động.

1

Tôi gặp phải vấn đề này khi tôi sao chép thủ công nội dung của dự án Laravel của mình (giả sử các trang web / tên cũ) vào một thư mục mới trên máy Mac của tôi (giả sử, các trang web / tên mới). Vì tôi đã kéo và thả thủ công, nó không lấy các tệp ẩn, cụ thể là, '.env'. Khi tôi nhìn kỹ hơn vào các trang web / oldname tôi đã thấy .editorconfig, .env, .env.example, .gitatrribut, .styleci.yml, v.v.

Lỗi đã biến mất khi tôi sao chép các tập tin ẩn vào thư mục mới.

Vì vậy, "Không có khóa mã hóa ứng dụng nào được chỉ định" là do Laravel nói về "tệp .env của bạn bị thiếu."


0

Tôi đã phải khởi động lại nhân viên xếp hàng của mình bằng cách sử dụng php artisan queue:restartsau khi chạy php artisan key:generateđể có được công việc.



0

Trong trường hợp của tôi, trong khi nhân bản dự án từ git, không có .env

tập tin. Vì vậy, tôi sao chép .envtệp từ dự án nguồn và dán vào dự án hiện tại của tôi và thay đổi cấu hình cơ sở dữ liệu của nó và nó chạy thành công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.