Cài đặt nhiều phiên bản PHP trên OpenLiteSpeed

Thực tế, đôi khi một số mã nguồn cũ không tương thích được với các phiên bản PHP mới như 7.0 hay 7.2. Nhưng bạn không muốn hạ phiên bản PHP xuống vì từ PHP7 cho hiệu năng tốt hơn.

Thay vào đó, hãy cài đặt thêm một phiên bản cũ của PHP và điều chỉnh chỉ trang web đó chạy phiên bản thấp hơn.

Chuẩn bị

Cài đặt sẵn vhost với trang web cần hạ cấp phiên bản PHP

Xác định phiên bản PHP

Cài đặt thêm PHP, điều chỉnh lại vhost cho phù hợp.

Cài đặt thêm các phiên bản PHP

Để cài đặt thêm các phiên bản PHP, có 3 cách:

  1. Sử dụng OpenLiteSpeed Repo
  2. Compile PHP bằng công cụ có sẵn trong WebAdmin
  3. Sử dụng các bản PHP thông thường với module php-litespeed để kết nối

 

Sử dụng OpenLiteSpeed Repository

OpenLiteSpeed hỗ trợ các file bản PHP từ 5.3 > 5.6 và 7.0 – 7.1

Sử dụng lệnh

yum -y install lsphp[phiển bản]-[module]

Ví dụ với PHP 5.6:

yum -y install lsphp56 lsphp56-common lsphp56-gd lsphp56-imap lsphp56-json lsphp56-mbstring lsphp56-mcrypt lsphp56-mysqlnd lsphp56-opcache lsphp56-pdo lsphp56-pear lsphp56-pecl-apcu lsphp56-soap lsphp56-tidy lsphp56-xml lsphp56-xmlrpc lsphp56-zip

Với PHP 5.4:

yum -y install lsphp54 lsphp54-common lsphp54-gd lsphp54-imap lsphp54-json lsphp54-mbstring lsphp54-mcrypt lsphp54-mysqlnd lsphp54-opcache lsphp54-pdo lsphp54-pear lsphp54-pecl-apcu lsphp54-soap lsphp54-tidy lsphp54-xml lsphp54-xmlrpc lsphp54-zip

Compile PHP

Mở Webadmin panel, truy cập Tools > Compile PHP

PHP Version : Phiên bản PHP cần cài đặt, ở đây hỗ trợ từ 4.4 lên đến 7.1.5 (không phải bản mới nhất)
Nếu có khả năng và cần thiết, hãy chỉnh thêm tại file

/usr/local/lsws/admin/html/lib/util/build_php/BuildConfig.php

Nhấn nút next để đến bước tiếp theo

Installation Path Prefix : Vị trí cài đặt phiên bản PHP, ở đây mình cài PHP 5.6 và cho nó nằm ở /usr/local/lsws/lsphp56

Configure Parameters : Tùy chọn các module cần thiết, xem thêm danh sách đó ở trang hướng dẫn của PHP

Ở đây có thể thêm một số module:

--enable-opcache --enable-exif --with-xmlrpc --with-imap --with-imap-ssl --with-bz2 --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf

Tích thêm memcached ở Add-on Modules nếu muốn sử dụng thêm memecached

Tiếp theo OpenLiteSpeed sẽ tải các thành phần cần thiết (Source code…)

Compile PHP :

Vì lý do bảo mật, OpenLiteSpeed sẽ không tự cài đặt cho bạn, thay vào đó nó sẽ tạo một script để bạn kích hoạt trên SSH và nó tự động cài đặt.

sh /usr/local/lsws/phpbuild/buildphp_manual_run.sh

Với memcached, hãy thêm đoạn này vào php.ini:

extension=memcached.so

PHP binary sẽ được tạo ở thư mục /usr/local/lsws/fcgi-bin/ với tên lsphp-[phiên bản] như  lsphp-5.6.30

Khá là lằng nhằng nhỉ?

Cài đặt với Module php-litespeed

Yêu cầu sử dụng thêm Remi-Repo

CentOS 7:

rpm -i http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

CentOS 6:

rpm -i http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Cách cài đặt, hãy dùng php[phiênbản]-php-[module]

Với PHP 5.6:

yum -y install php56-php php56-php-common php56-php-gd php56-php-imap php56-php-json php56-php-mbstring php56-php-mcrypt php56-php-mysqlnd php56-php-opcache d php56-php-pdo php56-php-pear php56-php-pecl-apcu php56-php-soap php56-php-tidy php56-php-xml php56-php-xmlrpc php56-php-zip php56-php-pecl-apcu php56-php-litespeed

Ở đây quan trọng là module php-litespeed, nó sẽ tạo liên kết giữa 2 phiên bản này với nhau.  Nhước điểm là file LSAPI chung một tên, nếu không thay đổi thì sẽ gặp lỗi

Tips: Nếu muốn cài nhiều hơn, sau khi cài đặt hoàn thành, hãy đổi tên file /usr/bin/lsphp thành lsphp-[phiên bản] và tiếp tục cài các bản khác

Thay đổi phiên bản PHP của vhost

Do nhu cầu chỉ cần đổi một vài trang web chứ không phải tất cả, nên ta chỉ tùy chỉnh ở mức Virtual Host chứ không chỉnh cài đặt Server.

Truy cập Virtual Host > [vhost cần đổi] > External App > Add New

Hãy đọc thêm cách sử dụng Ext App ở:

Hướng dẫn cài đặt OpenLiteSpeed trên CentOS 7

Mình xin nói qua lại:

Type : LiteSpeed SAPI App

Qua bước tiếp theo

Name: Đặt tên, ở đây là LSPHP56

Addressuds://tmp/lshttpd/lsphp.sock

Max Connections : 50

Command : Đây là mục quan trọng nhất của cài đặt này. Tùy theo cách bạn cài đặt, vị trí của file sẽ khác nhau:

Dùng OpenLiteSpeed Repo:

/usr/local/lsws/lsphp[phiên bản]/bin/lsphp

Như PHP 5.6:

/usr/local/lsws/lsphp56/bin/lsphp

Compile

/usr/local/lsws/fcgi-bin/lsphp-[phiên bản] như  lsphp-5.6.30

Như PHP 5.6.30

/usr/local/lsws/fcgi-bin/lsphp-5.6.30

Module php-litespeed

Ở đây mọi phiên bản thì chỉ vào một chỗ

/usr/bin/lsphp

Nếu dùng Tips phía trên hay đổi lại cho chính xác

/usr/bin/lsphp56

Kiểm tra:

Graceful Restart OpenLiteSpeed.

Tạo một file php với nội dung <?php phpinfo(); ?> , khi truy cập, nếu nó hiện đúng phiên bản PHP đang sử dụng thì bạn đã làm thành công rồi đó. Còn nếu không thì chỉ hiện lỗi 😀

Lời kết

Bây giờ bạn đã hoàn thành nỗi lo về phiên bản PHP không tương thích, nếu được, hãy cố nâng cấp code tương thích với bản mới hơn đi. PHP 7 có hiệu năng cao hơn PHP từ 5.6 trở xuống

 

Add Comment