Hệ điều hành Linux

Cài đặt Php, Php-Fpm trên CentOS

Cài đặt php, Php-Fpm trên CentOS

PHP-FPM (FastCGI Process Manager) là một sự thay thế PHP FastCGI để thực hiện một số tính năng bổ sung hữu ích cho các trang web có bất kỳ kích thước nào, đặc biệt là các trang có lượng truy cập lớn. PHP-FPM được hình thành dựa trên sự mở rộng của CGI và hiện đang được đông đảo người dùng lựa chọn.

Điều kiện để cài đặt Php-Fpm

  • Một Vps/ Dedicated server mới
  • Đã cài đặt Hệ điều hành CentOS
  • RAM tối thiểu 1GB
  • HDD/SSD tối thiểu 15GB
  • Đặc quyền đăng nhập Root
  • Đã cài đặt Nginx trên CentOS

Trong bài viết này, chúng tôi sẽ hướng dẫn cài đặt và cấu hình PHP, PHP-FPM 7.3 trên CentOS 7.

Cập nhật hệ thống

Cập nhật các gói cài đặt trong kho lưu trữ bằng lệnh:

# yum -y update

-y là một tham số tùy chọn. Nó phục vụ để tránh các câu hỏi xác nhận ở các bước tiếp theo.

Cài đặt gói bổ sung EPEL

PHP-FPM không có sẵn trong CentOS, vì vậy bạn cần cài đặt EPEL (Extra Packages for Enterprise Linux) có sẵn trên máy chủ của mình. EPEL được sử dụng miễn phí và cung cấp nhiều gói mã nguồn mở. Ở bước này chúng ta cần cài đặt 2 repositories.

Cái đầu tiên là EPEL, Chạy lệnh sau:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Cái thứ hai là REMI, Chạy lệnh sau:

# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Cài đặt Gói yum-utils

Bây giờ chúng ta cần cài đặt gói yum-utils bằng cách chạy lệnh:

# yum install yum-utils

Cài đặt Php và Php-Fpm

Ở bước này chúng ta sẽ cài đặt PHP, PHP-FPM 7.3. Trước tiên cần Vô hiệu hóa phiên bản PHP 5.4 mặc định bằng cách chạy lệnh:

# yum-config-manager --disable remi-php54

Tiến hành cài đặt PHP 7.3, chạy lệnh:

# yum-config-manager --enable remi-php73

Ghi chú: Nếu muốn chạy các phiên bản PHP khác thì chạy lệnh tương ứng:
sudo yum-config-manager --enable remi-php71
sudo yum-config-manager --enable remi-php72

Bây giờ cài đặt các mô-đun cần thiết cho PHP 7.3:

# yum -y install php php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdo php-pecl-apcu php-pecl-apcu-devel

Quản lý và tác vụ Php-Fpm

Dừng PHP-FPM bằng lệnh sau:

# systemctl stop php-fpm

Khởi động lại PHP-FPM bằng lệnh sau:

# systemctl restart php-fpm

Kiểm tra trang thái PHP-FPM bằng lệnh sau:

# systemctl status php-fpm

Để kiểm tra phiên bản PHP đã cài đặt, chạy lệnh:

# php -v

Cấu hình Php-Fpm

Mở tệp www.conf:

# nano /etc/php-fpm.d/www.conf

Tìm dòng:

; RPM: apache Choosed to be able to access some dir as httpd
 user = apache
 ; RPM: Keep a group allowed to write in log dir.
 group = apache

Đổi apache sang nginx

 ; RPM: apache Choosed to be able to access some dir as httpd
 user = nginx
 ; RPM: Keep a group allowed to write in log dir.
 group = nginx

Tìm dòng:

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660

Đổi nobody sang nginx và bỏ dấu ( ; ) đầu câu:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Tìm dòng:

listen = 127.0.0.1:9000

Đổi thành:

listen = /var/run/php-fpm/php-fpm.sock

Sau khi cấu hình xong, bấm ctrl+ OEnter để lưu lại, bấm ctrl+ X để thoát.

Cấu hình Php

Mở tệp php.ini bằng lệnh sau:

# nano /etc/php.ini

Tìm dòng:

;cgi.fix_pathinfo=1

Đổi thành:

cgi.fix_pathinfo=0 (ngăn chặn người ngoài thực hiện các yêu cầu không được phép từ PHP).

Tìm dòng:

;date.timezone =

Đổi thành:

date.timezone = Asia/Ho_Chi_Minh

Tìm dòng:

memory_limit = 128M

Đổi thành:

memory_limit =  256M  (thông số này phù hợp với WordPress, nếu là Magento thì tăng lên 2048)

Tìm dòng:

upload_max_filesize = 2M

Đổi thành:

upload_max_filesize = 100M (tùy chỉnh tăng giới hạn tải lên tập tin trong php)

Tìm dòng:

expose_php = On

Đổi thành:

expose_php = Off  (ẩn php version khi dùng lệnh curl -I http://example.com)

Tìm dòng:

; max_input_vars = 1000

Đổi thành:

max_input_vars = 5000 (thông số này phù hợp với WordPress & WPML)

Sau khi cấu hình xong, bấm ctrl+ OEnter để lưu lại, bấm ctrl+ X để thoát.

Cấu hình Opcache

Mở thư mục Opcache:

# nano /etc/php-zts.d/10-opcache.ini

Tìm dòng:

;opcache.save_comments=1

Bỏ dấu ( ; ) đầu câu:

opcache.save_comments=1

Sau khi cấu hình xong, bấm ctrl+ OEnter để lưu lại, bấm ctrl+ X để thoát.

Sau khi hoàn tất các cấu hình, khởi động PHP bằng lệnh sau:

# systemctl start php-fpm

Kích hoạt chế độ tự động bật lại php-fpm sau khi reboot máy chủ:

# systemctl enable php-fpm

Kiểm tra tình trạng Php

Tiếp theo, mở tệp trong thư mục /etc/nginx/conf.d:

# nano /etc/nginx/conf.d/default.conf

Xoá toàn bộ nội dung bên trong và thay thế bằng nội dung sau:

server {
    listen       80;
    server_name  localhost;

    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
       # try_files $uri $uri/ =404;
       #try_files $uri $uri/ /index.php?$args;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Lưu ý: Các chữ tô màu có thể cần thay đổi.
Sau khi thay đổi xong, bấm ctrl+ O và nhấn Enter để lưu lại, bấm ctrl+ X để thoát khỏi bảng điều khiển Linux.

Khởi động lại Nginx để áp dụng cấu hình:

# systemctl restart nginx

Tiếp theo, thay thế quyền sở hữu thư mục mặc định của Nginx:

# sudo chown -R nginx.nginx/usr/share/nginx/html/

Lệnh trên thay đổi quyền sở hữu gốc của Nginx sang tên người dùngnhóm có cùng tên là nginx. Bạn có thể thay đổi tên nếu muốn.

Bây giờ tạo một tệp info.php tương úng với đường dẫn /usr/share/nginx/html/info.php:

# nano /usr/share/nginx/html/info.php

Dán nội dung bên dưới vào tệp info.php:

<?php
phpinfo();

Sau khi nhập nội dung xong, bấm ctrl+ O và nhấn Enter để lưu lại, bấm ctrl+ X để thoát khỏi bảng điều khiển Linux.

Để kiểm tra, truy cập theo đường dẫn http://server_IP_or_domain_name/info.php

Sau khi kiểm tra thông số PHP, tốt nhất là xóa tệp info.php vì nó chứa thông tin nhạy cảm về môi trường PHP và máy chủ CentOS của bạn.

Bạn có thể sử dụng rm để xóa:

# rm /usr/share/nginx/html/info.php

Bạn luôn có thể tạo lại tệp nếu sau này cần.

Kết thúc !

Nếu có ý kiến đóng góp, vui lòng để lại bình luận bên dưới.

5/5 - (1 bình chọn)

Bài viết liên quan