Hướng dẫn sử dụng nhiều phiên bản PHP khác nhau trên cùng một host.

Bạn đang chạy cùng lúc nhiều website trên cùng một host? Mỗi website của bạn chỉ tương thích với một phiên bản PHP nhất định? Trong trường hợp bạn muốn chạy PHP 8.x trên website này nhưng vẫn muốn giữ PHP 7.x trên website khác thì phải làm thế nào? Có thể bạn không để ý, nhiều nhà cung cấp hosting hiện tại đã cho phép làm việc này một cách dễ dàng thông qua cPanel. Đúng vậy, bạn hoàn toàn có thể sử dụng nhiều phiên bản PHP trên cùng một host, mỗi tên miền một phiên bản PHP khác nhau.
Tham khảo thêm:
- Làm thế nào để xem các thiết lập PHP của hosting?
- Làm thế nào để thay đổi các thiết lập PHP của hosting?
Ngay sau đây, tôi sẽ hướng dẫn cho các bạn cách thiết lập phiên bản PHP riêng cho từng tên miền. Tất nhiên là trong trường hợp cPanel của bạn có hỗ trợ.
Điều kiện để sử dụng nhiều phiên bản PHP cùng lúc
- Host được cài đặt sẵn nhiều phiên bản PHP khác nhau.
- Host có tính năng lựa chọn phiên bản PHP cho từng tên miền hoặc có hỗ trợ file
.htaccess.
Khi host hỗ trợ sử dụng nhiều phiên bản PHP cùng lúc
Áp dụng trong trường hợp cPanel của bạn có tính năng MultiPHP Manager và MultiPHP INI Editor.
Thay đổi phiên bản PHP cho từng tên miền
1. Đầu tiên, các bạn cần truy cập vào cPanel của hosting mình đang sử dụng. Tìm xem có mục MultiPHP Manager hay không? Nếu có thì hãy click vào đó.

2. Trong giao diện MultiPHP Manager, hãy tích vào tên miền mà bạn muốn thay đổi phiên bản PHP, sau đó lựa chọn phiên bản PHP trong mục PHP Version. Click vào nút Apply để xác nhận.

Lưu ý:
- Nếu bạn lựa chọn phiên bản PHP có tên bắt đầu bằng
ea-php, bạn sẽ phải sử dụng tính năng MultiPHP INI Editor của cPanel để tùy chỉnh thiết lập của PHP. - Nếu bạn lựa chọn phiên bản PHP có tên bắt đầu bằng
alt-php, bạn sẽ phải sử dụng tính năng Select PHP Version của CloudLinux để tùy chỉnh thiết lập của PHP.
3. Chờ chốc lát cho quá trình hoàn tất. Load lại tab trình duyệt, bạn sẽ nhìn thấy phiên bản PHP của tên miền đã được thay đổi.

Thay đổi thiết lập của phiên bản PHP
4. Giờ là lúc tùy chỉnh các thiết lập cho phiên bản PHP mà bạn vừa chọn. Quay trở lại giao diện chính của cPanel, tìm mục MultiPHP INI Editor nếu tên phiên bản PHP bắt đầu bằng ea-php hoặc Select PHP Version nếu tên phiên bản PHP bắt đầu bằng alt-php.

5. MultiPHP INI Editor có 2 chế độ để chỉnh sửa thiết lập PHP: Basic Mode với giao diện đơn giản, dễ sử dụng nhưng ít thông số để tùy biến. Editor Mode đòi hỏi bạn phải có kiến thức chuyên sâu về PHP nhưng cho phép tùy biến nhiều thứ hơn.
- Với Basic Mode, các bạn chỉ cần lựa chọn tên miền sau đó tắt/ bật hoặc chỉnh sửa các thông số rồi click vào nút Apply là được.

- Với Editor Mode, các bạn buộc phải thêm các dòng code vào khung bên dưới để tùy chỉnh thông số PHP thông qua tập tin
php.in. Đó là lý do tại sao tôi lại nói bạn cần có kiến thức chuyên sâu về PHP.

Click vào nút Save để lưu lại sau khi hoàn tất.
Đối với Select PHP Version, các bạn tham khảo một số hướng dẫn sau đây:
- Hướng dẫn nâng cấp PHP 8.2 cho website WordPress
- Hướng dẫn nâng cấp PHP 8.1 cho website WordPress
- Hướng dẫn nâng cấp PHP 8 cho website WordPress
- Hướng dẫn nâng cấp PHP 7.4 cho website WordPress
- Hướng dẫn nâng cấp PHP 7.3 cho website WordPress
- Hướng dẫn nâng cấp PHP 7.2 cho website WordPress
- Hướng dẫn nâng cấp PHP 7.1 cho website WordPress
- Hướng dẫn nâng cấp PHP 7 cho website WordPress
Khi host không hỗ trợ sử dụng nhiều phiên bản PHP cùng lúc
Đừng quá lo lắng, chúng ta có thể sử dụng file .htaccess để thay thế. Những gì các bạn cần làm là thêm một trong các đoạn code sau đây vào cuối file .htaccess trong thư mục gốc của tên miền. Hãy thử lần lượt nếu bạn không biết chắc chắn mình nên sử dụng code nào.
Đối với server sử dụng LSPHP
<FilesMatch "\.(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-httpd-alt-php71___lsphp
</FilesMatch>
Nhớ thay php71 bằng bất cứ phiên bản PHP nào mà bạn muốn (tất nhiên phiên bản đó phải được host hỗ trợ sẵn, xem danh sách trong Select PHP Version). Ví dụ, nếu bạn muốn sử dụng PHP 7.3, hãy thay php71 bằng php73.
Đối với server sử dụng suPHP
AddHandler application/x-httpd-php74 .php .php5
Nhớ thay php74 bằng bất cứ phiên bản PHP nào mà bạn muốn (tất nhiên phiên bản đó phải được host hỗ trợ sẵn, xem danh sách trong Select PHP Version). Ví dụ, nếu bạn muốn sử dụng PHP 8.1, hãy thay php74 bằng php81.
Đối với server sử dụng PHP-FPM
<IfModule mime_module>
AddHandler application/x-httpd-alt-php56 .php .php5 .phtml
</IfModule>
Và tất nhiên, đừng quên thay php56 bằng mã của phiên bản PHP tương ứng mà bạn muốn sử dụng.
Còn về việc tùy chỉnh module hoặc các thông số của PHP, các bạn có thể thực hiện thông qua tính năng Select PHP Version (hỗ trợ trên các server chạy hệ điều hành CloudLinux):

Đó là tất cả những gì các bạn cần làm để sử dụng cùng lúc nhiều phiên bản PHP trên một host, mỗi tên miền được chạy một phiên bản PHP riêng. Cũng không quá phức tạp phải không nào? Chúc các bạn thành công!
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)





dạ anh ơi check mail genius000222@gmail giùm e vs ạ!
Done bạn nhé.
Bạn ơi, cho mình hỏi chút là mình đã cập nhật phiên bản PHP trên hosting của hawkhost cho add on domain
(bằng MultiPHP manager như bạn đã hướng dẫn)
Nhưng log in vào quản trị của blog wordpress của mình, thì vẫn thấy “php update required” và ‘At a Glance’ vẫn thấy Running PHP version là 5.6.40
Đây là lỗi tại sao nhỉ?
Cảm ơn bạn!
Bạn tạo file PHP info cho addon domain rồi kiểm tra xem nó đang chạy phiên bản PHP nào nhé. Cách làm vui lòng xem trong bài viết “Làm thế nào để xem các thiết lập PHP của hosting?“.
Bạn Hiếu cho mình hỏi chút. Trong phần Select PHP Version mình để là PHP 7.1 rồi mà sao vào phần MultiPHP này toàn hiện ea-php5.6 nhỉ? Và có domain thì hiện Inherited, cái domain vừa cài xong thì không, mình không hiểu sao ra thế. Còn vấn đề nữa là mình có theme nhưng PHP 5, có cách nào cài vào PHP 7 được không nhỉ?
“Trong phần Select PHP Version mình để là PHP 7.1 rồi mà sao vào phần MultiPHP này toàn hiện ea-php5.6 nhỉ” => mặc định của hệ thống là 5.6 thì nó sẽ hiển thị “ea-php5.6” nhé. Bạn muốn kiểm tra xem từng domain đang chạy phiên bản PHP nào thì tham khảo bài viết “Làm thế nào để xem các thiết lập PHP của hosting?“.
Cám ơn bạn!
Hiếu ơi, xin lỗi vì cmt này không liên quan đến chủ đề nhưng gấp quá nên phải hỏi
Dừ mình muốn cái plusgin cụ thể là WPtouch nó không cập nhật (cũng như thông báo có cập nhật mới) thì làm thế nào?
Mình hỉ muốn tắt chức năng thông báo của plusgin này thôi.
Cảm ơn Hiếu rất nhiều!
Bạn tham khảo bài viết “Quản lý việc update WordPress một cách chuyên nghiệp” nhé. :P
Mình có 2 site trên cùng 1 host và mình đều chỉnh PHP 7.x. Đọc bài viết của bạn không biết phiên bản PHP đó khác nhau và có lợi ích gì mà làm vậy bác? Mình thấy PHP ngon hơn nên cấu hình theo hướng dẫn trên mạng.
Đã bị ăn hành bởi vụ MultiPHP này, khi dùng multiPHP sẽ làm cho memcached extension trên PHP 7.x không hoạt động nhé.
Cách duy nhất là cho tất cả về inherited trong MultiPHP và vào Select PHP version chọn 1 bản PHP dùng.
Chức năng này chưa thật sự hoàn thiện, nên phải đánh đổi giữa tùy ý lựa chọn phiên bản PHP hoặc giữ extension memcached :D
Site nào muốn dùng Memcached thì chọn “inherit”. Còn site nào không cần đến Memcached thì có thể chọn phiên bản tùy ý. :P
Chính xác là vậy, nhưng giờ đa số các giao diện và plugin cũng đã tương thích nên mình cho site lên PHP 7.1.5 luôn vì đã dùng Litespeed Cache mà không dùng thêm Memcached thì quá tiếc. Nên giải pháp MultiPHP này chưa thật sự tốt.
Tuyệt vời, vậy là mỗi domain có thể chạy riêng 1 phiên bản PHP rồi, cám ơn bác Hiếu chia sẻ !
Cảm ơn bài viết hay quá
Hay quá, host của mình có 3 mã nguồn.
Mình muốn lên 7x cho WordPress nhưng bị ảnh hưởng mã nguồn kia.
Giờ có cách này rồi thì tuyệt vời quá
Cám ơn Bạn
hay, đỡ phải lăn tăn, đang định mua thêm quả host chạy các bản PHP khác nhau, thế này thì đỡ rồi.