Mục lục
Để cài đặt nhiều version php cho nhiều project website, dùng yum-config-manager
để cài đặt multiple versions of PHP. Và lưu ý bài viết này dành cho những người có kiến thức cơ bản về Nginx và PHP.
1. Cài đặt và cấu hình các version PHP
1.1 Cài đặt PHP 7.1 Version
# yum-config-manager --enable remi-php71 [Default]
# yum install php php-common php-fpm
# yum install php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
1.2 Cài đặt PHP 5.6 Version
# yum install php56 php56-php-common php56-php-fpm
# yum install php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml php56-php-pecl-apc php56-php-cli php56-php-pear php56-php-pdo
Kiểm tra version PHP mặc định.
# php -v
1.3 Cấu hình PHP-FPM và PHP56-PHP-FPM
Đây là phần cấu hình php-fpm sẽ hoạt động tương thích với Nginx. Cần thiết lập user/group của FastCGI khi hoạt động trên Nginx sẽ listen đúng port.
php-fpm (default 7.1): /etc/php-fpm.d/www.conf
php56-php-fpm: /opt/remi/php56/root/etc/php-fpm.d/www.conf
Mở file config đề thiết lập user/group của FastCGI.
# vi /etc/php-fpm.d/www.conf [PHP 7.1]
# vi /opt/remi/php56/root/etc/php-fpm.d/www.conf [PHP 5.6]
Cập nhật thông tin user/group
user = nginx
group = nginx
Kế tiếp, cập nhật thiết lập address:port cho FastCGI listen các request sẽ nhận.
listen = 127.0.0.1:9000 [php-fpm]
listen = 127.0.0.1:9001 [php56-php-fpm]
2. Thiết lập Nginx dùng PHP-FPM tương ứng
2.1 Khởi chạy services
---------------- NGINX ----------------
# systemctl enable nginx
# systemctl start nginx
---------------- PHP 7.1 ----------------
# systemctl enable php-fpm
# systemctl start php-fpm
---------------- PHP 5.6 ----------------
# systemctl enable php56-fpm
# systemctl start php56-php-fpm
Nếu trường hợp bị lỗi xãy ra thì gõ lệnh sau:
# getenforce
# setenforce 0
2.2 Thiết lập đường dẫn cho website
Tạo các folder web để chạy các version PHP khác nhau trong /var/www/html/.
---------------- Website 1 ----------------
# mkdir -p /var/www/html/example1.com/
# mkdir -p /var/www/html/example2.com/
---------------- Website 2 ----------------
# mkdir -p /var/log/nginx/example1.com/
# mkdir -p /var/log/nginx/example2.com/
2.3 Thiết lập permission
---------------- Website 1 ----------------
# chown -R root:nginx /var/www/html/example1.com/
# chmod -R 755 /var/www/html/example1.com/
# chown -R root:nginx /var/log/nginx/example1.com/
# chmod -R 660 /var/log/nginx/example1.com/
---------------- Website 2 ----------------
# chown -R root:nginx /var/www/html/example2.com/
# chmod -R 755 /var/www/html/example2.com/
# chown -R root:nginx /var/log/nginx/example2.com/
# chmod -R 660 /var/log/nginx/example2.com/
2.4 Config Nginx Server cho các Website
Tạo các config Nginx cho các website tại /etc/nginx/conf.d/.
# vi /etc/nginx/conf.d/example1.com.conf
# vi /etc/nginx/conf.d/example2.com.conf
Website 1 cấu hình cho example1.com
server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/html/example1.com/;
index index.php index.html index.htm;
#charset koi8-r;
access_log /var/log/nginx/example1.com/example1_access_log;
error_log /var/log/nginx/example1.com/example1_error_log error;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root /var/www/html/example1.com/;
fastcgi_pass 127.0.0.1:9000; #set port for php-fpm to listen on
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include /etc/nginx/fastcgi_params;
}
}
Website 2 cấu hình cho example2.com
server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/html/example2.com/;
index index.php index.html index.htm;
#charset koi8-r;
access_log /var/log/nginx/example2.com/example2_access_log;
error_log /var/log/nginx/example2.com/example2_error_log error;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root /var/www/html/example2.com/;
fastcgi_pass 127.0.0.1:9001; #set port for php56-php-fpm to listen on
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include /etc/nginx/fastcgi_params;
}
}
Kế tiếp tạo các nội dung chứa phpinfo() để xem các version PHP của các website.
# echo "" > /var/www/html/example1.com/info.php
# echo "" > /var/www/html/example2.com/info.php
Để apply các cấu hình thì phải restart lại các services.
# nginx -t
# systemctl restart nginx php-fpm php56-php-fpm
Verify Nginx Configuration
Verify Nginx Configuration
Nếu chạy dưới local thì nhớ cấu hình /etc/hosts.
Cuối cùng truy cập vào domain các trang đã setup trong config nginx để xem thành quả.