Cấu hình Máy chủ ảo cho dự án Laravel

Tram Ho

Hẳn trong thực tế các bạn đã gặp phải trường hợp chia nhiều domain cho một trang web. Ví dụ đơn giản là trang web bán hàng “webbanhang.com” và trang admin cho web bán hàng đó “admin.webbanhang.com“.
Trong bài viết này, chúng ta sẽ cùng bàn luận cách để config Virtual Host cho một project Laravel tại local sử dụng Apache làm web server.

Virtual host là gì?

Virtual host là một định nghĩa chỉ chức năng nhúng nhiều tên miền vào một địa chỉ IP của một Server. Và bằng cách cài đặt riêng, Server sẽ nhận biết được tên miền nào sẽ hoạt động ở một folder nào. Điều này mang ý nghĩa rất lớn vì chúng ta không cần mỗi tên miền một địa chỉ IP mà chỉ cần một server là có thể nhúng hàng trăm tên miền cùng hoạt động.

Config Apache để sử dụng Virtual host

Chúng ta cần có apache để config 1 virtual host. Nếu bạn chưa cài apache thì có thể làm theo hướng dẫn ở link này: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04.

Một trong những khó khăn hay gặp nhất khi config project Laravel trên Apache HTTP Server là mod_writer không được enable. Laravel cần mod_writer để chuyển đổi URL sang routing của nó thông qua .htaccess

Trong một số nền tảng Ubuntu, mod_writer mặc định sẽ được enable, nhưng vì lý do bảo mật mặc định bây giờ sẽ bị disable. Để enbale mod_writer chúng ta cần chạy lệnh

Tạo virtual host

Để tạo một virtual host mới chúng ta cần tạo một file config mới, trong đó sẽ khai báo tên virtual host của chúng ta. Ở đây mình sẽ vd có 2 trang web: 1 là localdriver.local và 2 là admin.localdriver.local.

Bạn cần quyền admin để thao tác các tệp đó, vì vậy đừng quên sử dụng sudo nếu bạn không có quyền truy cập root.

Sửa file config

File config sau khi được tạo ra sẽ như thế này.

Các bạn hãy sửa lại như sau:

Thêm entry vào host

Ở trên bạn đã admin.localdriver.local là tên server. Chúng ta cần config hệ thống để khi chúng ta nhập admin.localdriver.local ở trong trình duyệt thì sẽ chuyển hướng về localhost.

Để làm điều này chúng ta cần thêm entry vào file host của máy

Thêm dòng này vào cuối file

Bây giờ config đã xong, chúng ta cần kích hoạt trang web mới.

Sau đó reload lại apache server

Với trang localdriver.local thì các bạn cũng làm tương tự nhé

Cài đặt project Laravel

Chuẩn bị file env

Trong file env của project hãy thay đổi APP_URL và thêm APP_ADMIN_URL như sau:

Khai báo route

Chúng ta có 2 domain khác nhau nên giờ cần chia route theo domain. Ở đây mình đơn giản sẽ group các route theo domain

Chạy thử

Chúng ta đã chuẩn bị xong rồi. Bây giờ chạy thử nào

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo