Hướng dẫn how does nginx communicate with php? - nginx giao tiếp với php như thế nào?

Tại sao Nginx, PHP và fastcgi lại phổ biến như vậy?

Nginx là máy chủ web HTTP được yêu thích nhất của cộng đồng DevOps. & NBSP; và các nhà phát triển yêu thích ngôn ngữ lập trình PHP vì nó cho phép họ nhanh chóng xây dựng và triển khai các trang web tương tác.

Như vậy, nó không có gì lạ khi rất nhiều quản trị viên SYS cần cấu hình NGINX, PHP và PHP-FPM trên cả máy chủ Linux và Windows.

Hướng dẫn nhanh này chỉ cho bạn cách thiết lập PHP và NGINX trên Ubuntu Linux với Trình quản lý quy trình FastCGI (PHP-FPM) được định cấu hình là Công cụ PHP NGINX.

Cách thiết lập Nginx, PHP và PHP-FPM

Để thiết lập và định cấu hình fastcgi (FPM), PHP và NGINX trên Ubuntu Linux, hãy làm theo các bước sau:

  1. Thực hiện cập nhật APT-Get để đảm bảo quyền truy cập vào các gói mới nhất.
  2. Cài đặt Nginx trên Ubuntu.
  3. Cài đặt PHP-FPM cho gói Nginx.
  4. Chỉnh sửa tệp cấu hình mặc định của máy chủ để hỗ trợ PHP trong NGINX.
  5. Khởi động lại máy chủ nginx được cấu hình PHP.
  6. Thêm một tệp PHP vào thư mục HTML NGINX.
  7. Kiểm tra cấu hình PHP, NGINX và PHP-FPM.

Tải xuống các gói NGINX và PHP mới nhất

Mỗi phần mềm cài đặt trong Ubuntu nên bắt đầu với

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
3 nhanh chóng và có thể là lệnh
sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
4.

sudo apt-get update -y
Reading package lists... Done
sudo apt-get upgrade -y
Calculating upgrade... Done

Cài đặt nginx trên ubuntu

Để cài đặt PHP trên NGINX, trước tiên bạn phải cài đặt Nginx, mà bạn có thể đạt được thông qua lệnh

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
5 đơn giản:

sudo apt-get install nginx -y
The following Nginx packages will be installed:
libnginx-mod-http-geoip2 nginx-common nginx-core
Setting up nginx 1.18.0-6 ubuntu... Done

Xác minh máy chủ nginx đang chạy

Để xác minh cài đặt và cấu hình thành công của Nginx trên UBuntu, truy vấn trạng thái máy chủ HTTP:

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)

Bạn có thể xác minh trực quan trang đích nginx hiển thị trên http: // localhost: 80 của trình duyệt web.

Cài đặt PHP cho NGINX với PHP-FPM

Để cài đặt PHP cho NGINX, hãy sử dụng thư viện PHP-FPM. Bạn có thể cài đặt hỗ trợ PHP-FPM bằng lệnh

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
5 khác:

sudo apt-get install php8.1-fpm -y

Trong trường hợp này, chúng tôi đã cài đặt phiên bản 8.1 của các gói PHP và PHP-FPM.

Một sai lầm phổ biến là cài đặt gói PHP, không phải PHP-FPM. Vấn đề với phương pháp này là không giống như PHP-FPM, gói PHP cài đặt máy chủ Apache HTTP và quy trình HTTPD của nó, mâu thuẫn với Nginx.

Tại sao cài đặt PHP cơ bản yêu cầu Apache?

PHP yêu cầu một trong ba phụ thuộc tồn tại trên máy:

  • libapache2-mod-php
  • php-fpm
  • php-cgi

Theo mặc định, một cài đặt PHP đơn giản sử dụng mô-đun Libapache2-mod-php, yêu cầu cài đặt bộ phần mềm máy chủ HTTP Apache đầy đủ. Để tránh điều này, hãy cài đặt mô-đun PHP-CGI hoặc PHP-FPM cho Nginx.

Kiểm tra xem PHP-FPM có đang chạy không

Sau khi thiết lập PHP-FPM hoàn tất, hãy kiểm tra xem nó có đang chạy không:

sudo systemctl status php8.1-fpm
● php8.1-fpm.service - PHP 8.1 FastCGI Process Manager FPM for Ubuntu
  Loaded: loaded (/lib/systemd/system/php8.1-fpm.service)
  Active: active (php-fpm running)

Thêm hỗ trợ PHP vào nginx

Với cài đặt NGINX và PHP-FPM, bạn phải chỉnh sửa tệp cấu hình nginx mặc định. Điều này cho phép Trình quản lý quy trình PHP FastCGI xử lý các yêu cầu có phần mở rộng .php.

Tệp nginx mặc định có thể được mở với bất kỳ trình soạn thảo văn bản nào. Lệnh này sẽ mở nó bằng nano:

sudo nano /etc/nginx/sites-available/default

Thực hiện các thay đổi sau đối với cấu hình NGINX để hỗ trợ PHP và PHP-FPM trên máy chủ:

  • Thêm index.php vào danh sách chỉ mục.
  • Khéo léo các tập lệnh PHP vào khối nhập FastCGI.
  • Giải quyết dòng để bao gồm đoạn trích/fastcgi-php.conf.
  • Giải quyết dòng để kích hoạt fastcgi_pass và php8.1-fpm. bít tất.
  • Giải quyết phần Phần để từ chối tất cả quyền truy cập vào các tệp Apache .htaccess.

Hướng dẫn how does nginx communicate with php? - nginx giao tiếp với php như thế nào?

Để định cấu hình PHP, NGINX và FTP (FASTCGI), bạn phải cập nhật tệp cấu hình NGINX.

Bật PHP trong tệp cấu hình nginx

Phần máy chủ của tệp Cấu cấu hình NGINX, PHP và PHP-FPM sẽ trông như thế này khi hoàn thành. Các thay đổi được tô sáng trong in đậm:

server {
  # Example PHP Nginx FPM config file
  listen 80 default_server;
  listen [::]:80 default_server;
  root /var/www/html;

  # Add index.php to setup Nginx, PHP & PHP-FPM config
  index index.php index.html index.htm index.nginx-debian.html;

  server_name _;

  location / {
    try_files $uri $uri/ =404;
  }

  # pass PHP scripts on Nginx to FastCGI (PHP-FPM) server
  location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # Nginx php-fpm sock config:
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    # Nginx php-cgi config :
    # Nginx PHP fastcgi_pass 127.0.0.1:9000;
  }

  # deny access to Apache .htaccess on Nginx with PHP, 
  # if Apache and Nginx document roots concur
  location ~ /\.ht {
    deny all;
  }
} # End of PHP FPM Nginx config example

Cách xác thực tệp cấu hình nginx

Lệnh sau xác thực tệp cấu hình nginx được cập nhật để đảm bảo các chỉnh sửa không tạo bất kỳ lỗi cú pháp nào:

sudo nginx -t
nginx php config: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx php-fpm config: configuration file /etc/nginx/nginx.conf test is successful

Để kích hoạt thiết lập FastCGI của NGINX, hãy khởi động lại máy chủ:

sudo systemctl restart nginx

Tạo một trang PHP trong NGINX

Sau khi khởi động lại, PHP được bật hoàn toàn trên Nginx. Để chứng minh điều này, hãy tạo một tệp PHP trong thư mục Nginx,/var/www/html và kiểm tra để đảm bảo trang hiển thị đúng trên máy chủ.

Bạn có thể phải thay đổi quyền thành thư mục bằng lệnh

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
7 để tạo tệp trong đó:

sudo chmod -R 777 /var/www/html

Sau đó, thêm một tệp PHP mới vào thư mục lưu trữ web nginx. Cách dễ nhất để làm như vậy là với lệnh

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
8 nhanh:

sudo apt-get install nginx -y
The following Nginx packages will be installed:
libnginx-mod-http-geoip2 nginx-common nginx-core
Setting up nginx 1.18.0-6 ubuntu... Done
0

Điều này tạo ra tệp PHP cơ bản nhất bên ngoài một ví dụ về Hello Hello World mà bạn có thể tạo. Nếu bạn không thích lệnh

sudo systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
   Active: active (Nginx running)
8, hãy sử dụng trình chỉnh sửa để tạo tệp có tên Info.php trong thư mục/var/www/html với nội dung sau:

sudo apt-get install nginx -y
The following Nginx packages will be installed:
libnginx-mod-http-geoip2 nginx-common nginx-core
Setting up nginx 1.18.0-6 ubuntu... Done
1

Kiểm tra Nginx, Tích hợp PHP

Với cấu hình của Nginx, PHP và mô-đun PHP-FPM hoàn tất và một tệp mới có tên Info.php được thêm vào máy chủ web, chỉ cần mở trình duyệt đến http: //localhost/info.php để kiểm tra thiết lập. Trang thông tin PHP, chứng thực thực tế là cài đặt trên NGINX của PHP 8.1, sẽ xuất hiện.

Hướng dẫn how does nginx communicate with php? - nginx giao tiếp với php như thế nào?

Khi PHP, FPM và NGINX được cấu hình đầy đủ, máy chủ sẽ có thể hiển thị các trang PHP.

Các lệnh để thiết lập PHP và NGINX trong ubuntu

Hãy để nhanh chóng xem xét hướng dẫn PHP và NGINX này. Đây là tất cả các lệnh mà chúng tôi đã sử dụng để kích hoạt Trình quản lý quy trình FASTCGI cho PHP trong NGINX:

  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    2
  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    3
  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    4
  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    5
  • sudo apt-get install php8.1-fpm -y
  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    7
  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    8
  • sudo apt-get install nginx -y
    The following Nginx packages will be installed:
    libnginx-mod-http-geoip2 nginx-common nginx-core
    Setting up nginx 1.18.0-6 ubuntu... Done
    9
  • sudo systemctl status nginx
    nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
       Active: active (Nginx running)
    0
  • sudo systemctl status nginx
    nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
       Active: active (Nginx running)
    1
  • sudo systemctl status nginx
    nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled;)
       Active: active (Nginx running)
    2

Và đó là cách dễ dàng để thiết lập và định cấu hình fastcgi (FTP), NGINX và PHP hỗ trợ trên máy chủ web của bạn.

Nginx hoạt động như thế nào với PHP?

Cách thiết lập NGINX, PHP và PHP-FPM..
Thực hiện bản cập nhật APT-Get để đảm bảo quyền truy cập vào các gói mới nhất ..
Cài đặt nginx trên Ubuntu ..
Cài đặt PHP-FPM cho gói NGINX ..
Chỉnh sửa tệp cấu hình mặc định của máy chủ để hỗ trợ PHP trong Nginx ..
Khởi động lại máy chủ nginx được cấu hình PHP ..
Thêm tệp PHP vào thư mục HTML của Nginx ..

Nginx có bao gồm PHP không?

Nginx không chứa quá trình xử lý PHP gốc.Vì vậy, bạn sẽ cần cài đặt PHP-FPM để xử lý các tệp PHP.FPM là một triển khai PHP FastCGI thay thế với một số tính năng bổ sung hữu ích cho các trang web nặng.. So you will need to install PHP-FPM for processing the PHP files. FPM is an alternative PHP FastCGI implementation with some additional features useful for heavy-loaded sites.

Nginx có tốt hơn cho PHP không?

Khi phục vụ nội dung tĩnh, Nginx là vua!Nginx phục vụ các tài nguyên tĩnh mà không cần PHP phải biết về điều này.Mặt khác, Apache xử lý tất cả các yêu cầu đó với chi phí tốn kém đó.Điều này làm cho Nginx hiệu quả hơn và ít đòi hỏi hơn về tài nguyên hệ thống.Nginx is the king! Nginx serves the static resources without PHP having to know about this. On the other hand, Apache handles all those requests with that costly overhead. This makes Nginx more effective and less demanding on the system resources.

Nginx có cần PHP không

Nginx không biết cách chạy tập lệnh PHP của riêng mình.Nó cần một mô-đun PHP như PHP-FPM để quản lý hiệu quả các tập lệnh PHP.It needs a PHP module like PHP-FPM to efficiently manage PHP scripts.