Hướng dẫn cài đặt và cấu hình Nginx kết hợp PHP-FPM trên CentOS 7

1. Chuẩn bị môi trường hệ thống

Bài viết này thực hiện trên hệ điều hành CentOS Linux 7.x. Để quá trình cài đặt không bị gián đoạn bởi các thiết lập bảo mật mặc định, bạn cần tạm thời vô hiệu hóa SELinux và dừng Firewall.

setenforce 0
systemctl stop firewalld

2. Thiết lập kho lưu trữ (Repository) cho Nginx

Mặc định, kho ứng dụng chuẩn của CentOS có thể không chứa Nginx hoặc phiên bản cũ. Bạn có thể chọn một trong hai cách sau để cài đặt.

Cách 1: Sử dụng kho EPEL

yum -y install epel-release

Cách 2: Sử dụng kho chính thức từ Nginx

Tạo tệp cấu hình repo mới:

vi /etc/yum.repos.d/nginx.repo

Thêm nội dung sau vào tệp:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

3. Cài đặt và kích hoạt Nginx

Tiến hành cài đặt gói Nginx từ kho đã cấu hình:

yum install -y nginx

Sau khi cài đặt xong, khởi chạy dịch vụ và thiết lập tự động chạy cùng hệ thống:

systemctl start nginx
systemctl enable nginx

4. Cài đặt và cấu hình PHP-FPM

Để Nginx có thể xử lý các tệp tin PHP, chúng ta cần cài đặt PHP-FPM:

yum -y install php-fpm

Mặc định PHP-FPM thường chạy dưới quyền của người dùng apache. Bạn cần chuyển đổi sang người dùng nginx để đồng bộ với máy chủ web:

vi /etc/php-fpm.d/www.conf

Tìm và thay đổi các dòng sau:

user = nginx
group = nginx

5. Cấu hình Server Block cho Nginx

Tạo một tệp cấu hình mới để định nghĩa cách Nginx xử lý yêu cầu và kết nối với PHP-FPM:

vi /etc/nginx/conf.d/webapp.conf

Nội dung cấu hình mẫu:

server {
    listen 80;
    server_name mysite.local;
    root /var/www/app_data;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

6. Tạo thư mục dự án và tệp kiểm tra

Khởi tạo thư mục gốc cho trang web theo cấu hình đã khai báo ở trên:

mkdir -p /var/www/app_data

Tạo một tệp PHP đơn giản để kiểm tra hoạt động của hệ thống:

vi /var/www/app_data/info.php

Thêm đoạn mã sau:

<?php
phpinfo();
?>

7. Khởi động lại dịch vụ và kiểm tra

Khởi động dịch vụ PHP-FPM và tải lại cấu hình Nginx:

systemctl restart php-fpm
systemctl restart nginx

Đảm bảo PHP-FPM đang lắng nghe trên cổng 9000:

lsof -i:9000

Cuối cùng, mở trình duyệt và truy cập vào địa chỉ http://<IP_CUA_BAN>/info.php. Nếu trang thông tin PHP hiện ra, hệ thống đã hoạt động chính xác. Để kiểm tra tính phụ thuộc, bạn có thể thử dừng dịch vụ PHP-FPM bằng lệnh systemctl stop php-fpm và tải lại trang, trình duyệt sẽ trả về lỗi kết nối.

Thẻ: nginx php-fpm centos7 web-server linux-administration

Đăng vào ngày 30 tháng 8 lúc 06:25