Việc cài đặt Nginx, PHP và MySQL trên Windows 11 có thể được thực hiện theo nhiều cách: cài đặt thủ công hoặc sử dụng Xampp, Docker, …. Mỗi phương pháp đều có ưu và nhược điểm riêng, ảnh hưởng đến hiệu suất, khả năng quản lý và tính linh hoạt của hệ thống. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt từng thành phần trên Windows 11 và so sánh với việc sử dụng Docker để tìm ra giải pháp tối ưu nhất cho nhu cầu của bạn.
Cách Cài Đặt Nginx, PHP, MySQL Trên Windows 11
Cài Đặt Nginx
Đầu tiên, bạn cần tải Nginx từ trang chủ nginx.org. Sau khi tải về phiên bản mới nhất, hãy giải nén vào một thư mục, ví dụ C:\nginx
. Tiếp theo, mở thư mục C:\nginx\conf\nginx.conf
bằng Notepad++ hoặc VS Code và chỉnh sửa phần location /
thành:
location / {
root C:/nginx/www;
index index.php index.html index.htm;
}
Sau đó, mở Command Prompt (CMD) với quyền admin và chạy lệnh:
cd C:\nginx
start nginx
Truy cập http://localhost/
trên trình duyệt, nếu thấy trang mặc định của Nginx xuất hiện, bạn đã cài đặt thành công.
Cài Đặt PHP
Truy cập https://windows.php.net/download/ và tải bản PHP Non-Thread Safe (NTS) – x64. Giải nén vào thư mục C:\php
. Sau đó, đổi tên file php.ini-development
thành php.ini
và mở file này để kích hoạt các tiện ích mở rộng cần thiết:
extension=mysqli
extension=pdo_mysql
Tiếp theo, cấu hình PHP trong Nginx bằng cách chỉnh sửa C:\nginx\conf\nginx.conf
và thêm đoạn sau:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Chạy PHP bằng lệnh:
C:\php\php-cgi.exe -b 127.0.0.1:9000
Kiểm tra bằng cách tạo một file C:\nginx\www\index.php
với nội dung:
<?php
phpinfo();
?>
Truy cập http://localhost/index.php
để xem thông tin PHP.
Cài Đặt MySQL
Tải MySQL từ https://dev.mysql.com/downloads/mysql/ và cài đặt theo chế độ Standalone. Sau khi cài đặt xong, mở MySQL Command Line Client và nhập mật khẩu root để đăng nhập. Kiểm tra kết nối bằng lệnh:
SHOW DATABASES;
Để kiểm tra kết nối MySQL với PHP, tạo file test_db.php
trong C:\nginx\www
với nội dung:
<?php
$conn = new mysqli("localhost", "root", "password", "mysql");
if ($conn->connect_error) {
die("Kết nối thất bại: " . $conn->connect_error);
}
echo "Kết nối thành công!";
?>
Truy cập http://localhost/test_db.php
để kiểm tra kết quả.
So Sánh Cài Đặt Thủ Công Với Docker

Hiệu Suất Và Tài Nguyên Tiêu Thụ
Docker ngốn nhiều tài nguyên hơn vì mỗi container chạy trên một môi trường ảo hóa nhẹ. Điều này có nghĩa là RAM, CPU và dung lượng ổ cứng bị tiêu thụ nhiều hơn so với cài đặt trực tiếp. Trong khi đó, khi cài đặt thủ công, các dịch vụ chạy trực tiếp trên hệ điều hành giúp tiết kiệm tài nguyên và cải thiện hiệu suất.
Tiêu chí | Docker 🐳 | Cài đặt trực tiếp 🖥️ |
---|---|---|
Bộ nhớ RAM | Ngốn nhiều RAM hơn do chạy container và daemon của Docker. | Ít tốn RAM hơn vì chạy trực tiếp trên hệ thống. |
CPU Usage | Tiêu tốn nhiều CPU hơn khi chạy nhiều container. | Ít tốn CPU hơn vì không có lớp trung gian. |
Ổ cứng (Disk I/O) | Docker lưu trữ image, container logs nên tốn nhiều dung lượng. | Không tốn nhiều dung lượng ngoài file cài đặt. |
Tốc độ khởi động | Chậm hơn vì phải chạy container, đặc biệt với nhiều dịch vụ. | Nhanh hơn vì chạy trực tiếp trên hệ điều hành. |
👉 Nhận xét:
- Nếu bạn cần hiệu suất cao và ít tiêu tốn tài nguyên, cài đặt trực tiếp tốt hơn.
- Nếu bạn cần môi trường linh hoạt, dễ quản lý, thì Docker vẫn là lựa chọn tốt.
Quản Lý Và Cấu Hình
Sử dụng Docker giúp việc quản lý môi trường phát triển trở nên dễ dàng hơn. Bạn có thể tạo một file docker-compose.yml
để khởi động toàn bộ hệ thống chỉ với một lệnh. Ngược lại, cài đặt thủ công yêu cầu cấu hình từng thành phần riêng lẻ và có thể mất nhiều thời gian hơn nếu cần thay đổi phiên bản PHP hoặc MySQL.
Tiêu chí | Docker 🐳 | Cài đặt trực tiếp 🖥️ |
---|---|---|
Cài đặt & Cấu hình | Dễ dàng với docker-compose.yml . Chỉ cần một lệnh để chạy toàn bộ stack. | Cần cài đặt từng thành phần và tự cấu hình. |
Tính linh hoạt | Dễ thay đổi phiên bản của PHP, MySQL bằng Dockerfile. | Khó nâng cấp hoặc thay đổi phiên bản. |
Quản lý service | Dễ dàng quản lý container với Docker CLI (docker ps , docker stop ). | Phải quản lý từng service riêng lẻ (Nginx, PHP, MySQL). |
Khả năng di chuyển | Chạy được trên bất kỳ hệ thống nào hỗ trợ Docker. | Phụ thuộc vào cấu hình của máy Windows. |
👉 Nhận xét:
- Nếu bạn cần môi trường linh hoạt, dễ di chuyển thì Docker là tốt nhất.
- Nếu bạn chỉ chạy cục bộ trên Windows thì cài đặt thủ công dễ dàng hơn.
Bảo Mật
Docker cách ly các container với hệ điều hành chính, giúp bảo mật tốt hơn. Các container chạy với quyền hạn riêng biệt, tránh rủi ro khi bị tấn công. Trong khi đó, cài đặt trực tiếp có thể tiềm ẩn nguy cơ bảo mật nếu không cấu hình đúng cách.
Tiêu chí | Docker 🐳 | Cài đặt trực tiếp 🖥️ |
---|---|---|
Tính bảo mật | Mỗi container cách ly với hệ thống, bảo mật tốt hơn. | Dễ bị tấn công hơn nếu không cấu hình kỹ. |
Quản lý quyền | Có thể chạy với user non-root để hạn chế quyền. | Dễ bị lỗi nếu chạy với quyền admin. |
👉 Nhận xét:
- Nếu bạn chạy production hoặc nhiều môi trường, Docker bảo mật tốt hơn.
- Nếu chỉ chạy local, bảo mật không quá quan trọng.
Khi Nào Nên Dùng Docker? Khi Nào Nên Cài Đặt Thủ Công?
Nếu bạn cần môi trường đồng nhất, dễ triển khai trên nhiều hệ thống hoặc cần chạy nhiều phiên bản PHP, MySQL khác nhau thì Docker là lựa chọn tốt nhất. Nếu bạn chỉ làm việc trên một máy Windows và muốn tối ưu tài nguyên thì cài đặt thủ công là lựa chọn phù hợp.
Cách Tối Ưu Docker Để Giảm Tiêu Hao Tài Nguyên
Nếu bạn muốn dùng Docker nhưng không muốn tiêu tốn quá nhiều tài nguyên, bạn có thể giới hạn RAM và CPU bằng cách chỉnh trong Docker Desktop hoặc chạy lệnh:
docker run --memory=512m --cpus=1 my_container
Ngoài ra, hãy dọn dẹp Docker định kỳ bằng lệnh:
docker system prune -a
Bạn cũng có thể chuyển sang Docker WSL 2 để quản lý tài nguyên hiệu quả hơn.
Kết Luận
Cài đặt Nginx, PHP, MySQL trực tiếp trên Windows giúp tiết kiệm tài nguyên và cải thiện hiệu suất, phù hợp cho các dự án nhỏ và làm việc trên một máy cố định. Trong khi đó, Docker mang lại sự linh hoạt, dễ triển khai và bảo mật cao hơn, phù hợp cho môi trường phát triển lớn và cần tính đồng nhất. Nếu bạn quan tâm đến hiệu suất, cài đặt thủ công sẽ là lựa chọn tối ưu. Nếu bạn muốn đơn giản hóa quá trình quản lý và triển khai, Docker là giải pháp tốt nhất. Tùy vào nhu cầu cụ thể, bạn có thể chọn phương pháp phù hợp để tối ưu hóa công việc của mình.