Các Thiết Lập Cấu Hình Laravel Cơ Bản

Các Thiết Lập Cấu Hình Laravel Cơ Bản
Trong framework của Laravel thường có thư mục config – chứa đầy đủ cấu hình ứng dụng như database, mail, application, service, session,…

Ở phần trước, các bạn đã biết cách cài đặt Laravel như thế nào rồi. Trong bài này, chúng ta hãy cùng thử tìm hiểu thiết lập cấu hình cơ bản của Laravel như thế nào. Khi thiết lập xong, bạn sẽ có thông tin kết nối cơ sở dữ liệu, thông tin máy chủ thư mục, các giá trị cấu hình cốt lõi khác,…

 

Cấu hình môi trường 

 

Nếu có các giá trị cấu hình khác nhau, điều đó sẽ hữu ích khi ứng dụng đang chạy cần môi trường. Bạn có thể sử dụng cục bộ trình điều khiển của bộ nhớ cache khác với trình điều khiển bộ nhớ cache trên máy chủ ứng dụng của chính bạn. Để thực hiện sao cho dễ, thì Laravel có sử dụng thư viện PHP của DotEnv. Thư mục gốc của ứng dụng sẽ chứa file .env.example xác định nhiều biến môi trường phổ biến. Trong quá trình cài Laravel, thư mục này sẽ tự động sao chép qua file .env. 

 

File .env. chứa giá trị (một số) cấu hình chung có thể khác nhau tùy theo ứng dụng của bạn đang chạy cục bộ hoặc trên máy chủ web ứng dụng. Các giá trị này sau đó được truy xuất từ các tập cấu hình Laravel khác nhau trong thư mục config bằng cách sử dụng hàm env của Laravel. 

 

Nếu đang phát triển ứng dụng với một nhóm, bạn có thể tiếp tục tích hợp 1 file .env.example nữa với ứng dụng của chính bạn. Bằng cách đặt các giá trị trình giữ chỗ trong tập cấu hình, các lập trình viên trong nhóm của bạn sẽ thấy rõ những biến môi trường cần thiết để chạy ứng dụng. 

 

Bảo mật file môi trường 

 

File .env không được kết nối 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) có thể yêu cầu cấu hình môi trường khác nhau. Đây sẽ là lỗ hổng rủi ro trong bảo mật nếu có kẻ bên ngoài dành được quyền truy cập vào kho lưu trữ kiểm soát nguồn của bạn. Vì bất cứ thông tin xác thực nhạy cảm nào cũng có thể bị lộ.

 

Các loại biến môi trường 

 

Tất cả các biến trong file .env 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 để bạn trả về nhiều loại hơn từ hàm env(). 

 

Giá trị .env

Giá trị env()

true

(bool) true

(true)

(bool) true

false

(bool) false

(false)

(bool) false

empty

string “

(empty)

string “

null

(null) null

(null)

(null) null

 

Nế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 nên đặt giá trị trong dấu nháy kép “. Ví dụ: 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 này sẽ được tải vào super-global PHP $_ENV khi ứng dụng của bạn nhận được yêu cầu. Bạn cũng có thể sử dụng trình trợ giúp env để truy xuất giá trị từ các biến này trong tập cấu hình của bạn. Nếu xem lại các tập cấu hình Laravel, thì bạn sẽ thấy nhiều tùy chọn đã sử dụng trình trợ giúp: ‘debug’=> env (‘APP_DEBUG’, false). Giá trị thứ 2 được truyền cho hàm env 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 đã cho. 

 

Xác định môi trường hiện tại 

 

Môi trường ứng dụng hiện tại được xác lập thông qua biến APP_ENV từ file .env. Bạn có thể truy cập giá trị này thông qua phương thức environment trên façade App.

 

use Illuminate\Support\Facades\App; 

$environment = App::environment ();

 

Ngoài ra, bạn cũng có thể truyền các đối số cho phương thức environment để 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ề true nếu môi trường khớp với bất kỳ giá trị nào trong số các giá trị đã cho. 

 

if (App::environment('local')) {

}

if (App::environment(['local', 'staging'])) {

}

 

(môi trường là local hoặc staging)

 

Khi phát hiện môi trường ứng dụng hiện tại, bạn có thể ghi đè bằng cách xác định một biến môi trường APP_ENV cấp máy chủ.

 

Truy cập giá trị cấu hình 

 

Bạn có thể truy cập các giá trị cấu hình bằng cách sử dụng chức năng trợ giúp config từ bất cứ vị trí nào trong ứng dụng của bạn. Truy cập bằng cú pháp “dấu chấm” – bao gồm tên của tập tin và tùy chọn giá trị mà 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ại. 

 

$value = config('app_timezone');

Truy xuất một giá trị mặc định nếu giá trị cấu hình không có sẵn: 

 

$value = config('app_timezone' , 'tenkhuvuc/tenquocgia');

 

Để đặt giá trị các cấu hình trong thời gian chạy (runtime), bạn nên chuyển một mảng cho trình trợ giúp config: 

 

config(['app.timezone' => 'tenquocgia/tentinhbang']);

 

Cấu hình cache 

 

Để tăng tốc độ truy cập cho ứng dụng, nên lưu tất cả các tập cấu hình vào một tập tin duy nhất qua lệnh Artisan config: cache. Điều này sẽ giúp kết hợp tất cả tùy chọn cấu hình cho ứng dụng của bạn thành một tập tin duy nhất có thể được tải nhanh bởi framework.  Bạn nên chạy thêm lệnh php artisan config: chache như một phần của quá trình triển khai ứng dụng.

 

Không nên cho chạy lệnh trong quá trình triển khai ứng dụng cục bộ vì các tùy chọn trong cấu hình sẽ phải thay đổi thường xuyên khi bạn phát triển ứng dụng. Nếu bạn thực hiện lệnh config: cache (trong quá trình triển khai ứng dụng), bạn chỉ nên gọi hàm env 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ộ nhớ đệm, file .env sẽ không được tải. Vì vậy, hàm env sẽ chỉ trả về các biến môi trường bên ngoài và theo cấp hệ thống. 

 

Chế độ kiểm tra và sửa lỗi 

 

Bạn nên tùy chọn debug trong file cấu hình config/app.php của bạn để xác định số lượng thông tin bị lỗi thực sự hiển thị đến người dùng. Tùy chọn này được đặt để tôn trọng giá trị của biến môi trường APP_DEBUG được lưu trữ trong file env. 

 

Để phát triển toàn diện, bạn nên đổi biến môi trường APP_DEBUG thành true. Tuy nhiên, giá trị này luôn phải là false trong môi trường ứng dụng. Nếu bạn đặt nhầm thành true trong ứng dụng, thì bạn đang vô tình để lộ các giá trị cấu hình nhạy cảm và người dùng cuối (đang sử dụng ứng dụng của bạn) sẽ thấy hết các thông tin đó. 

 

Thiết lập các cấu hình cần thiết trong Laravel 

 

Để có thể cấu hình các thông số liên quan đến cache trong Laravel, bạn nên chỉnh sửa trong file config/cache.php. File đó hỗ trợ bạn chỉ định chính xác cache driver nào mà bạn cần sử dụng và chỉnh thành mặc định trong ứng dụng. Laravel hỗ trợ sẵn các hệ thống cache (phía back-end) như Memcached và Redis. 

 

Mặc định Laravel sẽ sử dụng cache driver là file, khi sử dụng driver này thì các cache data sẽ được lưu trữ vào các file và mặc định chúng sẽ được lưu trữ vào trong thư mục storage/framework/cache/data. Đối với các ứng dụng lớn thì bạn nên sử dụng những driver chuyên dụng hơn như Memcached hoặc Redis.

 

Thiết lập quyền ghi thư mục 

 

Trong Laravel, bạn nên cấp quyền ghi cho một số thư mục: storage, bootstrap hoặc cache. Nếu bạn dùng Linux, thì nên dùng một số câu lệnh: 

 

chown -R nginx:nginx storage hoặc
chown -R nginx:nginx bootstrap/cache

(nếu bạn dùng Nginx)

 

chown -R apache:apache storage
chown -R apache:apache bootstrap/cache

(nếu bạn dùng Apache) 

 

Thiết lập một số cấu hình cơ bản

 

Các thiết lập cấu hình cơ bản liên quan đến quyền truy cập thư mục, tạo key ứng dụng Laravel, tạo địa phương, tạo múi giờ,…Sau khi cài Laravel, bạn cần phân quyền ghi cho thư mục storage và bootstrap/cache để Laravel có thể chạy được. Nếu không thông qua bước này, bạn truy cập trang thì sẽ chỉ thấy lỗi 404 hiện ra. 

 

Tạo Application Key

 

Nếu bạn cài Laravel từ đầu, hệ thống sẽ tự tạo Application Key. Nếu bạn cài source code từ nguồn khác, thì bạn cần tạo Application bằng câu lệnh: php artisan key:generate.

 

Tạo múi giờ

 

Mở file config/app.php và chỉnh lại: 

 

'timezone' => 'Asia/Ho_Chi_Minh'

 

(ví dụ ở đây là chọn múi giờ ở khu vực châu Á và ở Tp.HCM)

 

Tạo môi trường 

 

Laravel cho phép chúng ta thiết lập môi trường cho một số ứng dụng như môi trường sản phẩm, kiểm tra, thử, phát triển,…Để thiết lập, bạn mở file .env: 

 

APP_ENV=local

APP_DEBUG=true

 

Tại đây, bạn có thể thay đổi 2 tham số:

  • APP_ENV: Thiết lập môi trường (local, production, staging,…)
  • APP_DEBUG: Bật tắt chế độ debug

 

Tạo cơ sở dữ liệu 

 

Các thiết lập liên quan đến cơ sở dữ liệu sẽ được tạo trong file .env hoặc config/database.php. Bên cạnh đó, bạn cũng có thể kết nối thêm với MySQL, SQLite, SQL Server,…Ví dụ bạn mặc định thiết lập kết nối với MySQL, bạn có thể thay đổi bằng cách sửa DB_CONNECTION trong file .env

 

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=laravel

DB_USERNAME=root

DB_PASSWORD=

 

Chuyển chế độ hệ thống 

 

Để mở chế độ bảo trì hệ thống, bạn chạy lệnh (Command Line): ở giao diện dòng lệnh php artisan down. Tất cả các link trên hệ thống khi truy cập sẽ có giao diện: 

 

Nếu muốn sửa giao diện, bạn cần sửa file : resources/views/errors/503.blade.php. Nếu chưa có sẵn, thì bạn tạo folder errors và file 503.blade.php. Để bật lại chế độ hoạt động, bạn chạy dòng lệnh php artisan up.

 

Đặt tên ứng dụng 

 

Thư mục app trong Laravel mặc định có namespace là App. Nếu bạn muốn đổi tên, thì bạn cần đặt tên cho ứng dụng bằng dòng lệnh: 

 

php artisan app:name Ten_ung-dung
// Màn hình sẽ hiển thị: 
Application namespace set!
The compiled services file has been removed.

 

 

 

Hồ Hữu Hiền

Mình là developer nên đôi khi viết bài không hay lắm mong các bạn thông cảm. Nếu muốn biết thêm thông tin về mình thì vui lòng vào website này để biết. https://huuhienqt.dev/

Bình luận (0)