Để chạy Laravel trên VPS mượt mà, bạn cần một máy chủ ảo tối thiểu 1GB RAM (khuyến nghị 2GB) cài đặt hệ điều hành Ubuntu, kết hợp cùng web server (Nginx/Apache), PHP và cơ sở dữ liệu (MySQL/PostgreSQL). Quá trình deploy có thể thực hiện thủ công bằng lệnh terminal hoặc tự động hóa qua các control panel. Mấu chốt quan trọng nhất để website hoạt động là phải trỏ Document Root của web server vào đúng thư mục /public và cấp quyền ghi cho thư mục storage.
Các điểm chính:
- OS & Tài nguyên: Ubuntu, Khuyến nghị từ 2GB RAM.
- Môi trường yêu cầu: PHP (đúng version dự án), Composer, Nginx/Apache, MySQL.
- 2 phương pháp deploy: Tự cấu hình (thủ công) hoặc dùng Panel/Script (FlashPanel, LarVPS).
- Điểm cốt lõi: Document Root =
/public, chmod thư mụcstoragevàbootstrap/cache.
Khác với Shared Hosting truyền thống, việc đưa một ứng dụng Laravel lên VPS đòi hỏi người lập trình viên hoặc quản trị viên phải có kiến thức nhất định về quản trị hệ thống Linux. Nếu thiết lập môi trường không chuẩn hoặc cấu hình sai, bạn sẽ ngay lập tức đối mặt với những vấn đề nhức nhối như màn hình trắng, lỗi HTTP 500 hoặc nguy hiểm hơn là rò rỉ file .env chứa dữ liệu nhạy cảm ra ngoài internet.
Bài viết này của InterData sẽ cung cấp cho bạn lộ trình tiêu chuẩn, dựa trên kinh nghiệm thực chiến, để tự tin chọn cấu hình và deploy dự án Laravel của mình lên VPS một cách trơn tru, an toàn và ít gặp lỗi nhất.

Làm thế nào để chọn cấu hình VPS chạy Laravel tối ưu nhất?
Để chọn cấu hình VPS chạy Laravel tối ưu, bạn nên ưu tiên sử dụng hệ điều hành Ubuntu và trang bị mức RAM tối thiểu từ 2GB trở lên nhằm đảm bảo các tiến trình hệ thống và quá trình build không bị gián đoạn.
- Hệ điều hành: Ubuntu được xem là lựa chọn “quốc dân” cho các dự án Laravel. Tài liệu chính thức của Laravel và phần lớn cộng đồng đều base trên Ubuntu, giúp bạn cực kỳ dễ dàng tìm kiếm sự hỗ trợ khi gặp lỗi.
- Tài nguyên (Kinh nghiệm thực tế): Về mặt lý thuyết, một VPS 1 vCPU và 1GB RAM hoàn toàn có thể chạy được một website nhỏ. Tuy nhiên, từ kinh nghiệm thực chiến, tiến trình
composer installhoặc quá trình build frontend (nhưnpm run build) lại vô cùng ngốn RAM. Nếu sử dụng VPS 1GB RAM, hệ thống của bạn rất dễ rơi vào trạng thái “Out of memory” và tiến trình sẽ bị “Killed” giữa chừng. Do đó, khuyến nghị cấu hình tối ưu nên từ 2GB RAM trở lên. Nếu ngân sách hạn hẹp bắt buộc dùng gói 1GB RAM, bạn bắt buộc phải cấu hình thêm Swap RAM (RAM ảo từ ổ cứng) để dự phòng. - Thành phần bắt buộc (Tech Stack):
- PHP: Cài đặt đúng phiên bản tương thích với source code kèm các Extensions phổ biến (BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, XML…).
- Composer: Trình quản lý thư viện (Dependency Manager) không thể thiếu của PHP.
- Web Server & Database: Sử dụng Nginx (hoặc Apache) kết hợp cùng MySQL/MariaDB hoặc PostgreSQL.
Có những cách nào để deploy Laravel lên VPS?
Hiện nay có 2 trường phái chính để đưa Laravel lên VPS: (1) Hardcore – Tự gõ lệnh cấu hình từ con số 0 giúp bạn hiểu sâu về cốt lõi hệ thống; và (2) Fast – Dùng công cụ tự động hóa để tiết kiệm thời gian, giảm thiểu lỗi sai. Dưới đây là bảng so sánh trực quan:
| Tiêu chí | Cách 1: Tự cấu hình (Manual) | Cách 2: Dùng Panel/Script |
|---|---|---|
| Kiến thức yêu cầu | Cần am hiểu Linux Command, Nginx/Apache. | Không yêu cầu nhiều, giao diện trực quan. |
| Thời gian triển khai | Chậm (30 – 60 phút hoặc hơn nếu có lỗi). | Nhanh (Chỉ 5 – 10 phút). |
| Tiêu hao tài nguyên | Cực kỳ nhẹ, chỉ chạy những thứ cần thiết. | Tốn thêm một ít RAM/CPU cho Panel chạy ngầm. |
| Quản lý SSL/Cronjob | Phải thao tác thủ công qua Terminal. | Click chuột tự động qua giao diện Web. |
Cách 1: Tự cấu hình Web Server (Apache/Nginx) thủ công
Việc tự cấu hình thủ công yêu cầu bạn sử dụng command line để tải code về, tự cài đặt thư viện và thiết lập Web Server (Nginx/Apache) trỏ trực tiếp vào thư mục public của dự án.
Dưới đây là các bước “xương sống” bạn cần thực hiện:
Bước 1: Đưa source code lên VPS
Khuyến khích sử dụng git clone từ Github/Gitlab thay vì upload file nén để tiện cho việc cập nhật sau này.
Bước 2: Khởi tạo dự án
Di chuyển vào thư mục dự án và chạy các lệnh quan trọng sau:
cp .env.example .env
composer install --no-dev -o
php artisan key:generate
Lưu ý: Hậu tố --no-dev -o giúp bỏ qua các thư viện dành cho môi trường dev và tối ưu hóa autoloader, giúp web chạy nhanh hơn trên môi trường Production.

Bước 3: Trỏ Document Root (Quan trọng nhất)
Đây là bước hay sai nhất. Bạn bắt buộc phải trỏ đường dẫn gốc của tên miền vào thư mục public. (Xem thêm: Bài viết “Hướng dẫn cấu hình Nginx/Apache” chi tiết).
Ví dụ snippet cấu hình Nginx:
server {
listen 80;
server_name yourdomain.com;
root /var/www/laravel/public; # Bắt buộc trỏ vào /public
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# ... các cấu hình PHP-FPM khác
}

Bước 4: Phân quyền (Permissions)
Để tránh lỗi HTTP 500 trắng trang, web server phải có quyền ghi (write) vào 2 thư mục này:
sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 775 /var/www/laravel/storage
sudo chmod -R 775 /var/www/laravel/bootstrap/cache
Bước 5 – Cơ sở dữ liệu
Tạo database, điền thông tin vào file .env và chạy lệnh php artisan migrate. Tham khảo chi tiết tại tài liệu chính thức: laravel.com/docs.
Cách 2: Sử dụng Panel và Script Auto-Deploy nhanh chóng
Sử dụng Panel quản trị hoặc Script tự động giúp tự động hóa toàn bộ quá trình cài đặt môi trường (tech stack), tạo database và tự động nhận diện cấu hình Laravel chỉ với vài thao tác cơ bản.
- FlashPanel: Đây là nền tảng quản trị VPS qua giao diện web cực kỳ trực quan. Ưu điểm của FlashPanel là tự động cài tech stack, có khả năng liên kết với GitHub để tự động clone repository. Hơn thế nữa, nó tích hợp sẵn tính năng tự chạy các lệnh
composer install,key:generatechỉ với 1 click. Đặc biệt, bạn có thể dễ dàng setup hệ thống Cronjob cho Laravel schedule (php artisan schedule:run) ngay trên giao diện mà không cần động đến crontab của Linux. - LarVPS (Script): Là một Script chạy qua terminal chuyên biệt dành riêng cho việc tối ưu chạy Laravel, rất phổ biến tại Việt Nam. Ưu điểm tuyệt đối của LarVPS là khi bạn thêm domain mới, script sẽ thông minh tự động hiểu đây là mã nguồn Laravel và tự động sinh ra cấu hình Nginx trỏ Document Root về thư mục
/public. Bạn hoàn toàn không cần đụng tay vào sửa file config thủ công.

5 Yếu tố cần cân nhắc kỹ trước khi setup VPS cho Laravel
Trước khi bắt tay vào setup, bạn cần đánh giá kỹ 5 yếu tố cốt lõi: phiên bản PHP dự án sử dụng, lượng traffic dự kiến, hệ sinh thái đi kèm, loại web server và vị trí đặt máy chủ (Datacenter).
- Phiên bản tương thích: Kiểm tra kỹ mã nguồn dự án yêu cầu Laravel version bao nhiêu và tương ứng với PHP bản mấy. Ví dụ: Laravel 10 yêu cầu PHP >= 8.1. Việc cài đúng phiên bản ngay từ đầu giúp tránh xung đột Dependency.
- Lượng Traffic dự kiến: Một website nội bộ < 1.000 truy cập/ngày sẽ đòi hỏi tài nguyên khác biệt hoàn toàn với hệ thống báo chí, thương mại điện tử có 50.000 truy cập/ngày. Cần dự trù kỹ để chọn CPU và RAM hợp lý.
- Hệ sinh thái đi kèm: Website của bạn có xử lý hàng đợi (Queue), dùng Redis cache, Websocket hay có tác vụ chạy ngầm (Schedule/Cronjob) không? Nếu có, hệ thống VPS cần được cấu hình cài đặt thêm Supervisor để tự động quản lý, duy trì các tiến trình này luôn chạy nền.
- Sự lựa chọn Web Server: Bạn cần cân nhắc giữa Nginx và Apache. Nginx mang lại hiệu năng cao, chịu tải tốt và vô cùng phổ biến cho Laravel. Trong khi đó Apache lại thân thiện hơn với người mới nhờ việc cấu hình dễ dàng qua file
.htaccess. - Vị trí Datacenter & Ngân sách: Nếu đối tượng khách hàng của bạn chủ yếu ở Việt Nam, hãy chọn máy chủ đặt tại Datacenter Việt Nam hoặc Singapore để tốc độ phản hồi (ping) thấp nhất, mang lại trải nghiệm truy cập mượt mà.
Giải pháp thuê VPS giá rẻ, tối ưu cho ứng dụng Laravel
Nếu bạn đang tìm kiếm một nền tảng máy chủ mạnh mẽ, chi phí hợp lý để chạy mượt mà ứng dụng Laravel, dịch vụ Thuê VPS giá rẻ tại InterData chính là giải pháp hàng đầu giải quyết mọi điểm đau của các Developer.
Tại sao nên chọn InterData để deploy dự án Laravel?
- Hiệu năng vượt trội: InterData sử dụng phần cứng mạnh mẽ với chip AMD EPYC và Intel Xeon thế hệ mới, kết hợp cùng ổ cứng NVME U.2 Enterprise. Điều này giúp tốc độ đọc/ghi dữ liệu, xử lý database và truy xuất file cache của Laravel trở nên cực kỳ nhanh chóng.
- Đáp ứng chuẩn cấu hình: Các gói VPS tại InterData dù có mức giá cực rẻ nhưng vẫn được trang bị mức RAM dư dả (đáp ứng xuất sắc mức 2GB RAM khuyến nghị), đánh bay nỗi lo bị “Killed” tiến trình khi chạy
composer installhaynpm run build. - Hỗ trợ công cụ mạnh mẽ: Bạn có toàn quyền quản trị Root, tự do cài đặt mọi Hệ điều hành (Ubuntu/AlmaLinux) và tương thích hoàn hảo với mọi Control Panel hiện nay như FlashPanel, LarVPS, aaPanel.
- An toàn & Ổn định: Hạ tầng mạng tốc độ cao kết hợp với tính năng Backup dữ liệu định kỳ hàng tuần giúp bảo vệ an toàn tuyệt đối cho source code dự án của bạn.

Câu hỏi thường gặp về VPS chạy Laravel
Dưới đây là tổng hợp những thắc mắc thực tế nhất của các lập trình viên trong quá trình cấu hình và đưa web Laravel lên máy chủ ảo.
Q1: Tại sao chạy lệnh composer install trên VPS bị treo hoặc văng lỗi “Killed”?
Trả lời: Lỗi này xảy ra do VPS của bạn bị hết RAM đột ngột (Out of Memory). Cách khắc phục triệt để nhất là nâng cấp gói VPS lên tối thiểu 2GB RAM. Trong trường hợp chưa thể nâng cấp ngay, bạn cần tạo thêm dung lượng Swap file (RAM ảo) trích xuất từ ổ cứng hệ thống.
Q2: Web báo lỗi HTTP 500 ngay sau khi vừa up source code lên VPS?
Trả lời: Có đến 90% nguyên nhân xuất phát từ 3 vấn đề: Bạn quên tạo hoặc cấu hình sai file .env; Thư mục storage/ và bootstrap/cache/ chưa được cấp quyền ghi (cần chạy lệnh chmod 775); Hoặc VPS của bạn đang cài thiếu các PHP extension cơ bản mà code Laravel đang sử dụng.
Q3: Tôi nên chọn Nginx hay Apache để chạy web Laravel?
Trả lời: Nginx luôn được cộng đồng Laravel ưu chuộng và khuyên dùng hơn. Lý do là Nginx sở hữu kiến trúc xử lý hướng sự kiện (event-driven), mang lại hiệu năng cực cao, tiêu thụ ít RAM và khả năng chịu tải lượng kết nối lớn (concurrent connections) tốt hơn hẳn so với Apache.
Q4: Cài đặt Cronjob (Schedule) cho Laravel trên VPS như thế nào?
Trả lời: Rất đơn giản. Bạn mở Terminal, gõ lệnh crontab -e để vào file quản lý cronjob của hệ điều hành, sau đó thêm dòng lệnh sau vào cuối file:
* * * * * cd /duong-dan-toi-thu-muc-du-an && php artisan schedule:run >> /dev/null 2>&1
Lệnh này sẽ thiết lập VPS tự động kích hoạt tính năng chạy các tác vụ ngầm (Task Scheduling) của Laravel mỗi phút một lần.
