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:
- 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.
- 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 một tệp PHP vào thư mục HTML NGINX.
- 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ủ
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 // 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.
Để đị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... 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 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 //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 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
2sudo 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
3sudo 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
4sudo 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
5sudo 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
7sudo 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
8sudo 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
9sudo 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]
0sudo 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]
1sudo 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.