Khi bạn muốn chỉ định domain sử dụng 1 phiên bản php bất kỳ có trên server centos nginx, vd như php7.4 vậy bạn cần làm các việc sau
Nội dung chính
Cài đặt phiên bản php7.4 trên centos nginx
Bạn cần kiểm tra trên server có phiên bản php7.4 bằng lệnh sau:
rpm -qa | grep php-fpm
Nếu list ra danh sách không có php7.4 tương tự php74-php-fpm-7.4.33-15.el7.remi.x86_64 thì có thể là bạn chưa cài, vậy tiến hành cài.
Cài đặt Remi Repository:
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Cài đặt PHP 7.4:
sudo yum install yum-utils
sudo yum-config-manager --enable remi-php74
sudo yum install php php-cli php-fpm
Sau đó kiểm tra xem dịch vụ php7.4 chạy chưa bằng lệnh
systemctl list-units --type=service | grep php-fpm
Nếu list ra php74-fpm.service loaded active running LSB: starts php-fpm chứng tỏ là đã chạy, bạn có thể tiếp tục kiểm tra trạng thái bằng lệnh systemctl status php74-fpm.service nếu trạng thái ready xanh và không báo lỗi gì thì php7.4 đã cài và chạy thành công.
Bạn có thể restart lại php7.4 khi cần bằng lệnh
systemctl restart php74-fpm
Cách setup cấu hình phiên bản php7.4 theo từng domain riêng biệt
Bước 1: Vào thư mục /app/php74/etc/php-fpm.d tạo file domain.com.conf với nội dung sau;
[domain.com]
listen = /app/php74/var/run/php-domain.com.sock
user = nginx
group = nginx
;request_slowlog_timeout = 5s
;slowlog = /app/php74/var/log/slowlog-domain.com.log
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 40
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 8
pm.max_requests = 1000
listen.backlog = 511
pm.status_path = /status
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
sau khi tạo file /app/php74/etc/php-fpm.d/domain.com.conf bạn cần restart lại php7.4 với lệnh systemctl restart php74-fpm
File /app/php74/var/run/php-domain.com.sock sẽ được tự động tạo ở thư mục /app/php74/var/run
Bước 2: Vào thư mục /etc/nginx/sites-available mở fiel domain.conf thêm đường dẫn socket của php7.4
Tại vị trí location ~ .php$ { … thay phiên bản php mặc định bằng fastcgi_pass unix:/app/php74/var/run/php-domain.com.sock; # Đường dẫn socket của PHP-FPM
code vd đầy đủ như sau:
server {
listen 80;
server_name domain.com www.domain.com;
access_log /var/log/nginx/domain.com-access.log main;
error_log /var/log/nginx/domain.com-error.log info;
root /data/vhosts/domain.com;
index index.php index.html index.htm;
client_max_body_size 100M;
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
try_files $uri $uri/ /index.php?$args;
}
location ~* /wp-content/uploads/.*\.php$ {
deny all;
}
location /wp-login.php {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ /index.php?$args;
}
location /wp-admin {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ /index.php?$args;
}
location /_mydb {
alias /usr/share/nginx/html/_myadmin/;
location ~ \.php$ {
fastcgi_pass unix:/app/php74/var/run/php-domain.com.sock
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
# execute all .php files via php-fpm
location ~ .php$ {
# connect to a unix domain-socket:
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass unix:/app/php74/var/run/php-domain.com.sock; # Đường dẫn socket của PHP-FPM
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
# This file is present on Debian systems..
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Sau khi chỉnh sửa file domain.conf hoàn chỉnh hãy restart nginx bằng lệnh sudo systemctl restart nginx và thử tạo file chạy với lệnh phpinfo() nếu show thông tin phiên bản php7.4 là bạn đã thành công.