Hướng dẫn how does nginx communicate with php? - nginx giao tiếp với php như thế nào?
Show
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:
Tải xuống các gói NGINX và PHP mới nhấtMỗ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:
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ôngSau 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 nginxVớ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ủ:
Để đị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 nginxPhầ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 nginxLệ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 NGINXSau 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... Done0 Đ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... Done1 Kiểm tra Nginx, Tích hợp PHPVớ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. 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 ubuntuHã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:
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ôngNginx 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. |