Cài đặt nhiều phiên bản PHP trên cùng Server

15

Vì một số lý do, chúng ta muốn chạy 02 website với 02 phiên bản PHP khác nhau thì việc cài đặt nhiều phiên bản PHP trên cùng Server sẽ là phương án tối ưu nhất giúp các bạn tiết kiệm chi phí và thời gian quản lý.

Trong bài viết này, chúng ta sẽ sử dụng 02 VirtualHost trên NGINX, 01 VirtualHost sẽ hoạt động với PHP 5.6 và 01 sẽ hoạt động với PHP 7.3. Đây cũng là 02 phiên bản PHP có sự khác biệt lớn nhất. Tất nhiên, với cách này bạn có thể thử triển khai với nhiều hơn 02 phiên bản PHP.

Cài đặt PHP 5.6 và PHP 7.3

Đầu tiên chúng ta cần cài đặt các thư viện cần thiết trước khi tiếp tục với PHP:

sudo apt install python-software-properties
sudo add-apt-repository ppa:ondrej/php

Để chạy song song 2 phiên bản PHP, chúng ta sẽ cài PHP FPM và FastCGI

apt update
sudo apt install php5.6 php5.6-fpm
sudo apt install php7.3 php7.3fpm

Sau khi cài đặt, bạn nhớ kiểm tra lại service php-fpm đã hoạt động chưa

sudo systemctl status php5.6-fpm
sudo systemctl status php7.3-fpm

Cài đặt và cấu hình Nginx

Nếu bạn chưa cài đặt máy chủ web Nginx thì có thể tham khảo chi tiết trong bài viết hướng dẫn cài đặt LEMP của How4VN.

Sau khi cài Nginx bạn tạo 02 thư mục chưa trang web để bắt đầu kiểm tra việc hoạt động của 02 phiên bản PHP.

sudo mkdir /var/www/php56
sudo mkdir /var/www/php73

Tạo 02 file index.php với hàm <?php phpinfo(); ?> trong thư mục đã tạo phía trên

echo "<?php phpinfo(); ?>" > /var/www/php56/index.php
echo "<?php phpinfo(); ?>" > /var/www/php73/index.php

Tiếp tới bạn tạo 02 block trong sites-available như trong bài hướng dẫn sử dụng Nginx. Chỉ khác biệt 01 chút ở trong mục cấu hình PHP:

# PHP 5.6

location ~* \.php$ {
	# With php-fpm unix sockets
	fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
	include         fastcgi_params;
	fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
	}

# PHP 7.2

location ~* \.php$ {
	# With php-fpm unix sockets
	fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
	include         fastcgi_params;
	fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
	}

Sau đó restart Nginx để nhận cấu hình mới: sudo systemctl restart nginx.service

Bây giờ bạn hãy truy cập vào tên miền bạn đã trỏ tới 02 block trên là sẽ thấy được PHP info hiển thị với 02 phiên bản khác nhau. Và chúng ta có thể sử dụng cho 02 phiên bản PHP cho 02 website trên cùng 01 máy chủ web.

How4VN.com

Đăng ký nhận mail thông báo khi có bài viết mới tại How4VN.com
avatar
  Nhận thông báo  
Thông báo khi