Phương pháp sau đây sẽ giúp bạn bắt đầu nhanh chóng trên Ubuntu 12.04:
Cài đặt các phụ thuộc:
$ sudo apt-get install nginx8
Cài đặt Nginx:
$ sudo apt-get install nginx9
Bắt đầu nginx:
$ sudo service nginx start0
Kiểm tra rằng nó đang hoạt động [nên xem "Chào mừng bạn đến Nginx!"]
$ sudo service nginx start1
Trong cấu hình trang web nginx của bạn
$ sudo service nginx start2 đến
$ sudo service nginx start3.
Giải nén các dòng trong phần máy chủ {} bắt đầu bằng
$ sudo service nginx start4 cho cả IPv4 / IPv6.
Cuộn xuống nơi mà nó nói
$ sudo service nginx start5 và các dòng Unmment để có vẻ như sau:
location ~ \.php$ {
fastcgi_split_path_info ^[.+\.php][/.+]$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
$ sudo service nginx start6
$ sudo service nginx start7
Root Web mặc định của bạn được đặt tại/usr/share/nginx/www [theo tệp cấu hình]. [Xem
$ sudo service nginx start8
.
Nginx được phát âm là Động cơ X-X, đây là máy chủ web và máy chủ proxy ngược. Nginx nổi tiếng với tốc độ và khả năng xử lý số lượng lớn các yêu cầu đồng thời với việc sử dụng tài nguyên tối ưu.
PHP-FPM là viết tắt của Trình quản lý quy trình PHP-FASTCGI. CGI đề cập đến giao diện cổng chung được viết để hoạt động như một giao diện giữa máy chủ web và các chương trình phục vụ nội dung động. Nó lắng nghe trên một cổng giống như chính máy chủ web và truyền yêu cầu giữa PHP và máy chủ web.
Hướng dẫn này cung cấp các hướng dẫn về cách cài đặt và định cấu hình NGINX với PHP-FPM, điều này sẽ giúp bạn thực hiện các chương trình PHP trong NGINX. Như chúng ta đã thảo luận trước đó trong Apache so với Nginx, khi so sánh với Nginx, Apache tương đối chậm trong khi xử lý tải nặng và xử lý số lượng lớn các yêu cầu.
As we discussed earlier in Apache vs Nginx, when compared to Nginx, Apache is relatively slow while handling heavy load and processing large number of requests.
1. Cài đặt Nginx
Bạn có thể cài đặt Nginx từ nguồn hoặc cài đặt nó bằng công cụ quản lý gói đi kèm với bản phân phối của bạn.
Ví dụ: trên Ubuntu, bạn có thể cài đặt Nginx bằng APT-Get như hình bên dưới.
$ sudo apt-get install nginx
Khởi động máy chủ nginx như hiển thị bên dưới:
$ sudo service nginx start
Truy cập // {your-ip-address} và đảm bảo bạn thấy trang chào mừng nginx.
2. Cài đặt PHP5-FPM
Tiếp theo, cài đặt PHP5-FPM bằng công cụ quản lý gói đi kèm với bản phân phối của bạn.
Ví dụ: trên Ubuntu, bạn có thể cài đặt PHP5-FPM bằng APT-Get như được hiển thị bên dưới.
$ sudo apt-get install php5-fpm
3. Thêm cấu hình PHP vào nginx
Tiếp theo, sửa đổi tệp/etc/nginx/sites-alailable/mặc định và thêm các dòng sau.
$ sudo vi /etc/nginx/sites-available/default server { listen 80; root /usr/share/nginx/www; index index.php index.html index.htm; server_name example.com; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
4. Đặt tham số Nghe trong Php5-FPM www.conf
Tiếp theo, chúng ta cần thực hiện các thay đổi sau trong cấu hình PHP-FRPM.
Theo mặc định, bạn sẽ thấy mục nghe sau trong tệp www.conf
$ sudo vi /etc/php5/fpm/pool.d/www.conf listen = 127.0.0.1:9000
Trong tệp www.conf, để lại mọi thứ như vậy và thay thế dòng nghe ở trên bằng tệp được hiển thị bên dưới.
$ sudo vi /etc/php5/fpm/pool.d/www.conf listen = /var/run/php5-fpm.sock
5. Khởi động lại NGINX và PHP5-FPM và kiểm tra nó
Khởi động lại PHP5-FPM và NGINX như được hiển thị bên dưới
$ sudo service nginx restart $ sudo service php5-fpm restart
Cuối cùng, tạo tệp index.php sau trong root tài liệu nginx và kiểm tra nó.
$ sudo vi /usr/share/nginx/www
Cuối cùng, hãy mở trình duyệt của bạn và truy cập //localhost/index.php [hoặc sử dụng ip-address của bạn], sẽ thực thi tệp index.php và hiển thị thông tin 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
$ sudo apt-get install php5-fpm1 để 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
$ sudo apt-get install php5-fpm1 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:
$ sudo apt-get install nginx0
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
$ sudo apt-get install php5-fpm2. 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:
$ sudo apt-get install nginx1
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:
$ sudo apt-get install nginx2
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ư
$ sudo apt-get install php5-fpm
3. 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$ sudo apt-get install php5-fpm
3. For example, adding the following options in the above configuration file will set the hostname and temporary folder location to the PHP environment.
$ sudo apt-get install nginx3
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:
$ sudo apt-get install nginx4
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 đó, 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
$ sudo apt-get install php5-fpm4 Bên trong khối vị trí cho PHP.Khối máy chủ
$ sudo apt-get install nginx5NGINX
Đả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.
$ sudo apt-get install nginx6
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
$ sudo apt-get install php5-fpm5 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.
$ sudo apt-get install nginx7
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
$ sudo apt-get install php5-fpm6 và
$ sudo apt-get install php5-fpm7 đang chỉ vào
$ sudo apt-get install php5-fpm8 và
$ sudo apt-get install php5-fpm9 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.
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!