Cách cài đặt và định cấu hình Nginx với PHP-FPM trên Ubuntu 22.04

Tác giả Security+, T.Tư 09, 2024, 11:08:53 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Nginx là một máy chủ web miễn phí, mã nguồn mở và mạnh mẽ, được phát triển với mục tiêu tốc độ và khả năng mở rộng. Nó có khả năng phục vụ hàng trăm ngàn khách hàng cùng một lúc.

Nginx sử dụng Trình quản lý quy trình nhanh PHP (PHP-FPM) để chạy các tập lệnh và ứng dụng PHP. PHP-FPM nhanh hơn nhiều so với môi trường PHP nhiều người dùng dựa trên CGI truyền thống và cũng cho phép lưu trữ nhiều ứng dụng với các phiên bản PHP khác nhau.


Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách cài đặt Nginx với PHP-FPM trên máy chủ Ubuntu 22.04.

1. Yêu cầu
  • Một máy chủ chạy Ubuntu 22.04.
  • Một tên miền hợp lệ sẽ được chuyển hướng đến IP máy chủ của bạn.
  • Mật khẩu root được thiết lập trên máy chủ của bạn.

2. Cài đặt máy chủ web Nginx

Gói máy chủ web Nginx được bao gồm trong kho Ubuntu tiêu chuẩn. Do đó, bạn có thể dễ dàng cài đặt nó bằng lệnh sau:

Mã nguồn [Chọn]
apt install nginx -y
Sau khi bạn đã cài đặt gói máy chủ web Nginx, hãy khởi động dịch vụ Nginx bằng lệnh sau:

Mã nguồn [Chọn]
systemctl start nginx
Bạn có thể kiểm tra trạng thái của Nginx bằng lệnh sau:

Mã nguồn [Chọn]
systemctl status nginx
Bạn sẽ thấy đầu ra sau:

Mã nguồn [Chọn]
? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-04 13:58:34 UTC; 16s ago
       Docs: man:nginx(8)
   Main PID: 46938 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 8.2M
        CPU: 63ms
     CGroup: /system.slice/nginx.service
             ??46938 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??46940 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??46941 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Nov 04 13:58:34 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 04 13:58:34 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Để kiểm tra phiên bản Nginx, hãy chạy lệnh sau:

Mã nguồn [Chọn]
nginx -V
Bạn sẽ thấy phiên bản Nginx ở đầu ra sau:

Mã nguồn [Chọn]
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 3.0.2 15 Mar 2022

Bây giờ Nginx đã được cài đặt và chạy. Bây giờ hãy mở trình duyệt web của bạn và kiểm tra trang kiểm tra Nginx bằng URL http://your-server-ip. Bạn sẽ thấy trang kiểm tra Nginx trên màn hình sau:


3. Cài đặt PHP-FPM

Tiếp theo, bạn sẽ cần cài đặt PHP và PHP-FPM để chạy mã PHP qua internet. Bạn có thể cài đặt cả hai gói bằng lệnh sau:

Mã nguồn [Chọn]
apt install php php-fpm -y
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản PHP bằng lệnh sau:

Mã nguồn [Chọn]
php --version
Bạn sẽ thấy đầu ra sau:

Mã nguồn [Chọn]
PHP 8.1.2-1ubuntu2.6 (cli) (built: Sep 15 2022 11:30:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.6, Copyright (c), by Zend Technologies

Tiếp theo, khởi động dịch vụ PHP-FPM bằng lệnh sau

Mã nguồn [Chọn]
systemctl start php8.1-fpm
Bạn có thể kiểm tra trạng thái của PHP-FPM bằng lệnh sau:

Mã nguồn [Chọn]
systemctl status php8.1-fpm
Bạn sẽ thấy đầu ra sau:

Mã nguồn [Chọn]
? php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-04 14:00:10 UTC; 38s ago
       Docs: man:php-fpm8.1(8)
    Process: 56127 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81 (code=e>
   Main PID: 56123 (php-fpm8.1)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4579)
     Memory: 7.2M
        CPU: 73ms
     CGroup: /system.slice/php8.1-fpm.service
             ??56123 "php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf)" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ??56125 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ??56126 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Nov 04 14:00:10 ubuntu2204 systemd[1]: Starting The PHP 8.1 FastCGI Process Manager...
Nov 04 14:00:10 ubuntu2204 systemd[1]: Started The PHP 8.1 FastCGI Process Manager.

4. Định cấu hình Nginx cho PHP-FPM

Tiếp theo, tạo tệp cấu hình cho máy chủ ảo Nginx để lưu trữ trang web PHP.

Mã nguồn [Chọn]
nano /etc/nginx/conf.d/test.conf
Thêm các cấu hình sau:

Mã nguồn [Chọn]
server {
         listen       80;
         server_name  test.example.com;
         root         /var/www/html/;

         access_log /var/log/nginx/example.com-access.log;
         error_log  /var/log/nginx/example.com-error.log error;
         index info.php index.htm index.php;

         location / {
                      try_files $uri $uri/ /index.php$is_args$args;
         }

         location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
    }
}

Lưu và đóng tệp, sau đó tạo một trang PHP đơn giản bằng lệnh sau:

Mã nguồn [Chọn]
nano /var/www/html/info.php
Thêm mã sau đây:

Mã nguồn [Chọn]
<?php echo phpinfo();?>
Lưu và đóng tệp và kiểm tra cấu hình Nginx bằng lệnh sau:

Mã nguồn [Chọn]
nginx -t
Bạn sẽ nhận được kết quả đầu ra sau:

Mã nguồn [Chọn]
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Sau đó khởi động lại dịch vụ Nginx để áp dụng các thay đổi:

Mã nguồn [Chọn]
systemctl restart nginx
5. Kiểm tra trang PHP

Bây giờ Nginx được cấu hình với PHP-FPM để thực thi mã PHP. Bây giờ bạn có thể kiểm tra nó bằng URL http://your-server-ip. Bạn sẽ thấy trang thử nghiệm PHP trên màn hình sau:


Chúc mừng! Bạn đã cài đặt thành công Nginx với PHP-FPM trên Ubuntu 22.04. Bây giờ bạn có thể sử dụng PHP-FPM để lưu trữ trang web dựa trên PHP trên máy chủ web Nginx. Bạn cũng có thể sử dụng PHP-FPM để chạy nhiều phiên bản PHP. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại bình luận bên dưới.