Hướng dẫn how do i enable fpm in php? - làm cách nào để kích hoạt fpm trong php?

PHP-FPM (Trình quản lý quy trình FASTCGI) là một giải pháp thay thế cho việc triển khai PHP của FASTCGI với một số tính năng bổ sung hữu ích cho các trang web có lưu lượng truy cập cao. Đây là phương pháp xử lý các trang PHP với NGINX và nhanh hơn các phương pháp dựa trên CGI truyền thống như SUPHP hoặc mod_php để chạy tập lệnh PHP. Ưu điểm chính của việc sử dụng PHP-FPM là nó sử dụng một lượng đáng kể bộ nhớ và CPU đáng kể so với bất kỳ phương pháp chạy PHP nào khác. Lý do chính là nó làm giảm PHP, do đó chuyển đổi nó thành một quy trình nền trong khi cung cấp tập lệnh CLI để quản lý yêu cầu PHP.SUPHP or mod_php for running a PHP script. The main advantage of using PHP-FPM is that it uses a considerable amount of less memory and CPU as compared with any other methods of running PHP. The primary reason is that it demonizes PHP, thereby transforming it to a background process while providing a CLI script for managing PHP request.

Php-fpm nginx cấu hình tiên quyết

  • Bạn có thể mở một phiên SSH cho hệ thống Ubuntu 18.04 của mình bằng cách sử dụng người dùng được hỗ trợ bởi root hoặc sudo.
  • Bạn đã cài đặt NGINX và PHP trong hệ thống Ubuntu 18.04 của mình.

Các bước cấu hình NGINX PHP-FPM

  • Cài đặt PHP-FPM
  • Định cấu hình nhóm PHP-FPM
  • Định cấu hình Nginx cho PHP-FPM
  • Kiểm tra cấu hình nginx php-fpm

1. Cài đặt PHP-FPM

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. Php-FPM, mặt khác, chạy bên ngoài môi trường NGINX bằng cách tạo quy trình riêng. Do đó, khi người dùng yêu cầu một trang PHP, máy chủ Nginx sẽ chuyển yêu cầu cho dịch vụ PHP-FPM bằng FastCGI. Việc cài đặt PHP-FPM trong Ubuntu 18.04 phụ thuộc vào PHP và phiên bản của nó. Kiểm tra tài liệu của PHP đã cài đặt trước khi tiến hành cài đặt FPM trong máy chủ của bạn. Giả sử bạn đã cài đặt Php 7.3 mới nhất, sau đó bạn có thể cài đặt FPM bằng lệnh APT-Get sau.php-fpm in Ubuntu 18.04 depends on PHP and its version. Check the documentation of installed PHP before proceeding with installing FPM in your server. Assuming you have already installed the latest PHP 7.3, then you can install FPM using the following apt-get command.

# apt-get install php7.3-fpm

Dịch vụ FPM sẽ tự động bắt đầu, sau khi cài đặt kết thúc. Bạn có thể xác minh rằng bằng cách sử dụng lệnh SystemD sau:

# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www

2. Cấu hình nhóm PHP-FPM

Dịch vụ PHP-FPM tạo ra một nhóm mặc định, cấu hình (www.conf) có thể được tìm thấy trong thư mục

# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
0. Bạn có thể tùy chỉnh nhóm mặc định theo yêu cầu của bạn. Nhưng đó là một thông lệ tiêu chuẩn để tạo ra các nhóm riêng biệt để có quyền kiểm soát tốt hơn đối với phân bổ tài nguyên cho từng quy trình FPM. Hơn nữa, việc phân tách nhóm FPM sẽ cho phép họ chạy độc lập bằng cách tạo quy trình chính của riêng mình. Điều đó có nghĩa là mỗi ứng dụng PHP có thể được cấu hình với các cài đặt bộ đệm của riêng mình bằng PHP-FPM. Một sự thay đổi trong một cấu hình của một nhóm không yêu cầu bạn bắt đầu hoặc dừng phần còn lại của các nhóm FPM. Hãy để chúng tôi tạo một nhóm FPM để chạy ứng dụng PHP một cách hiệu quả thông qua một người dùng riêng biệt. Để bắt đầu, hãy tạo một người dùng mới, người sẽ có quyền độc quyền đối với nhóm này:

# groupadd wordpress_user
# useradd -g wordpress_user wordpress_user

Bây giờ điều hướng đến thư mục cấu hình FPM và tạo tệp cấu hình bằng trình chỉnh sửa văn bản yêu thích của bạn như VI:

# cd /etc/php/7.3/fpm/pool.d
# vi wordpress_pool.conf
[wordpress_site]
user = wordpress_user
group = wordpress_user
listen = /var/run/php7.2-fpm-wordpress-site.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
; Choose how the process manager will control the number of child processes. 
pm = dynamic 
pm.max_children = 75 
pm.start_servers = 10 
pm.min_spare_servers = 5 
pm.max_spare_servers = 20 
pm.process_idle_timeout = 10s

Các tùy chọn cấu hình FPM ở trên và các giá trị của chúng được mô tả dưới đây.

  • [WordPress_Site]: Tên của nhóm và phải là duy nhất trên tất cả các tên nhóm.: The name of the pool and must be unique across all pool names.
  • Người dùng và nhóm: Người dùng và nhóm theo đó nhóm sẽ chạy.: The user and group under which the pool will run.
  • Nghe: Tên của tệp ổ cắm cho nhóm này.: The name of the socket file for this pool.
  • Listen.Owner và Listen.group: Phải khớp với người dùng và nhóm mà Nginx đang chạy. Trong trường hợp của chúng tôi là www-data.: Must match to the user and group on which NGINX is running. In our case it is www-data.
  • PHP_ADMIN_VALUE: Cho phép đặt các giá trị cấu hình PHP tùy chỉnh.: Allows to set custom php configuration values.
  • PHP_ADMIN_FLAG: Cho phép đặt cờ Boolean PHP.: Allows to set PHP boolean flags.
  • PM: Cài đặt trình quản lý quy trình và giá trị là động có nghĩa là số lượng quy trình con được đặt động dựa trên các chỉ thị sau.: The process manager settings and the value is Dynamic means the number of child processes are set dynamically based on the following directives.
  • pm.max_children: Số lượng trẻ em tối đa có thể sống cùng một lúc.: The maximum number of children that can be alive at the same time.
  • PM.start_servers: Số lượng trẻ em được tạo khi khởi động.: The number of children created on startup.
  • pm.min_spare_servers: Số lượng trẻ em tối thiểu ở trạng thái ‘Idle, (chờ xử lý). Nếu số lượng quy trình nhàn rỗi nhỏ hơn số này thì một số trẻ sẽ được tạo ra.: The minimum number of children in ‘idle’ state (waiting to process). If the number of idle processes is less than this number then some children will be created.
  • PM.MAX_SPARE_SERVERS: Số lượng trẻ em tối đa ở trạng thái nhàn rỗi (chờ xử lý). Nếu số lượng quá trình nhàn rỗi lớn hơn con số này thì một số trẻ sẽ bị giết.: The maximum number of children in idle state (waiting to process). If the number of idle processes is greater than this number then some children will be killed.
  • pm.process_idle_timeout: Số lượng quy trình máy chủ nhàn rỗi tối đa mong muốn. Chỉ được sử dụng khi giá trị PM được đặt thành động. Ngoài các cài đặt trên, cũng có thể chuyển một số biến môi trường hệ thống cho dịch vụ PHP-FPM bằng cách sử dụng một cái gì đó như
    # systemctl status php7.3-fpm
    ● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
       Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
         Docs: man:php-fpm7.3(8)
     Main PID: 32210 (php-fpm7.3)
       Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
        Tasks: 3 (limit: 1152)
       CGroup: /system.slice/php7.3-fpm.service
               ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
               ├─32235 php-fpm: pool www
               └─32236 php-fpm: pool www
    
    1. Ví dụ: thêm các tùy chọn sau trong tệp cấu hình ở trên sẽ đặt vị trí thư mục máy chủ và thư mục tạm thời vào môi trường PHP.
    : The desired maximum number of idle server processes. Used only when pm value is set to dynamic. Apart from above settings, it is also possible to pass few system environmental variable to php-fpm service using something like
    # systemctl status php7.3-fpm
    ● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
       Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
         Docs: man:php-fpm7.3(8)
     Main PID: 32210 (php-fpm7.3)
       Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
        Tasks: 3 (limit: 1152)
       CGroup: /system.slice/php7.3-fpm.service
               ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
               ├─32235 php-fpm: pool www
               └─32236 php-fpm: pool www
    
    1. For example, adding the following options in the above configuration file will set the hostname and temporary folder location to the PHP environment.
...
...
env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
...
...

Ngoài ra, cài đặt Trình quản lý quy trình trong tệp cấu hình nhóm trên được đặt thành động. Chọn một cài đặt phù hợp nhất với yêu cầu của bạn. Các tùy chọn cấu hình khác cho Trình quản lý quy trình là:- tĩnh: Một số lượng cố định các quy trình PHP sẽ được duy trì.Static: A fixed number of PHP processes will be maintained.

  • Ondemand: Không có trẻ em nào được tạo ra khi khởi động. Trẻ em sẽ bị chia tay khi nhận được các yêu cầu mới trong máy chủ.: No children are created at startup. Children will be forked when new requests are received in the server.

Khi bạn đã hoàn tất việc tạo tệp cấu hình ở trên, hãy khởi động lại dịch vụ FPM để áp dụng các cài đặt mới:

# systemctl start php7.3-fpm

Nhóm FPM sẽ được tạo ngay lập tức để phục vụ các trang PHP. Hãy nhớ rằng, bạn có thể tạo một dịch vụ SystemD riêng biệt bằng cách chỉ định tệp cấu hình FPM ở trên do đó cho phép bạn bắt đầu/dừng nhóm này mà không ảnh hưởng đến các nhóm khác.

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

Bây giờ tạo một khối máy chủ nginx sẽ sử dụng nhóm FPM ở trên. Để thực hiện điều đó, hãy chỉnh sửa tệp cấu hình NGINX của bạn và truyền đường dẫn của tệp ổ cắm nhóm bằng cách sử dụng tùy chọn

# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
2 bên trong khối vị trí cho PHP.

Khối máy chủ
server {
         listen       80;
         server_name  example.journaldev.com;
         root         /var/www/html/wordpress;

         access_log /var/log/nginx/example.journaldev.com-access.log;
         error_log  /var/log/nginx/example.journaldev.com-error.log error;
         index index.html 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/php7.2-fpm-wordpress-site.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
    }
}
NGINX
Hướng dẫn how do i enable fpm in php? - làm cách nào để kích hoạt fpm trong php?
NGINX Server Block

Đảm bảo cài đặt cấu hình ở trên là chính xác về mặt cú pháp và khởi động lại nginx.

# nginx-t
# systemctl restart nginx

4. Kiểm tra cấu hình Php-FPM nginx

Để kiểm tra xem tệp cấu hình NGINX ở trên có thực sự sử dụng nhóm FPM mới được tạo hay không, hãy tạo tệp thông tin PHP bên trong Root Web. Tôi đã sử dụng

# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
3 làm gốc web trong tệp cấu hình nginx ở trên. Điều chỉnh giá trị này theo môi trường của bạn.

# cd /var/www/html/wordpress
# echo "" > info.php

Khi bạn đã hoàn tất việc tạo trang thông tin PHP, hãy trỏ trình duyệt web yêu thích của bạn vào nó. Bạn sẽ nhận thấy rằng giá trị của biến

# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
4 và
# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
5 đang chỉ vào
# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
6 và
# systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 06:29:31 UTC; 30s ago
     Docs: man:php-fpm7.3(8)
 Main PID: 32210 (php-fpm7.3)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 1152)
   CGroup: /system.slice/php7.3-fpm.service
           ├─32210 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
           ├─32235 php-fpm: pool www
           └─32236 php-fpm: pool www
7 mà chúng tôi đặt trong tệp cấu hình FPM trước đó và do đó xác nhận rằng NGINX đang phục vụ các trang PHP bằng cách sử dụng nhóm FPM mong muốn của chúng tôi.

Hướng dẫn how do i enable fpm in php? - làm cách nào để kích hoạt fpm trong php?
Thử nghiệm nginx PHP-FPM

Bản tóm tắt

Trong bài viết này, chúng tôi đã học cách cài đặt PHP-FPM và định cấu hình các nhóm riêng cho người dùng và ứng dụng khác nhau. Chúng tôi cũng đã học cách định cấu hình khối máy chủ Nginx để kết nối với dịch vụ PHP-FPM. PHP-FPM cung cấp độ tin cậy, bảo mật, khả năng mở rộng và tốc độ cùng với rất nhiều tùy chọn điều chỉnh hiệu suất. Bây giờ bạn có thể chia nhóm PHP-FPM mặc định thành nhiều nhóm tài nguyên để phục vụ các ứng dụng khác nhau. Điều này sẽ không chỉ tăng cường bảo mật máy chủ của bạn mà còn cho phép bạn phân bổ tài nguyên máy chủ một cách tối ưu!

Làm cách nào để kích hoạt PHP

Để kích hoạt FPM trong bản dựng PHP của bạn, bạn cần thêm --Enable-FPM vào dòng cấu hình của bạn. Có một số tùy chọn cấu hình cụ thể FPM khác (tất cả đều là tùy chọn):--with-fpm-người dùng-đặt người dùng fpm (mặc định-không ai). --with-fpm-group-Đặt nhóm fpm (mặc định-không ai).add --enable-fpm to your configure line. There are several other FPM-specific configure options (all of them optional): --with-fpm-user - set FPM user (default - nobody). --with-fpm-group - set FPM group (default - nobody).

Làm thế nào để tôi biết nếu PHP

Kiểm tra phiên bản PHP được cài đặt trên máy chủ Linux và UNIX của bạn Mở dấu nhắc đầu cuối và sau đó nhập các lệnh sau.Bạn đang sử dụng PHP-FPM?Nhận phiên bản PHP bằng lệnh PHP -FMP -V hoặc PHP -FPM73 -V.Open the terminal prompt and then type the following commands. Are you using php-fpm? Get php version using the php-fmp -v or php-fpm73 -v command.

Làm cách nào để tải xuống PHP

Cách cài đặt PHP-FPM với Apache trên Ubuntu 20.04..
Bước 1: Thêm PPA cho PHP 8.1.Thêm ondrej/PHP có gói PHP 8.1 và các tiện ích mở rộng PHP cần thiết khác.....
Bước 2: Cài đặt Php 8.1 fpm.....
Bước 3: Cài đặt Apache.....
Bước 4: Định cấu hình Apache với PHP-FPM.....
Bước 6: Định cấu hình máy chủ ảo Apache.....
Bước 7: Xác minh PHP-FPM với Apache ..

PHP ở đâu

Ví dụ: trên Centos 8, với một phiên bản duy nhất, tất cả các tệp cấu hình PHP được đặt trong thư mục /etc và tệp cấu hình PHP-FPM mặc định (www) là /etc/php-fpm.d/www.conf: to to to to to to choLiệt kê tất cả các tệp cấu hình PHP, sử dụng lệnh LS sau./etc/php-fpm. d/www. conf: To list all PHP configuration files, use the following ls command.