Hướng dẫn cài đặt LEMP stack (Nginx - PHP - MySQL) trên Windows

thuyet951
  • Lượt xem 740
  • Bình luận: 2
Nginx là một phần mềm mã nguồn mở dùng để chạy webserver, hay còn được gọi là máy chủ reverse proxy mã nguồn mở cho các giao thức HTTP, HTTPS, SMTP, POP3 và IMAP, khi kết hợp với PHP và MYSQL chúng ta sẽ có một webserver hoàn chỉnh.

Để cài đặt webserver trên Windows hiện nay chúng ta có nhiều phần mềm giúp chúng ta cài đặt một webserver hoàn chỉnh và hoàn toàn tự động như XAMPP, Apache Lounge...

Nhưng hạn chế của các phần mềm có sẳn trên là chỉ hỗ trợ máy chủ webserver Apache và đôi khi chúng ta rất khó để quản lý máy chủ webserver của chúng ta, nếu bạn yêu thích Nginx, bạn cũng có thể tự mình cài đặt một webserver hoàn chỉnh sử dụng Nginx trên Windows vô cùng đơn giản.

Trong bài viết hôm nay, mình xin chia sẽ một cách cài đặt webserver Nginx trên Windows một cách dể nhất, bạn hoàn toàn có thể cài đặt trên bất kỳ ổ đĩa nào hoặc trên USB tùy thích.

Cách cài đặt Nginx, PHP, MYSQL cho Windows

LEMP stack là gì?


LEMP stack là tên viết tắt của một bộ phần mềm dùng để chạy webserver bao gồm Nginx (hay đọc là Engine x) - MySql và PHP (hoặc Perl/Python)

Cài đặt Nginx


Đầu tiên bạn truy cập vào trang chủ Nginx để tải về phiên bản mới nhất của Nginx dành cho Windows, sau đó các bạn giải nén ở nơi mà bạn muốn webserver sẽ chạy, ở đây mình sẽ giải nén vào thư mục www của ổ đĩa D và đổi tên thành nginx cho dể nhìn, cuối cùng mình có địa chỉ của thư mục nginx như sau D:\www\nginx

Bây giờ bạn có thể khởi động nginx bằng file nginx.exe trong thư mục D:\www\nginx, bạn cũng có thể khởi động Nginx, reload hoặc stop Nginx bằng các lệnh thông qua Command Prompt (cmd).

Để đơn giản trong việc sử dụng lệnh quản lý nginx thông qua cmd, các bạn nên điều hướng di chuyển đến thư mục root của nginx bằng lệnh:
Bash:
cd /d d:\www\nginx
Sau khi đã di chuyển đến thư mục root của nginx, bạn có thể sử dụng các lệnh sau:
Bash:
start nginx
# Khởi động nginx

nginx -s stop
# Dừng nginx

nginx -s quit
# Thoát nginx, cái này là thoát hết ứng dụng Nginx đang chạy

nginx -s reload
# Load lại nginx khi bạn thay đổi cấu hình của Nginx

nginx -s reopen
# Mở file logs
Sau khi đã khởi động nginx, bây giờ bạn thử mở trình duyệt và gõ địa chỉ localhost hoặc 127.0.0.1 xem kết quả, nếu trình duyệt trả về giống như hình phía dưới, tức là nginx của bạn đã được chạy thành công.
Cài đặt Nginx cho Windows

Cấu hình để Nginx giao tiếp với PHP


Để Nginx và PHP có thể giao tiếp với nhau, các bạn cần cấu hình cho Nginx giao tiếp với PHP, ở đây mình sẽ cấu hình Nginx giao tiếp với PHP thông qua PHP FastCGI bằng giao thức TCP.

Các bạn mở file nginx.conf trong thư mục D:\www\nginx\conf tìm đến các đoạn mã dưới đây.
Code:
        location / {
            root   html;
            index  index.html index.htm;
        }

        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
  • Ở block location / các bạn thêm index.php vào phía sau index.html để mặc định Nginx đọc trước file index.php
  • Ở block #location ~\.php$ các bạn xóa hết tất cả các dấu # ở trước đầu dòng và thay đổi /scripts thành $document_root
  • Chú ý ghi nhớ port 127.0.0.1:9000 để tiếp theo chúng ta còn khởi chạy PHP đúng port.
Khi hoàn thành ta có file nginx.conf dạng như sau:
Code:
        location / {
            root   html;
            index  index.php index.html index.htm;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

Cài đặt PHP


Sau khi đã cài đặt Nginx thành công, bây giờ các bạn truy cập vào trang chủ PHP để tiếp tục tải về phiên bản PHP dành cho Windows, bạn có thể tải về phiên bản mới nhất hoặc phiên bản mà mã nguồn của bạn mong muốn sử dụng yêu cầu, ở đây mình sẽ sử dụng phiên bản PHP Thread Safe dành cho Windows mới nhất hiện tại là 7.4.6

  • Nếu bạn download bản VC9 thì bạn cần phải cài đặt Visual C++ Redistributable for Visual Studio 2008 SP1 (64 bit hoặc 32 bit).
  • Nếu bạn download bản VC11 thì bạn cần phải cài đặt Visual C++ Redistributable for Visual Studio 2012
  • Nếu bạn download bản VC15 thì bạn cần phải cài đặt Visual C++ Redistributable for Visual Studio 2017 (64-bit hoặc 32-bit).
Bạn chọn và tải về phiên bản x86 hoặc x64 đúng với phiên bản PHP bạn đã chọn tải về nhé.
Sau khi tải xuống, các bạn tiến hành giải nén file ZIP của phiên bản PHP vừa tải xuống, ở đây mình sẽ giải nén vào thư mục D:\www và đổi tên thư mục vừa giải nén thành php, cuối cùng mình có thư mục gốc của PHP là D:\www\php

Cấu hình PHP và bật các extension


Để cấu hình cho PHP, các bạn truy cập vào thư mục PHP vừa giải nén ở trên, sau đó tìm file php.ini-production và đổi tên thành php.ini
Để bật các extension đầu tiên bạn mở file php.ini và tìm dòng dưới đây, sau đó xóa dâu ; phía trước đi.
Bash:
extension_dir = "ext"
Tiếp theo để bật các extension (modules) cho PHP, các bạn có thể tìm với từ khóa ;extension= và xóa đấu ; ở đầu để bật extension mà bạn mong muốn, ở đây mình sẽ bật các extension cần thiết như curl, fileinfo, gd2, mysqli cho việc chạy một số mã nguồn thông dụng.
Bash:
extension=curl
extension=fileinfo
extension=gd2
extension=mysqli
Cuối cùng lưu file lại là xong việc cấu hình cho PHP.

Khởi động PHP thông qua FastCGI


Trong thư mục PHP bạn sẽ thấy một file có tên php-cgi.exe, bạn cần phải chạy file này thông qua giao thức TCP với port đúng với cấu hình của Nginx thì cả hai mới có thể giao tiếp được với nhau.

Ở bước cấu hình PHP cho Nginx mình đã cấu hình port để giao tiếp với PHP cho nginx là 127.0.0.1:9000, bây giờ chúng ta sử dụng các lệnh sau để yêu cầu PHP FastCGI chạy trên cổng đã chỉ định.

Các bạn mở Command Prompt (cmd) lên và chạy các lệnh dưới đây, để khởi động PHP
Bash:
set PHP_FCGI_MAX_REQUESTS=0
d:
d:\www\php\php-cgi.exe -b 127.0.0.1:9000

Kiểm tra Nginx và PHP đã giao tiếp thành công hay chưa


Sau khi đã tiến hành khởi động PHP FastCGI mà không gặp phải vấn đề gì, bây giờ các bạn vào thư mục D:\www\nginx\html tạo một file PHP và đặt tên cho nó là phpinfo.php với nội dung như sau:
PHP:
<?php phpinfo(); ?>
Bây giờ bạn hãy reload lại nginx bằng cách sử dụng lệnh nginx -s reload và thử truy cập vào địa chỉ http://127.0.0.1/phpinfo.php nếu kết quả trả về là thông tin của PHP thì tức là bạn đã cài đặt Nginx và PHP thành công.
Cài đặt Nginx và PHP cho Windows

Cài đặt MYSQL cho Windows


MySQL là một trình quản lý cơ sở dữ liệu phổ biến, bạn có thể dễ dàng cài đặt MySQL trên Windows. Bạn cũng có thể tải về và cài đặt MariaDB thay vì cài đặt MySQL để có được hiệu suất tốt hơn.
Chỉ cần tải về phiên bản MSI của MariaDB sau đó cài đặt và làm theo các bước cài đặt để cấu hình mật khẩu cho root là xong.

Cách khởi động nhanh Nginx và PHP FastCGI trên Windows


Để đở tốn thời gian cho việc khởi động Nginx và PHP FastCGI, các bạn có thể tự tạo một bash script, qua đó việc khởi động Nginx và PHP FastCGI sẽ trở nên đơn giản hơn là chỉ cần click vào chạy bash script.

Ngoài ra khi khởi động PHP FastCGI các bạn cần phải giữ cho cửa sổ Command Prompt để nó tiếp tục hoạt động, nên ở đây mình sẽ sử dụng công cụ có tên RunHiddenConsole, tiện ích này sẽ giúp ẩn đi cửa sổ Command Prompt khi PHP FastCGI hoạt động.

Trước tiên các bạn tải về RunHiddenConsole và giải nén file RunHiddenConsole.exe vào thư mục D:\www

Tạo một file Start.bat với nội dung như sau:
Bash:
@ECHO OFF
echo Starting PHP FastCGI…
set PATH=D:\www\php;%PATH%
set PHP_FCGI_MAX_REQUESTS=0
D:\www\RunHiddenConsole.exe D:\www\php\php-cgi.exe -b 127.0.0.1:9000
echo .
echo Starting Nginx…
cd /d D:\www\nginx
start nginx
ping 127.0.0.1 -n 1>NUL
echo .
echo .
echo .
ping 127.0.0.1 >NUL
EXIT
Để chạy Nginx và PHP FastCGI các bạn chỉ cần chạy file Start.bat

Để tắt Nginx và PHP FastCGI các bạn tiếp tục tạo một file Stop.bat với nội dung như sau:
Bash:
@ECHO OFF
echo Stopping Nginx…
taskkill /f /IM nginx.exe
echo Stopping PHP FastCGI…
taskkill /f /IM php-cgi.exe
echo.
EXIT
Vậy là qua đây mình đã chia sẽ cách để cài đặt webserver LEMP stack trên máy tính Windows, nếu có bước nào bạn chưa làm được, có thể để lại bình luận để mình hỗ trợ thêm nhé.
 
Last edited:
Vấn thân vào đam mê, không bao giờ từ bỏ...
─ Đam mê bằng đánh đổi
2 Bình luận
Cái này so với wamp64 thì cái nào tốt hơn @thuyet951 nhỉ ?
Tự cài đặt thì mình quản lý dể hơn so với dùng phần mềm, ví dụ muốn cấu hình hoặc nâng cấp phiên bản, thì đơn giản hơn nhiều, hơn nữa là tối ưu theo nhu cầu của mình.
Cộng với việc đây là sử dụng hệ thống Nginx, so với Apache mình đánh giá Nginx có tốc độ xử lý nhanh hơn Apache nhiều, Thủ Thuật Số cũng đang chạy trên hệ thống sử dụng Nginx.
 
Top Bottom