» » Hướng dẫn cài đặt Nginx, PHP và MySQL trên Windows

Hướng dẫn cài đặt Nginx, PHP và MySQL trên Windows

Nginx là webserver được sử dụng rộng rãi bởi các tính năng tuyệt vời của nó. Bạn có thể cài đặt Nginx, PHP và MySQL trên Windows để trải nghiệm.

Nếu như bạn đã chạy webserver ở localhost trên máy tính để thử nghiệm các trang web trên Windows, chắc hẳn bạn đã sử dụng qua Apache thông qua XAMPP, Apache Lounge… Nếu bạn yêu thích Nginx, bạn cũng có thể cài đặt Nginx trên Windows một cách dễ dàng, thậm chí còn dễ hơn cài đặt trên CentOS hay Ubuntu. Nếu bạn chưa từng biết đến Nginx hoặc chưa sử dụng nó, bạn có thể trải nghiệm nó ngay trên Windows của mình.

Cài đặt Nginx, PHP và MySQL trên WindowsBài viết này sẽ hướng dẫn bạn cài đặt Nginx chạy PHP thông qua FastCGI và MySQL trên Windows 7/8/10 một cách dễ dàng nhất. Bạn có thể cài chúng trên ổ đĩa D, E hoặc trên USB tùy thích. Khi bạn cài lại Win hoặc Ghost cũng không sợ mất dữ liệu trên Nginx và MySQL nhé.

Để cho việc truy cập vào các thư mục cài đặt và cấu hình của Nginx, PHP và MySQL, bạn nên tạo một thư mục để chứa tất cả chúng. Ở đây mình sẽ tạo một thư mục là Web trên ổ D, các bạn có thể lưu nó vào USB hoặc bất cứ đâu.

  1. Cài đặt Nginx
  2. Cài đặt PHP trên Windows
  3. Cài đặt MySQL
  4. Start và stop nhanh cho Nginx, PHP

Cài đặt Nginx

Đầu tiên bạn cần phải tải bản Nginx cho Windows và giải nén ra ở bất kỳ đâu mà bạn muốn. Mình sẽ giải nén và đổi tên thư mục thành nginx cho nó dễ nhìn và copy vào D:\Web, bạn sẽ có đường dẫn thư mục của Nginx là D:\Web\nginx.

Bây giờ bạn có thể chạy Nginx bằng cách chạy file nginx.exe trong thư mục D:\Web\nginx. Bạn cũng có thể khởi động Nginx, reload hoặc stop Nginx bằng cách sử dụng lệnh qua cmd.

Để quản lý Nginx bằng lệnh trong cmd, bạn nên đi đến thư mục root của Nginx. Mở Command Prompt hoặc run cmd:

d:
cd d:\Web\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:

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ạn hãy vào http://localhost xem sao.

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

Cấu hình để Nginx chạy PHP FastCGI trên Windows

Cũng như Linux CentOS hay Ubuntu, bạn có thể chạy PHP thông qua FastCGI bằng giao thức TCP. Để Nginx có thể giao tiếp với PHP thông qua FastCGI bạn cần chỉnh sửa lại cấu hình file nginx.conf.

Mở file nginx.conf trong D:\Web\nginx\conf, tìm đến đoạn này và chính sửa lại như sau:

        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;
        }
  1. Loại bỏ dấu “#” ở trước mỗi dòng trên.
  2. Thêm index.php vào “location /“.
  3. Thay đổi /scripts thành $document_root.

127.0.0.1:9000 là nơi PHP FastCGI sẽ xử lý các file PHP.

Tạo một file phpinfo.php trong thư mục D:\Web\nginx\conf với nội dung như sau để test php:

<?php phpinfo(); ?>

Bây giờ, bạn thử start nginx hoặc nginx -s reload lại và vào địa chỉ http://localhost/phpinfo.php để test.

Nếu bạn gặp lỗi 504 Gateway Time-out như này là do bạn chưa cài đặt PHP trên Windows hoặc chưa cấu hình đúng cách. Bạn cần phải cài đặt PHP và cấu hình ở bước tiếp theo.

An error occurred.

Sorry, the page you are looking for is currently unavailable.
Please try again later.

If you are the system administrator of this resource then you should check the error log for details.

Faithfully yours, nginx.

Cài đặt PHP trên Windows

Ở đây mình sẽ hướng dẫn bạn cài đặt PHP trên Windows và chạy PHP thông qua CGI/FastCGI trên một địa chỉ TCP như đã cấu hình cho Nginx.

Bạn vào trang PHP cho Windows và download bản PHP mà bạn muốn về máy. Hiện tại đã có phiên bản PHP 7, bạn có thể tải về cài đặt để trải nghiệm cũng được. Ở đây mình sẽ chọn bản PHP 7 VC14 x64 Thread Safe.

  • 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 (64 bit hoặc 32 bit).
  • Nếu bạn download bản VC14 thì bạn cần phải cài đặt Visual C++ Redistributable for Visual Studio 2015 (64 bit hoặc 32 bit).

Các bạn tải và cài đặt các bản Visual C++ 32 bit hoặc 64 bit đúng theo bản PHP mà bạn chọn nhé.

Giải nén file ZIP của PHP mà bạn đã download ra một thư mục mới, ở đây mình chọn thư mục php7. Nếu bạn tải bản PHP 5 thì có thể để tên thư mục là php5 (hoặc là download và cài đặt cả hai). Sau đó copy thư mục php7 này vào D:\Web ngang hàng với thư mục root của Nginx để cho dễ quản lý nhé. Sau kgi giải nén và copy, bạn sẽ có thư mục root PHP là D:\Web\php7.

Tạo file php.ini

Để tạo file php.ini cho PHP, bạn vào thư mục root D:\Web\php7, copy file php.ini-production thành một file mới và đổi tên thành php.ini. Đây sẽ là file cấu hình cho PHP của bạn.

Cấu hình để bật các extension cho PHP

Để PHP của bạn hỗ trợ các tính năng hay các function mà bạn muốn để chạy trang web, bạn cần phải bật các extension cho PHP. Các PHP extension hay còn gọi là PHP modules nằm trong thư mục ext, bạn cần phải khai báo nó trong php.ini.

Mở file php.ini và tìm đến dòng sau và xóa dấu “;” ở trước dòng đó:

extension_dir = "ext"

Để bật các extension (modules) cho PHP, tìm đến các dòng ;extension= tương ứng với các module mà bạn muốn bật và xóa dấu “;” ở trước. Ví dụ ở đây mình sẽ bật module php_curl, php_fileinfophp_gd2php_mysqli như sau:

extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_mysqli.dll

Như vậy là xong phần tạo file php.ini và bật các module cần thiết cho PHP của bạn. Đừng có quên lưu file php.ini lại nhé.

Cấu hình PHP FastCGI cho Nginx

Trong thư mục root PHP (D:\Web\php7), bạn sẽ nhìn thấy file php-cgi.exe. Bạn cần phải chạy file này trên một địa chỉ TCP giống như đã khai báo ở mục fastcgi_pass là 127.0.0.1:9000.

Mở Command Prompt hoặc run cmd:

set PHP_FCGI_MAX_REQUESTS=0
d:
d:\Web\php7\php-cgi.exe -b 127.0.0.1:9000

Bây giờ vào http://localhost/phpinfo.php để kiểm tra xem nginx đã chạy được PHP chưa.

Cài đặt PHP cho Nginx trên Windows

Nếu bạn thấy ở mục Server APICGI/FastCGI thì bạn đã chạy PHP FastCGI cho Nginx thành công.

Cài đặt MySQL trên 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ể cài đặt MariaDB thay vì cài đặt MySQL để có được hiệu suất tốt hơn.

Start và stop nhanh cho Nginx, PHP

Nếu bạn không quen sử dụng lệnh để start và stop Nginx, PHP thì bạn có thể thay thế bằng cách sử dụng các script.

Khi start PHP FastCGI trên TCP, bạn cần phải giữ cửa sổ Command Prompt để PHP có thể làm việc. Nếu bạn muốn ẩn cửa sổ này mà không làm PHP mất kết nối, bạn có thể sử dụng tiện ích RunHiddenConsole.

  1. Download RunHiddenConsole, giải nén và copy file RunHiddenConsole.exe vào D:\Web.
  2. Tạo file start-nginx.bat với nội dung như sau:

    @ECHO OFF
    echo Starting PHP FastCGI…
    set PATH=D:\Web\php7;%PATH%
    set PHP_FCGI_MAX_REQUESTS=0
    D:\Web\RunHiddenConsole.exe D:\Web\php7\php-cgi.exe -b 127.0.0.1:9000
    echo .
    echo Starting Nginx…
    cd D:\Web\nginx
    start nginx
    ping 127.0.0.1 -n 1>NUL
    echo .
    echo .
    echo .
    ping 127.0.0.1 >NUL
    EXIT

    Bạn chỉ cần click file start-nginx.bat để start Nginx và PHP FastCGI.

  3. Tạo file stop-nginx.bat với nội dung như sau:

    @ECHO OFF
    echo Stopping Nginx…
    taskkill /f /IM nginx.exe
    echo Stopping PHP FastCGI…
    taskkill /f /IM php-cgi.exe
    echo.
    EXIT

    Chạy file stop-nginx.bat để stop Nginx và PHP FastCGI.

Vậy là bạn đã hoàn thành việc cài đặt Nginx, PHP và MySQL trên Windows một cách dễ dàng. Bây giờ chỉ việc trải nghiệm theo cách của bạn thôi.

Chúc bạn thành công. Nếu có lỗi gì thì để lại bình luận bên dưới mình sẽ trợ giúp nhé.

Thích hoặc chia sẽ bài này

  • Nguyệt Đan

    d:

    d:Webphp7php-cgi.exe -b 127.0.0.1:9000
    Mình chạy bước này xong oke đâu vào đấy
    Nhưng khoảng chừng hơn giờ cái php-cgi lại tự tắt không cách nào khắc phục được cả
    Đành quay về dùng apache tiếp!!

    • Bạn xem lại thử cái cửa sổ cmd còn chạy k bạn???

      • Nguyệt Đan

        Mình đã bảo là cứ hơn 1h thì nó lại tự tắt mà bạn

        • Vâng, bạn test trên máy khác chưa
          Mình k có test trong thời gian lâu như thế nên không rõ

          • Nguyệt Đan

            Test 5 máy rồi
            2 win 7 32 vs64 bit
            3 trên 2k8

          • Mình tìm được một vài thông tin như thế này, bạn thử xem

            Bạn thêm lệnh set PHP_FCGI_MAX_REQUESTS=0 trước khi chạy PHP-CGI.exe

            set PHP_FCGI_MAX_REQUESTS=0
            d:
            d:Webphp7php-cgi.exe -b 127.0.0.1:9000

            Hoặc làm như hình dưới
            http://i.stack.imgur.com/HrIaO.jpg

            Control Panel-> System->Advanced System Settings->Advanced->Environment Variables->System Variables-> New -> Variable Name: PHP_FCGI_MAX_REQUESTS & Variable Value: 0

            Bạn thử đổi port của PHP-CGI sang port khác với 9000 xem sao nhé

          • Nguyệt Đan

            Vâng cảm ơn bạn đã giúp nhiệt tình
            Mình thử xem sao!
            còn vụ port chắc không ảnh hưởng đâu cậu vì port này mình check thấy chả bị trùng

          • Vâng, cám ơn bạn đã phản hồi nhé
            Đã cập nhật thêm lệnh PHP_FCGI_MAX_REQUESTS vào bài và file bat.