Tất cả các tệp cấu hình cho khung Laravel được lưu trữ trong thư mục
APP_NAME="My Application"
8. Mỗi tùy chọn đều được ghi lại, vì vậy, vui lòng xem qua các tệp và làm quen với các tùy chọn có sẵn cho bạnCác tệp cấu hình này cho phép bạn định cấu hình những thứ như thông tin kết nối cơ sở dữ liệu, thông tin máy chủ thư của bạn, cũng như nhiều giá trị cấu hình cốt lõi khác, chẳng hạn như múi giờ ứng dụng và khóa mã hóa
Tổng quan về ứng dụng
Đang vội?
Nếu bạn chỉ quan tâm đến một phần cụ thể của kết quả tổng quan về ứng dụng, bạn có thể lọc phần đó bằng tùy chọn
'debug' => env['APP_DEBUG', false],
0php artisan about --only=environment
Cấu hình môi trường
Thường hữu ích khi có các giá trị cấu hình khác nhau dựa trên môi trường mà ứng dụng đang chạy. Ví dụ: bạn có thể muốn sử dụng cục bộ trình điều khiển bộ đệm khác với trình điều khiển bộ đệm mà bạn sử dụng trên máy chủ sản xuất của mình
Để thực hiện điều này một cách chắc chắn, Laravel sử dụng thư viện DotEnv PHP. 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 tệp
'debug' => env['APP_DEBUG', false],
1 xác định nhiều biến môi trường phổ biến. Trong quá trình cài đặt Laravel, tệp này sẽ tự động được sao chép vào 'debug' => env['APP_DEBUG', false],
2Tệp
'debug' => env['APP_DEBUG', false],
2 mặc định của Laravel chứa một số giá trị cấu hình phổ biến có thể khác nhau dựa trên việc ứng dụng của bạn đang chạy cục bộ hay trên máy chủ web sản xuất. Các giá trị này sau đó được lấy từ các tệp cấu hình Laravel khác nhau trong thư mục APP_NAME="My Application"
8 bằng hàm 'debug' => env['APP_DEBUG', false],
5 của LaravelNếu bạn đang phát triển với một nhóm, bạn có thể muốn tiếp tục bao gồm tệp
'debug' => env['APP_DEBUG', false],
1 cùng với đơn đăng ký của mình. Bằng cách đặt các giá trị giữ chỗ trong tệp cấu hình ví dụ, các nhà phát triển khác trong nhóm của bạn có thể thấy rõ các biến môi trường nào cần thiết để chạy ứng dụng của bạnLưu ý
Bất kỳ biến nào trong tệp2 của bạn đều có thể bị ghi đè bởi các biến môi trường bên ngoài, chẳng hạn như biến môi trường cấp máy chủ hoặc cấp hệ thống.
'debug' => env['APP_DEBUG', false],
Bảo mật tệp môi trường
Tệp
'debug' => env['APP_DEBUG', false],
2 của bạn không nên được cam kết với quyền 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 cấu hình môi trường khác. Hơn nữa, đây sẽ là một rủi ro bảo mật trong trường hợp kẻ xâm nhập có quyền truy cập vào kho lưu trữ kiểm soát nguồn của bạn, vì mọi thông tin đăng nhập nhạy cảm sẽ bị lộTuy nhiên, có thể mã hóa tệp môi trường của bạn bằng mã hóa môi trường tích hợp của Laravel. Các tệp môi trường được mã hóa có thể được đặt trong kiểm soát nguồn một cách an toàn
Tệp môi trường bổ sung
Trước khi tải các biến môi trường của ứng dụng của bạn, Laravel xác định xem biến môi trường
'debug' => env['APP_DEBUG', false],
9 đã được cung cấp từ bên ngoài chưa hay đối số CLI của APP_NAME="My Application"
30 đã được chỉ định chưa. Nếu vậy, Laravel sẽ cố tải một tệp APP_NAME="My Application"
31 nếu nó tồn tại. Nếu nó không tồn tại, tệp 'debug' => env['APP_DEBUG', false],
2 mặc định sẽ được tảiCác loại biến môi trường
Tất cả các biến trong tệp
'debug' => env['APP_DEBUG', false],
2 của bạn thường được phân tích cú pháp dưới dạng chuỗi, do đó, một số giá trị dành riêng đã được tạo để cho phép bạn trả về phạm vi loại rộng hơn từ hàm APP_NAME="My Application"
34'debug' => env['APP_DEBUG', false],
2 Giá trịAPP_NAME="My Application"
34 Giá trịtrue[bool] true[true][bool] truefalse[bool] false[false][bool] falseempty[string] ''[empty][string] ''null[null] null[null][null] nullNếu bạn cần xác định một biến môi trường có giá trị chứa khoảng trắng, bạn có thể làm như vậy bằng cách đặt giá trị trong dấu ngoặc kép
APP_NAME="My Application"
Truy xuất cấu hình môi trường
Tất cả các biến được liệt kê trong tệp
'debug' => env['APP_DEBUG', false],
2 sẽ được tải vào siêu toàn cục PHP APP_NAME="My Application"
38 khi ứng dụng của bạn nhận được yêu cầu. Tuy nhiên, bạn có thể sử dụng hàm 'debug' => env['APP_DEBUG', false],
5 để truy xuất các giá trị từ các biến này trong tệp cấu hình của mình. Trên thực tế, nếu bạn xem lại các tệp cấu hình của Laravel, bạn sẽ nhận thấy nhiều tùy chọn đã sử dụng chức năng này'debug' => env['APP_DEBUG', false],
Giá trị thứ hai được truyền cho hàm
'debug' => env['APP_DEBUG', false],
5 là "giá trị mặc định". Giá trị này sẽ được trả về nếu không có biến môi trường nào tồn tại cho khóa đã choXác định môi trường hiện tại
Môi trường ứng dụng hiện tại được xác định thông qua biến
'debug' => env['APP_DEBUG', false],
9 từ tệp 'debug' => env['APP_DEBUG', false],
2 của bạn. Bạn có thể truy cập giá trị này thông qua phương pháp 'debug' => env['APP_DEBUG', false],
83 trên mặt tiền 'debug' => env['APP_DEBUG', false],
84APP_NAME="My Application"
3Bạn cũng có thể truyền đối số cho phương thức
'debug' => env['APP_DEBUG', false],
83 để xác định xem môi trường có khớp với một giá trị nhất định hay không. Phương thức sẽ trả về 'debug' => env['APP_DEBUG', false],
86 nếu môi trường khớp với bất kỳ giá trị nào đã cho'debug' => env['APP_DEBUG', false],
8Lưu ý
Có thể ghi đè phát hiện môi trường ứng dụng hiện tại bằng cách xác định biến môi trường9 cấp máy chủ.
'debug' => env['APP_DEBUG', false],
Mã hóa tập tin môi trường
Các tệp môi trường không được mã hóa sẽ không bao giờ được lưu trữ trong kiểm soát nguồn. Tuy nhiên, Laravel cho phép bạn mã hóa các tệp môi trường của mình để chúng có thể được thêm vào kiểm soát nguồn một cách an toàn với phần còn lại của ứng dụng của bạn
mã hóa
Để mã hóa tệp môi trường, bạn có thể sử dụng lệnh
'debug' => env['APP_DEBUG', false],
88Chạy lệnh
'debug' => env['APP_DEBUG', false],
88 sẽ mã hóa tệp 'debug' => env['APP_DEBUG', false],
2 của bạn và đặt nội dung được mã hóa vào tệp php artisan about --only=environment
81. Khóa giải mã được trình bày trong đầu ra của lệnh và phải được lưu trữ trong trình quản lý mật khẩu an toàn. Nếu bạn muốn cung cấp khóa mã hóa của riêng mình, bạn có thể sử dụng tùy chọn php artisan about --only=environment
82 khi gọi lệnhphp artisan about --only=environment
8Lưu ý
Độ dài của khóa được cung cấp phải khớp với độ dài của khóa theo yêu cầu của mật mã mã hóa đang được sử dụng. Theo mặc định, Laravel sẽ sử dụng mã hóa83 yêu cầu khóa 32 ký tự. Bạn có thể tự do sử dụng bất kỳ mật mã nào được hỗ trợ bởi bộ mã hóa của Laravel bằng cách chuyển tùy chọn
php artisan about --only=environment
84 khi gọi lệnh.
php artisan about --only=environment
Nếu ứng dụng của bạn có nhiều tệp môi trường, chẳng hạn như
'debug' => env['APP_DEBUG', false],
2 và php artisan about --only=environment
86, thì bạn có thể chỉ định tệp môi trường sẽ được mã hóa bằng cách cung cấp tên môi trường thông qua tùy chọn APP_NAME="My Application"
30'debug' => env['APP_DEBUG', false],
6giải mã
Để giải mã tệp môi trường, bạn có thể sử dụng lệnh
php artisan about --only=environment
88. Lệnh này yêu cầu khóa giải mã, mà Laravel sẽ lấy từ biến môi trường php artisan about --only=environment
89Hoặc, khóa có thể được cung cấp trực tiếp cho lệnh thông qua tùy chọn
php artisan about --only=environment
82'debug' => env['APP_DEBUG', false],
0Khi lệnh
php artisan about --only=environment
88 được gọi, Laravel sẽ giải mã nội dung của tệp php artisan about --only=environment
81 và đặt nội dung đã giải mã vào tệp 'debug' => env['APP_DEBUG', false],
2Tùy chọn
php artisan about --only=environment
84 có thể được cung cấp cho lệnh php artisan about --only=environment
88 để sử dụng mật mã mã hóa tùy chỉnh'debug' => env['APP_DEBUG', false],
6Nếu ứng dụng của bạn có nhiều tệp môi trường, chẳng hạn như
'debug' => env['APP_DEBUG', false],
2 và php artisan about --only=environment
86, thì bạn có thể chỉ định tệp môi trường sẽ được giải mã bằng cách cung cấp tên môi trường thông qua tùy chọn APP_NAME="My Application"
30'debug' => env['APP_DEBUG', false],
0Để ghi đè lên tệp môi trường hiện có, bạn có thể cung cấp tùy chọn
'debug' => env['APP_DEBUG', false],
69 cho lệnh php artisan about --only=environment
88APP_NAME="My Application"
0Truy cập giá trị cấu hình
Bạn có thể dễ dàng truy cập các giá trị cấu hình của mình bằng hàm toàn cầu
APP_NAME="My Application"
8 từ bất kỳ đâu trong ứng dụng của bạn. Các giá trị cấu hình có thể được truy cập bằng cú pháp "dấu chấm", bao gồm tên của tệp và tùy chọn bạn muốn truy cập. Giá trị mặc định cũng có thể được chỉ định và sẽ được trả về nếu tùy chọn cấu hình không tồn tạiAPP_NAME="My Application"
1Để đặt giá trị cấu hình trong thời gian chạy, hãy chuyển một mảng tới hàm
APP_NAME="My Application"
8APP_NAME="My Application"
2Bộ nhớ đệm cấu hình
Để tăng tốc độ cho ứng dụng của bạn, bạn nên lưu trữ tất cả các tệp cấu hình của mình vào một tệp duy nhất bằng cách sử dụng lệnh Artisan
'debug' => env['APP_DEBUG', false],
03. Điều này sẽ kết hợp tất cả các tùy chọn cấu hình cho ứng dụng của bạn thành một tệp duy nhất mà khung có thể tải nhanh chóngThông thường, bạn nên chạy lệnh
'debug' => env['APP_DEBUG', false],
04 như một phần của quy trình triển khai sản xuất của mình. Không nên chạy lệnh trong quá trình phát triển cục bộ vì các tùy chọn cấu hình sẽ thường xuyên cần được thay đổi trong quá trình phát triển ứng dụng của bạnCảnh báo
Nếu bạn thực thi lệnh03 trong quá trình triển khai của mình, bạn nên đảm bảo rằng mình chỉ gọi hàm
'debug' => env['APP_DEBUG', false],
5 từ bên trong các tệp cấu hình của mình. Khi cấu hình đã được lưu vào bộ đệm, tệp
'debug' => env['APP_DEBUG', false],
2 sẽ không được tải; .
'debug' => env['APP_DEBUG', false],
Chế độ kiểm tra sửa lỗi
Tùy chọn
'debug' => env['APP_DEBUG', false],
09 trong tệp cấu hình 'debug' => env['APP_DEBUG', false],
60 của bạn xác định lượng thông tin về lỗi thực sự được hiển thị cho người dùng. Theo mặc định, tùy chọn này được đặt để tôn trọng giá trị của biến môi trường 'debug' => env['APP_DEBUG', false],
61, được lưu trữ trong tệp 'debug' => env['APP_DEBUG', false],
2 của bạnĐể phát triển cục bộ, bạn nên đặt biến môi trường
'debug' => env['APP_DEBUG', false],
61 thành 'debug' => env['APP_DEBUG', false],
86. Trong môi trường sản xuất của bạn, giá trị này phải luôn là 'debug' => env['APP_DEBUG', false],
65. Nếu biến được đặt thành 'debug' => env['APP_DEBUG', false],
86 trong quá trình sản xuất, bạn có nguy cơ để lộ các giá trị cấu hình nhạy cảm cho người dùng cuối của ứng dụngChế độ bảo trì
Khi ứng dụng của bạn ở chế độ bảo trì, chế độ xem tùy chỉnh sẽ được hiển thị cho tất cả các yêu cầu trong ứng dụng của bạn. Điều này giúp dễ dàng "vô hiệu hóa" ứng dụng của bạn khi nó đang cập nhật hoặc khi bạn đang bảo trì. Kiểm tra chế độ bảo trì được bao gồm trong ngăn xếp phần mềm trung gian mặc định cho ứng dụng của bạn. Nếu ứng dụng đang ở chế độ bảo trì, một phiên bản
'debug' => env['APP_DEBUG', false],
67 sẽ được đưa ra với mã trạng thái là 503Để bật chế độ bảo trì, hãy thực hiện lệnh
'debug' => env['APP_DEBUG', false],
68 ArtisanNếu bạn muốn tiêu đề HTTP
'debug' => env['APP_DEBUG', false],
69 được gửi cùng với tất cả các phản hồi ở chế độ bảo trì, bạn có thể cung cấp tùy chọn 'debug' => env['APP_DEBUG', false],
00 khi gọi lệnh 'debug' => env['APP_DEBUG', false],
68. Tiêu đề 'debug' => env['APP_DEBUG', false],
69 sẽ hướng dẫn trình duyệt tự động làm mới trang sau số giây được chỉ địnhAPP_NAME="My Application"
3Bạn cũng có thể cung cấp tùy chọn
'debug' => env['APP_DEBUG', false],
03 cho lệnh 'debug' => env['APP_DEBUG', false],
68, tùy chọn này sẽ được đặt làm giá trị của tiêu đề HTTP 'debug' => env['APP_DEBUG', false],
05, mặc dù các trình duyệt thường bỏ qua tiêu đề nàyBỏ qua chế độ bảo trì
Để cho phép bỏ qua chế độ bảo trì bằng mã thông báo bí mật, bạn có thể sử dụng tùy chọn
'debug' => env['APP_DEBUG', false],
06 để chỉ định mã thông báo bỏ qua chế độ bảo trìAPP_NAME="My Application"
4Sau khi đặt ứng dụng ở chế độ bảo trì, bạn có thể điều hướng đến URL ứng dụng khớp với mã thông báo này và Laravel sẽ cấp cookie bỏ qua chế độ bảo trì cho trình duyệt của bạn
APP_NAME="My Application"
5Khi truy cập vào route ẩn này, bạn sẽ được chuyển đến route
'debug' => env['APP_DEBUG', false],
07 của ứng dụng. Khi cookie đã được cấp cho trình duyệt của bạn, bạn sẽ có thể duyệt ứng dụng bình thường như thể nó không ở chế độ bảo trìLưu ý
Bí mật chế độ bảo trì của bạn thường phải bao gồm các ký tự chữ và số và, tùy chọn, dấu gạch ngang. Bạn nên tránh sử dụng các ký tự có ý nghĩa đặc biệt trong URL, chẳng hạn như08.
'debug' => env['APP_DEBUG', false],
Kết xuất trước Chế độ xem chế độ bảo trì
Nếu bạn sử dụng lệnh
'debug' => env['APP_DEBUG', false],
09 trong quá trình triển khai, đôi khi người dùng của bạn vẫn có thể gặp lỗi nếu họ truy cập ứng dụng trong khi các thành phần phụ thuộc Trình soạn thảo hoặc các thành phần cơ sở hạ tầng khác của bạn đang cập nhật. Điều này xảy ra do một phần quan trọng của khung Laravel phải khởi động để xác định ứng dụng của bạn đang ở chế độ bảo trì và hiển thị chế độ xem chế độ bảo trì bằng cách sử dụng công cụ tạo khuôn mẫuVì lý do này, Laravel cho phép bạn kết xuất trước chế độ xem chế độ bảo trì sẽ được trả về ngay khi bắt đầu chu kỳ yêu cầu. Chế độ xem này được hiển thị trước khi bất kỳ phần phụ thuộc nào của ứng dụng của bạn được tải. Bạn có thể kết xuất trước một mẫu bạn chọn bằng cách sử dụng tùy chọn
APP_NAME="My Application"
01 của lệnh 'debug' => env['APP_DEBUG', false],
68APP_NAME="My Application"
6Chuyển hướng yêu cầu chế độ bảo trì
Trong khi ở chế độ bảo trì, Laravel sẽ hiển thị chế độ xem chế độ bảo trì cho tất cả các URL ứng dụng mà người dùng cố gắng truy cập. Nếu muốn, bạn có thể hướng dẫn Laravel chuyển hướng tất cả các yêu cầu đến một URL cụ thể. Điều này có thể được thực hiện bằng cách sử dụng tùy chọn
APP_NAME="My Application"
02. Ví dụ: bạn có thể muốn chuyển hướng tất cả các yêu cầu đến URI 'debug' => env['APP_DEBUG', false],
07APP_NAME="My Application"
7Tắt chế độ bảo trì
Để tắt chế độ bảo trì, hãy sử dụng lệnh
APP_NAME="My Application"
04Lưu ý
Bạn có thể tùy chỉnh mẫu chế độ bảo trì mặc định bằng cách xác định mẫu của riêng mình tại05.
APP_NAME="My Application"
Chế độ bảo trì & hàng đợi
Trong khi ứng dụng của bạn ở chế độ bảo trì, sẽ không có công việc xếp hàng nào được xử lý. Các công việc sẽ tiếp tục được xử lý như bình thường sau khi ứng dụng thoát khỏi chế độ bảo trì
Các lựa chọn thay thế cho chế độ bảo trì
Vì chế độ bảo trì yêu cầu ứng dụng của bạn có vài giây thời gian ngừng hoạt động, hãy xem xét các lựa chọn thay thế như Laravel Vapor và Envoyer để hoàn thành việc triển khai không có thời gian ngừng hoạt động với Laravel