Dưới đây là hướng dẫn chi tiết về cách tạo và cấu hình virtual host (vhost) trong Nginx để xử lý các tệp PHP bằng cách sử dụng PHP-FPM. Việc này giúp tăng hiệu suất và khả năng mở rộng của ứng dụng web. Hướng dẫn bao gồm các bước cài đặt Nginx và PHP-FPM, tạo tệp cấu hình cho virtual host, định nghĩa các chỉ thị server, root, và index, cũng như thiết lập location block để xử lý tệp PHP thông qua PHP-FPM. Kết thúc bằng việc kích hoạt virtual host và khởi động lại Nginx để áp dụng thay đổi.
Thực hiện lệnh cài đặt
Chỉnh sửa file cấu hình PHP-FPM:
Backup lại file nginx.conf:
Tạo file cấu hình Nginx mới:
Truy cập vào thư mục chứa mã nguồn của các website và tạo thư mục riêng cho site kienthuclinux.info:
Truy cập thư mục chứa các file cấu hình của virtual host:
Backup file cấu hình mặc định:
Tạo virtual host mới trong Nginx:
Tạo thư mục chứa log cho vhost:
Kiểm tra cú pháp nginx trước khi restart lại nginx
Restart lại service Nginx:
Tạo file info.php để kiểm tra:
Truy cập vào địa chỉ http://kienthuclinux.info/info.php để kiểm tra.
1. Cài đặt Nginx
Thực hiện lệnh sau để tạo ra file /etc/yum.repos.d/nginx.repo
Bash:
echo "
[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
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true" > /etc/yum.repos.d/nginx.repo
Thực hiện lệnh cài đặt
Bash:
yum-config-manager --enable nginx-mainline
yum install epel-release
yum install yum-utils
yum update
yum install nginx
# kích hoạt dịch vụ
systemctl enable nginx
# Chạy dịch vụ
systemctl start nginx
2. Cài đặt PHP
Để vhost có thể xử lý các tệp PHP, bạn cần cài đặt PHP, PHP-FPM và các phần mở rộng liên quan.
Bash:
yum install -y php-common php-bcmath php-cli php-devel php-mcrypt php-mysql php-password-compat php-pclzip php-pdo php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-dba php-embedded php-enchant php-mbstring php-intl libssh2 php-pecl-ssh2 php-pecl-memcached php-pecl-memcache php-fpm
Chỉnh sửa file cấu hình PHP-FPM:
Bash:
sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
service php-fpm restart
3. Cấu hình Virtual Host
Truy cập vào thư mục chứa file cấu hình của Nginx:
Bash:
cd /etc/nginx/
Backup lại file nginx.conf:
Bash:
mv nginx.conf nginx.conf.bak
Tạo file cấu hình Nginx mới:
Bash:
cat >> nginx.conf << "EOF"
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
EOF
Truy cập vào thư mục chứa mã nguồn của các website và tạo thư mục riêng cho site kienthuclinux.info:
Bash:
cd /var/www/
mkdir kienthuclinux.info
Truy cập thư mục chứa các file cấu hình của virtual host:
Bash:
cd /etc/nginx/conf.d/
Backup file cấu hình mặc định:
Bash:
mv default.conf default.conf.bak
Tạo virtual host mới trong Nginx:
Bash:
cat >> kienthuclinux.info.conf << "EOF"
server {
listen 80;
server_name kienthuclinux.info;
access_log /var/logs/nginx/kienthuclinux.info-access_log;
error_log /var/logs/nginx/kienthuclinux.info-error_log;
location / {
root /var/www/kienthuclinux.info;
index index.html index.php index.htm;
}
location ~ \.php$ {
root /var/www/kienthuclinux.info;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
Tạo thư mục chứa log cho vhost:
Bash:
mkdir /var/logs/nginx
Kiểm tra cú pháp nginx trước khi restart lại nginx
Bash:
nginx -t
Restart lại service Nginx:
Bash:
service nginx restart
4. Kiểm tra Virtual Host
Truy cập vào thư mục chứa mã nguồn của site kienthuclinux.info:
Bash:
cd /var/www/kienthuclinux.info
Tạo file info.php để kiểm tra:
Bash:
cat >> info.php << "EOF"
<?php
phpinfo();
?>
EOF
Truy cập vào địa chỉ http://kienthuclinux.info/info.php để kiểm tra.