Hướng dẫn cấu hình Laravel trên DirectAdmin và hướng dẫn sửa lỗi Laravel 404, 403 khi sử dụng VPS Directadmin chạy Nginx.
Sửa lỗi Laravel 404 và 403 – Laravel là một PHP framework mã nguồn mở và miễn phí nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo cấu trúc MVC Model-View-Controller. Khi bạn triển khai Laravel trên VPS sử dụng Directadmin với webserver Nginx, có thể bạn sẽ gặp phải lỗi 404 và 403 khi truy cập website. Trong bài viết này chúng tôi sẽ hướng dẫn các bạn cách khắc phục lỗi này.
Nguyên nhân gây lỗi
Lưu ý: Trong bài viết này chúng tôi sẽ chỉ hướng dẫn lỗi do cấu hình virtual hosting và mặc định rằng code của các bạn hoàn toàn bình thường không có lỗi do route cũng như auth
Theo đúng cấu trúc của Laravel thì tất cả request sẽ chạy thẳng vào thư mục public tuy nhiên cấu hình virtual hosting của VPS sẽ chỉ trỏ tới thư mục public_html, chính điều này là nguyên nhân gây ra lỗi 403 khi triển khai mã nguồn Laravel.
Đối với lỗi 404 nguyên nhân chính là do Nginx khác với Apache, nó không sử dụng file .htaccess, chính vì vậy khi triển khai Laravel lên Nginx sẽ thiếu rules rewrite dẫn đến lỗi 404.
Cách sửa lỗi Laravel 404 và 403 khi sử dụng VPS Directadmin chạy Nginx
Việc đầu tiên cần phải làm chính là kiểm tra và sửa lại file vhost cho đúng, để làm việc này các bạn login vào Directadmin với tài khoản admin và làm theo các bước dưới đây:
Bước 1: Từ giao diện admin các bạn truy cập Custom HTTPD Configurations
Bước 2: Tùy thuộc bạn sử dụng web server là Apache hay Nginx mà có cấu hình tương ứng.
1. Nếu bạn sử dụng Apache, click vào httpd.conf (số 1), rồi chọn CUSTOMIZE và điền vào nội dung sau
|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html/public|
2. Nếu bạn sử dụng Nginx hoặc Apache – Nginx thì click vào nginx.conf proxy (số 2), rồi bấm CUSTOMIZE và làm như hình sau:
Trong đó, phần nginx.conf customization for ten-mien-cua-ban.vn thì bạn điền code sau:
|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html/public|
Hoặc điền cụ thể thông tin như hình minh họa phía trên, với. Bạn nhớ thay username và domain tương ứng của mình.
Tiếp đó, chuyển sang tab CUSTOM3 và điền thêm nội dung sau
try_files $uri $uri/ /index.php?$args;
Sau đó, bạn bấm Save để lưu lại cấu hình
Bước 3: Khởi động lại Apache hoặc Nginx
Nếu chạy nginx, bạn khởi động theo lệnh sau:
service nginx restart
Chúc các bạn thành công.