Nếu bạn đang sử dụng HocVPS Script và muốn trải nghiệm sự mạnh mẽ của những phiên bản PHP 7 mới ra mắt, hãy thực hiện từng bước theo bài này để nâng cấp PHP lên phiên bản mới nhất nhé.

PHP 7

Trong bài viết này mình sẽ nâng cấp PHP 7.1 hoặc cũ hơn lên PHP 7.3. Bạn có thể thay thế các phiên bản PHP tương ứng, hỗ trợ PHP 5.6, PHP 7.0, PHP 7.1, PHP 7.2, PHP 7.3

Lưu ý: PHP 7.4 có nhiều extension chưa hỗ trợ nên có thể gây ra lỗi, do đó nên sử dụng PHP 7.3.

Đầu tiên bạn hãy tải về công cụ quản lý cấu hình yum:

yum install yum-utils

Cài đặt phiên bản mới nhất của remi repository

# CentOS 6
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

# CentOS 7
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Kích hoạt remi repository cho phiên bản PHP bạn muốn nâng cấp lên. Ví dụ PHP 7.3.

# PHP 7.3
yum-config-manager --enable remi-php73

Tiếp theo kiểm tra phiên bản PHP bạn đang sử dụng với lệnh php -v. Tắt php repository tương ứng này đi vì chúng ta sử dụng PHP 7.3 rồi. Ví dụ server mình đang cài đặt PHP 7.1

# PHP 7.1
yum-config-manager --disable remi-php71

Kiểm tra lại danh sách repository một lần nữa, bạn sẽ thấy dòng có remi-php71 được disabledremi-php73 đã enabled:

yum repolist all

Sao lưu lại cấu hình PHP hiện tại:

cp /etc/php-fpm.conf /etc/php-fpm.conf.bk
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.bk

Cuối cùng update PHP lên phiên bản mới nhất 7.3

yum update php-fpm

Hoặc dùng lệnh sau để nâng cấp toàn bộ phần mềm của VPS

yum update

Khôi phục lại cấu hình PHP hiện tại:

\cp /etc/php-fpm.conf.bk /etc/php-fpm.conf
\cp /etc/php-fpm.d/www.conf.bk /etc/php-fpm.d/www.conf

Vậy là xong rồi đấy, kiểm tra lại phiên bản PHP với lệnh php -v bạn sẽ thấy output tương tự như sau:

PHP 7.3.20 (cli) (built: Jul  7 2020 11:10:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.20, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.20, Copyright (c) 1999-2018, by Zend Technologies

Chúc các bạn thành công.

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

172 Comments

  1. Phong 3 comment

    Admin ơi, hỗ trợ nâng cấp phiên bản php mới đi, 7.3 7.4 hiện giờ cũ quá rồi. Đợi mãi mà chưa thấy gì cả

  2. Đức 1 comment

    Nhiều plugin nó bắt update PHP lên 7.4 thì mới xài được bản mới. WordPress cũng vậy. Rất mong ad viết bài hướng dẫn update PHP lên phiên bản 7.4. Xin cảm ơn

  3. Hoang Quan 11 comment

    Hi, mình bi lỗi trắng trang khi vào phpmyadmin. Sửa lỗi này sao vậy bạn

    1. Học VPS Admin

      Chào bạn
      Bạn có thể mô tả rõ hơn lỗi đang gặp phải, đồng thời bạn có thể show thêm log error của website trong quá trình truy cập để mình tư vấn nhé

  4. Akira 1 comment

    Chào Ad
    Mình cài php 8.0, sau đó hạ xuống 7.3 nhưng bị lỗi. Giờ vào trang web không được. Có cách nào khắc phục không Ad.
    Cảm ơn nhiều.

    1. Học VPS Admin

      Chào bạn
      Không rõ lỗi cụ thể bạn gặp phải là như thế nào? Bạn có thể cung cấp thêm chi tiết các log lỗi để mình hỗ trợ nhé

  5. Đào Phan Cường 1 comment

    Xin chào anh, chị!
    Hiện tại em đang muốn có một khoá học về thiết lập website vps.
    Em cần một khoá để biết cách sử dụng câu lệnh cũng như nâng cấp php

  6. Nguyễn Dung 4 comment

    Admin! Cho em hỏi chút tại sao em thay đổi cấu hình trong file php.ini và đã restart lại nginx và php. Nhưng hệ thống vẫn chưa thay đổi thông tin theo cấu hình mà em đã thay đổi. Vậy cho em hỏi lý do tại sao vậy ạ?

  7. Trần Quốc Đại 1 comment

    Mình vừa nâng cấp lên PHP 7.4 và bị lỗi phpmyadmin không vào được. Sau đó mình vào phpmyadmin.net tải phiên bản mới nhất 5.0.2 về upload lên thư mục private_html của domain chính. Đổi tên thư mục phpmyadmin cũ đi và đổi tên thư mục mới thành phpmyadmin giống y vậy. Xong chép đè lại file vendor_config.php trong thư mục private_html/phpmyadmin/libraries là có thể vào phpmyadmin một cách bình thường không lỗi lầm gì cả.

    Ai bị lỗi phpmyadmin sau khi nâng cấp php thì tham khảo nha.

      1. haodv 22 comment

        Lỗi của mình chỉ cần vào ssh gõ lệnh sau lại được
        chown nginx: /var/lib/php/session/

          1. DO TRUNG DUC 4 comment

            em gõ lệnh vào, nhưng khi vào được ra như vậy có bị lỗi gì không bác nhỉ…

            Warning in ./libraries/classes/Config/FormDisplay.php#658
            “continue” targeting switch is equivalent to “break”. Did you mean to use “continue 2”?

            Backtrace

            ./vendor/composer/ClassLoader.php#444: include()
            ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string ‘/home/webtruyenfree.com/private_html/phpmyadmin/vendor/composer/../../libraries/classes/Config/FormDisplay.php’)
            Composer\Autoload\ClassLoader->loadClass(string ‘PhpMyAdmin\\Config\\FormDisplay’)
            ./libraries/classes/Config/Forms/BaseForm.php#16: spl_autoload_call(string ‘PhpMyAdmin\\Config\\FormDisplay’)
            ./vendor/composer/ClassLoader.php#444: include(./libraries/classes/Config/Forms/BaseForm.php)
            ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string ‘/home/webtruyenfree.com/private_html/phpmyadmin/vendor/composer/../../libraries/classes/Config/Forms/BaseForm.php’)
            Composer\Autoload\ClassLoader->loadClass(string ‘PhpMyAdmin\\Config\\Forms\\BaseForm’)
            ./libraries/classes/Config/Forms/User/FeaturesForm.php#12: spl_autoload_call(string ‘PhpMyAdmin\\Config\\Forms\\BaseForm’)
            ./vendor/composer/ClassLoader.php#444: include(./libraries/classes/Config/Forms/User/FeaturesForm.php)
            ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string ‘/home/webtruyenfree.com/private_html/phpmyadmin/vendor/composer/../../libraries/classes/Config/Forms/User/FeaturesForm.php’)
            Composer\Autoload\ClassLoader->loadClass(string ‘PhpMyAdmin\\Config\\Forms\\User\\FeaturesForm’)
            ./libraries/classes/Config/Forms/BaseFormList.php#123: spl_autoload_call(string ‘PhpMyAdmin\\Config\\Forms\\User\\FeaturesForm’)
            ./libraries/classes/UserPreferences.php#181: PhpMyAdmin\Config\Forms\BaseFormList::getFields()
            ./libraries/classes/Config.php#885: PhpMyAdmin\UserPreferences->apply(array)
            ./libraries/common.inc.php#453: PhpMyAdmin\Config->loadUserPreferences()
            ./index.php#26: require_once(./libraries/common.inc.php)
            The configuration file now needs a secret passphrase (blowfish_secret).

  8. 2 comment

    Sau khi thực hiện: yum update – Mình bị lỗi này:
    Error: Cannot retrieve repository metadata (repomd.xml) for repository: CityFan. Please verify its path and try again
    Vậy phải làm gì

  9. Do Duc 4 comment

    anh ơi, em lên 7.3 mà khi vào phpadmin nó báo vậy , anh giúp em với ạ, giờ không vào được phpadmin nữa..

  10. Tuấn Kiệt 1 comment

    Sau khi mình Update lên PHP7.3 website của mình báo lỗi “Đã có một lỗi nghiêm trọng trên trang web của bạn.” còn khi login database thì lỗi 403 Nginx

    Cho mình hỏi có cách nào khắc phục không?

  11. Hoàng Nam 10 comment

    hi ad, mình nâng cấp lên PHP 7.3 bị lỗi như này xử lý làm sao

    Warning in ./libraries/classes/Config/FormDisplay.php#658
    “continue” targeting switch is equivalent to “break”. Did you mean to use “continue 2”?

    https://i.imgur.com/eHSuFwS.jpg

    Cảm ơn ad ! mong sớm nhận dc phản hồi từ ad

  12. Huy 1 comment

    Hi Luân & Phương,
    Hocvps Script v1.3 thì nâng cấp lên Php 7.3 như thế nào nhỉ?

    Xin cám ơn.

  13. han trung 3 comment

    VÀo phpadmin nó báo đỏ lòm
    Warning in ./libraries/classes/Config/FormDisplay.php#658
    “continue” targeting switch is equivalent to “break”. Did you mean to use “continue 2”?

    Backtrace

    ./vendor/composer/ClassLoader.php#444: include()
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string ‘/home//private_html/phpmyadmin/vendor/composer/../../libraries/classes/Config/FormDisplay.php’)
    Composer\Autoload\ClassLoader->loadClass(string ‘PhpMyAdmin\\Config\\FormDisplay’)
    ./libraries/classes/Config/Forms/BaseForm.php#16: spl_autoload_call(string ‘PhpMyAdmin\\Config\\FormDisplay’)
    ./vendor/composer/ClassLoader.php#444: include(./libraries/classes/Config/Forms/BaseForm.php)
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string ‘/home//private_html/phpmyadmin/vendor/composer/../../libraries/classes/Config/Forms/BaseForm.php’)
    Composer\Autoload\ClassLoader->loadClass(string ‘PhpMyAdmin\\Config\\Forms\\BaseForm’)
    ./libraries/classes/Config/Forms/User/FeaturesForm.php#12: spl_autoload_call(string ‘PhpMyAdmin\\Config\\Forms\\BaseForm’)
    ./vendor/composer/ClassLoader.php#444: include(./libraries/classes/Config/Forms/User/FeaturesForm.php)
    ./vendor/composer/ClassLoader.php#322: Composer\Autoload\includeFile(string ‘/home/private_html/phpmyadmin/vendor/composer/../../libraries/classes/Config/Forms/User/FeaturesForm.php’)
    Composer\Autoload\ClassLoader->loadClass(string ‘PhpMyAdmin\\Config\\Forms\\User\\FeaturesForm’)
    ./libraries/classes/Config/Forms/BaseFormList.php#123: spl_autoload_call(string ‘PhpMyAdmin\\Config\\Forms\\User\\FeaturesForm’)
    ./libraries/classes/UserPreferences.php#48: PhpMyAdmin\Config\Forms\BaseFormList::getFields()
    ./libraries/classes/Config/PageSettings.php#80: PhpMyAdmin\UserPreferences->pageInit()
    ./libraries/classes/Config/PageSettings.php#210: PhpMyAdmin\Config\PageSettings->__construct(string ‘DbStructure’)
    ./libraries/classes/Controllers/Database/DatabaseStructureController.php#156: PhpMyAdmin\Config\PageSettings::showGroup(string ‘DbStructure’)
    ./db_structure.php#38: PhpMyAdmin\Controllers\Database\DatabaseStructureController->indexAction()

    Xử lý thế nào a

      1. Thắng 3 comment

        Vào “libraries/classes/Config/FormDisplay.php” tại dòng 658 sửa “continue” thành “continue 2”.

  14. NGUYEN VAN QUYEN 2 comment

    Chào Luân,

    Lỗi này là lỗi gì nhỉ? Không tìm thấy Downloading Packages

    Total size: 156 M
    Total download size: 61 M
    Is this ok [y/N]: y
    Downloading Packages:
    https://epel.mirror.constant.com/6/i386/Packages/e/exim-4.90.1-2.el6.i686.rpm: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
    Trying other mirror.
    To address this issue please refer to the below wiki article

    https://wiki.centos.org/yum-errors

    If above article doesn’t help to resolve this issue please use https://bugs.centos.org/.

    http://fedora-epel.mirrors.tds.net/fedora-epel/6/i386/Packages/e/exim-4.90.1-2.el6.i686.rpm: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
    Trying other mirror.

    1. Hoàng Nguyễn 9 comment

      Hi Quyền,
      Mình kiểm tra thì thấy lỗi đó do gói exim-4.90.1-2.el6.i686.rpm tải không tồn tại.

      Bạn thử update repolist xem thế nào nhé!

  15. Nguyễn Văn Vũ 4 comment

    Trước khi nâng cấp thì em khá lo lắng nhưng làm theo hướng dẫn từng bước ở trên thì việc này đơn giản hơn em nghĩ, em đã nâng cấp một cách suôn sẻ, cảm ơn Admin rất nhiều.

  16. Quyen Nguyen 10 comment

    Chào Luân,

    Mình chạy đến đoạn cuối (yum update) thì kết quả trả về như thế này:
    Error Downloading Packages:
    exim-4.90.1-2.el6.i686: failure: Packages/e/exim-4.90.1-2.el6.i686.rpm from epel: [Errno 256] No more mirrors to try.

    Lỗi này khắc phục như thế nào nhỉ?

    1. NGUYEN VAN QUYEN 10 comment

      Các bác có ai bị lỗi này giống em không ạ?

      Mình chạy đến đoạn cuối (yum update) thì kết quả trả về như thế này:
      Error Downloading Packages:
      exim-4.90.1-2.el6.i686: failure: Packages/e/exim-4.90.1-2.el6.i686.rpm from epel: [Errno 256] No more mirrors to try.

  17. Trình 1 comment

    Nâng cấp lên 7.3 được không anh ơi. Em có bật được 7.3 nó enable. Mà check lại vẫn là 7.1.33

  18. Tuấn anh 1 comment

    Làm sao để nâng cấp php nên 7.3 vậy ad, vào học vps nâng cấp sever mà nó chỉ ở 7.1.33

  19. Nhan 2 comment

    Mình cập nhật WP thì bị lỗi
    You cannot update because WordPress 5.2.2 requires PHP version 5.6.20 or higher. You are running version 5.5.31.
    Xin hỏi giờ nâng cấp PHP lên thì có ảnh hưởng web đang chạy không? VPs mình dùng hocvps

  20. sinhle 20 comment

    WP 5.2 giờ nó yêu cầu php7.3 mới chạy được. mình mới cài lại nên không để ý. ở php 5.3 giờ cài xong nhưng wp cứ lỗi, viết bì không đăng được, sửa bài cũng không lưu được….

  21. Ninh 3 comment

    hocvps script đang là php 7, mình muốn cài thêm php5.6. thì cài như thế nào bạn, và khi set cho 1 web nào đó chạy 5.6 phải làm sao. nhờ bạn hướng dẫn

    1. Việt Phương Moderator

      Hiện hệ thống HocVPS không hỗ trợ chạy nhiều phiên bản PHP. Mong bạn thông cảm

  22. cuong 28 comment

    Mình làm tính năng mua hàng trên website và không đặt hàng được.

    Kiểm tra hê thong: ” Máy chủ của bạn chưa bật lớp SoapClient – một số gói mở rộng sử dụng cổng kết nối SOAP có thể không hoạt động như mong đợi.”
    Mình cài thế nào trên hocvps lớp SoapClient ?
    mong duoc tu van !