Nginx là một máy chủ web miễn phí, mã nguồn mở và là một trong những máy chủ web mạnh nhất trên toàn thế giới. Nó chủ yếu được sử dụng cho các trang web có lưu lượng truy cập cao và tải nặng. Nginx được biết đến với tính ổn định, cấu hình đơn giản và mức tiêu thụ tài nguyên thấp. Bạn có thể sử dụng Nginx làm máy chủ web và proxy ngược.
FPM là viết tắt của FastCGI Process Manager, là một triển khai PHP FastCGI thay thế của PHP và được sử dụng cho các trang web có lưu lượng truy cập cao. Nó thường được sử dụng với máy chủ web để phục vụ các trang PHP. PHP-FPM sử dụng ít bộ nhớ và CPU hơn so với bất kỳ phương pháp chạy PHP nào khác. PHP-FPM nhanh hơn các phương pháp dựa trên CGI truyền thống cho môi trường PHP nhiều người dùng. PHP-FPM cũng cho phép chạy nhiều phiên bản PHP cùng một lúc.
Hướng dẫn này sẽ hướng dẫn chúng ta cách cài đặt Nginx với hỗ trợ PHP-FPM trong CentOS 8.
Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp /etc/selinux/config:
Thực hiện các thay đổi sau:
Lưu và đóng tệp. Sau đó, khởi động lại máy chủ của bạn để áp dụng các thay đổi.
Sau khi Nginx đã được cài đặt, hãy khởi động dịch vụ Nginx và cho phép nó khởi động khi khởi động bằng lệnh sau lệnh:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi tất cả các gói được cài đặt, hãy khởi động Dịch vụ PHP-FPM và cho phép dịch vụ này khởi động sau khi khởi động lại hệ thống:
Bạn cũng có thể kiểm tra trạng thái của dịch vụ PHP-FPM bằng lệnh sau:
Bạn sẽ nhận được thông báo sau đầu ra:
Bạn có thể tạo một info.php bên trong thư mục gốc tài liệu mặc định của Nginx như được hiển thị bên dưới:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, thay đổi quyền sở hữu tệp info.php thành nginx:
Bạn có thể tạo tệp này bằng lệnh sau lệnh:
Thêm các dòng sau:
Lưu và đóng tệp. Sau đó, hãy kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Tiếp theo, hãy bật tệp máy chủ ảo Nginx và khởi động lại dịch vụ Nginx để áp dụng cấu hình:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22378%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22332%22%3E%3C/svg%3E
Trong trang trên, bạn sẽ thấy PHP-FPM được tải bằng máy chủ web Nginx.
FPM là viết tắt của FastCGI Process Manager, là một triển khai PHP FastCGI thay thế của PHP và được sử dụng cho các trang web có lưu lượng truy cập cao. Nó thường được sử dụng với máy chủ web để phục vụ các trang PHP. PHP-FPM sử dụng ít bộ nhớ và CPU hơn so với bất kỳ phương pháp chạy PHP nào khác. PHP-FPM nhanh hơn các phương pháp dựa trên CGI truyền thống cho môi trường PHP nhiều người dùng. PHP-FPM cũng cho phép chạy nhiều phiên bản PHP cùng một lúc.
Hướng dẫn này sẽ hướng dẫn chúng ta cách cài đặt Nginx với hỗ trợ PHP-FPM trong CentOS 8.
Điều kiện tiên quyết
- Máy chủ chạy CentOS 8.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Bắt đầu
Theo mặc định, SELinux được bật trong máy chủ CentOS 8. Vì vậy, trước tiên bạn cần phải tắt nó.Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp /etc/selinux/config:
Mã:
nano /etc/selinux/config
Mã:
SELINUX=disabled
Cài đặt Nginx web Server
Trước tiên, cài đặt Nginx web server bằng lệnh sau:
Mã:
yum install nginx -y
Mã:
systemctl start nginx
systemctl enable nginx
Cài đặt PHP và PHP-FPM
Tiếp theo, cài đặt PHP và PHP-FPM bằng cách chạy lệnh sau:
Mã:
yum install php php-cli php-common php-fpm -y
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Mã:
systemctl status php-fpm
Mã:
? php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago Main PID: 1475 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 6 (limit: 5060) Memory: 28.5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: master process (/etc/php-fpm.conf) ??1478 php-fpm: pool www ??1479 php-fpm: pool www ??1480 php-fpm: pool www ??1481 php-fpm: pool www ??1482 php-fpm: pool www
Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.
Tạo trang chỉ mục cho Nginx
Tiếp theo, bạn sẽ cần tạo một trang info.php mẫu để kiểm tra xem Nginx có sử dụng PHP-FPM hay không.Bạn có thể tạo một info.php bên trong thư mục gốc tài liệu mặc định của Nginx như được hiển thị bên dưới:
Mã:
nano /var/www/html/info.php
Mã:
Tiếp theo, thay đổi quyền sở hữu tệp info.php thành nginx:
Mã:
chown -R nginx: /var/www/html/info.php/
Cấu hình Nginx với PHP-FPM
Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx và bật hỗ trợ PHP-FPM.Bạn có thể tạo tệp này bằng lệnh sau lệnh:
Mã:
nano /etc/nginx/conf.d/example.conf
Mã:
server { listen 80; server_name example.com; root /var/www/html/; index info.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; }
}
Mã:
nginx -t
Mã:
systemctl restart nginx
Kiểm tra Nginx với hỗ trợ PHP-FPM
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL . Bạn sẽ được chuyển hướng đến trang sau:data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22378%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22332%22%3E%3C/svg%3E
Trong trang trên, bạn sẽ thấy PHP-FPM được tải bằng máy chủ web Nginx.